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.

Description
Implementation

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:

  1. DisputeEngine - handling job-related disputes and their resolution

  2. SkillQuestionEngine - handling skill verification applications and the "Ask Athena" functionality

Feature Description
Contract Location

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