Native Athena
The Native Athena Contract drives decentralized dispute resolution and skill verification using oracle member votes and fee incentives.
This table describes the features in more detail.
Once created and active [as described under the Main DAO] a skill oracle can add or remove members and also function for dispute resolution.
isActive(oracle_name){ check if an Oracle has 20 members
}
Jobs come to the oracle to resolve disputes with an incentive fee paid by the dispute raiser [minimum being $50]. The dispute includes a description and an amount. [For example, description: “The job is done, $100 USDT needs to come to me for the work I’ve done. Here’s the proof of it..”, amount: 100 USDT, to: <job taker>
Struct: Dispute { JobID, DisputedAmount, Hash, Dispute Raiser Address, Votes for, Votes Against, Result, isVotingActive, timeStamp} Function: raiseDispute(jobId, disputeHash, oracleName, fee) { isOracleActive? getJobDetails() check if caller is involved in the job create a new Dispute }
Members from the skill oracle vote for or against with an optional reason where more than 50%+ votes (calculated by staked amount) are sent an X amount either to the job giver or taker. Winning stakers receive the fee paid. The Athena contract [linked to job contract] executes the decision made. There is a 4 day timer. If no votes are made, the funds are refunded.
The applicable Skill Oracle member will vote using the below function(exact implementation may change, but roughly this logic) voteOnDispute(jobId, vote) { check if caller is member of skill oracle check if dispute/job exists check if Dispute raised more than 4 days ago add vote to "Votes for"/"Vote Against" } claimRefund(jobID) { isDisputer? DisputeExists? see if dispute is more than 4 days old & there are no votes refund fee to msg.sender } claimFee(applicationID) { check if caller is a voter on this application calculate fee to be paid pay fee }
Skill verification applications can come to the skill oracle for a min. $50 fee. These contain the skill and description of application including profile. Members from the skill oracle can vote for or against with an optional reason where more than 50%+ votes (calculated by staked amount) determines that the address gets the skill. Winning stakers receive the fee paid. The address is given the verified skill tag if verified. There is a 4 day timer. If no votes are made, the funds are refunded.
Structs: AllSkills { skillName :{ description, oracleMembers, qualifiedApplicants, isActive} }
skillApplication { skillName, applicant, applicationID application_hash, votes-for, votes-against, result timestamp} Functions: applyToSkill(skillName, application_hash, fee_amount) { check if skillOracle is Active create a Skill Application deduct fee amount } voteOnSkillApplication(jobID, vote) { see if caller is oracle member see if dispute is more than 4 days older add votes-for/against } claimRefund(applicationID) { see if caller is applicant see if dispute exists see if dispute is more than 4 days old} refund fee to msg.sender } claimFee(applicationID) { check if caller is a voter on this application }
If found malicious by the Skill oracle or DAO, the staker at any point can have all their tokens taken from them.
this is done in the Native DAO
Athena should be made upgradable so it’s compatible with future needs for programming jobs and making assessments based on other factors other than disputes.
askAthena(description, fee) A special type-of proposal which anyone can call by offering a fee and seek a yes/no answer from Athena.
All rules must be upgradable.
This is done through the Main DAO using the UUPS upgrade process. i.e. to upgrade the implementation contract.
This table shows how the original "Native Athena Contract" was split between:
DisputeEngine - handling job-related disputes and their resolution
SkillQuestionEngine - handling skill verification applications and the "Ask Athena" functionality
Oracle activity status checking
DisputeEngine/SkillQuestionEngine (shared)
Dispute raising for jobs
DisputeEngine
Dispute struct management
DisputeEngine
Voting on disputes
DisputeEngine
Dispute fee management
DisputeEngine
Dispute refund claiming
DisputeEngine
Dispute fee claiming for voters
DisputeEngine
4-day timer for dispute resolution
DisputeEngine
Skill verification application processing
SkillQuestionEngine
Skill application struct management
SkillQuestionEngine
Skill application fee management
SkillQuestionEngine
Voting on skill applications
SkillQuestionEngine
Skill application refund claiming
SkillQuestionEngine
Skill application fee claiming for voters
SkillQuestionEngine
4-day timer for skill verification
SkillQuestionEngine
Malicious staker token confiscation
NativeDAOGovernance (external)
"Ask Athena" functionality (special proposals)
SkillQuestionEngine
Upgrade capability for both contracts
Both (via UUPS pattern)
Last updated