{"name":"AxonProtocol","deployed":true,"address":"0x17731731c6652770CE630e29b62791DC2CED5f38","chain":{"id":10143,"name":"Monad Testnet","rpc":"https://testnet-rpc.monad.xyz","explorer":"https://testnet.monadscan.com","currency":"MON"},"verifier":"0xC7D11f79514129f63427535dCB6Fdf39300F893D","abi":[{"type":"constructor","inputs":[{"name":"_verifier","type":"address","internalType":"address"},{"name":"_treasury","type":"address","internalType":"address"},{"name":"_passkeys","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"ACCEPT_FLOOR","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MAX_CONTRIBUTORS","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MAX_SCORE","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MAX_SHARDS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"PROTOCOL_FEE_BPS","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"RUNS_PER_ACCOUNT","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"SLOTS_PER_SHARD","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"capTable","inputs":[{"name":"policyId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"who","type":"address[]","internalType":"address[]"},{"name":"weightBps","type":"uint256[]","internalType":"uint256[]"},{"name":"payout","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimable","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"closeTask","inputs":[{"name":"taskId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"refunded","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"contributorsOf","inputs":[{"name":"taskId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"createTask","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"slots","type":"uint32","internalType":"uint32"},{"name":"rewardPerTrajectory","type":"uint128","internalType":"uint128"},{"name":"scenario","type":"uint8","internalType":"uint8"},{"name":"difficulty","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"taskId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"createTaskUntil","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"slots","type":"uint32","internalType":"uint32"},{"name":"rewardPerTrajectory","type":"uint128","internalType":"uint128"},{"name":"scenario","type":"uint8","internalType":"uint8"},{"name":"difficulty","type":"uint8","internalType":"uint8"},{"name":"expiresAt","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"taskId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"domainSeparator","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"fundTask","inputs":[{"name":"taskId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"getPolicy","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct AxonProtocolV2.Policy","components":[{"name":"taskId","type":"uint256","internalType":"uint256"},{"name":"minter","type":"address","internalType":"address"},{"name":"trajectories","type":"uint32","internalType":"uint32"},{"name":"mintedAt","type":"uint64","internalType":"uint64"},{"name":"licenceFee","type":"uint128","internalType":"uint128"},{"name":"licencesSold","type":"uint32","internalType":"uint32"},{"name":"distributed","type":"uint128","internalType":"uint128"}]}],"stateMutability":"view"},{"type":"function","name":"getTask","inputs":[{"name":"taskId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"t","type":"tuple","internalType":"struct AxonProtocolV2.Task","components":[{"name":"name","type":"string","internalType":"string"},{"name":"funder","type":"address","internalType":"address"},{"name":"rewardPerTrajectory","type":"uint128","internalType":"uint128"},{"name":"escrow","type":"uint128","internalType":"uint128"},{"name":"slotsTotal","type":"uint32","internalType":"uint32"},{"name":"slotsFilled","type":"uint32","internalType":"uint32"},{"name":"scenario","type":"uint8","internalType":"uint8"},{"name":"difficulty","type":"uint8","internalType":"uint8"},{"name":"policyMinted","type":"bool","internalType":"bool"},{"name":"expiresAt","type":"uint64","internalType":"uint64"},{"name":"closed","type":"bool","internalType":"bool"},{"name":"createdBlock","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getTasks","inputs":[{"name":"offset","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"out","type":"tuple[]","internalType":"struct AxonProtocolV2.Task[]","components":[{"name":"name","type":"string","internalType":"string"},{"name":"funder","type":"address","internalType":"address"},{"name":"rewardPerTrajectory","type":"uint128","internalType":"uint128"},{"name":"escrow","type":"uint128","internalType":"uint128"},{"name":"slotsTotal","type":"uint32","internalType":"uint32"},{"name":"slotsFilled","type":"uint32","internalType":"uint32"},{"name":"scenario","type":"uint8","internalType":"uint8"},{"name":"difficulty","type":"uint8","internalType":"uint8"},{"name":"policyMinted","type":"bool","internalType":"bool"},{"name":"expiresAt","type":"uint64","internalType":"uint64"},{"name":"closed","type":"bool","internalType":"bool"},{"name":"createdBlock","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getTrajectory","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct AxonProtocolV2.Trajectory","components":[{"name":"taskId","type":"uint256","internalType":"uint256"},{"name":"contributor","type":"address","internalType":"address"},{"name":"trajHash","type":"bytes32","internalType":"bytes32"},{"name":"cid","type":"string","internalType":"string"},{"name":"score","type":"uint16","internalType":"uint16"},{"name":"paid","type":"uint128","internalType":"uint128"},{"name":"at","type":"uint64","internalType":"uint64"},{"name":"atBlock","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"licensePolicy","inputs":[{"name":"policyId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"mintPolicy","inputs":[{"name":"taskId","type":"uint256","internalType":"uint256"},{"name":"licenceFee","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"policyId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"passkeys","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPasskeyRegistry"}],"stateMutability":"view"},{"type":"function","name":"policyCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"policyOfTask","inputs":[{"name":"taskId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"minted","type":"bool","internalType":"bool"},{"name":"policyId","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"runDigest","inputs":[{"name":"taskId","type":"uint256","internalType":"uint256"},{"name":"contributor","type":"address","internalType":"address"},{"name":"trajHash","type":"bytes32","internalType":"bytes32"},{"name":"cid","type":"string","internalType":"string"},{"name":"score","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"runsOnTask","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"shardHasRoom","inputs":[{"name":"taskId","type":"uint256","internalType":"uint256"},{"name":"who","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"slotsFilledOf","inputs":[{"name":"taskId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"total","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"stats","inputs":[{"name":"who","type":"address","internalType":"address"}],"outputs":[{"name":"runs","type":"uint256","internalType":"uint256"},{"name":"earned","type":"uint256","internalType":"uint256"},{"name":"meanScore","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"submitTrajectory","inputs":[{"name":"taskId","type":"uint256","internalType":"uint256"},{"name":"trajHash","type":"bytes32","internalType":"bytes32"},{"name":"cid","type":"string","internalType":"string"},{"name":"score","type":"uint16","internalType":"uint16"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"trajectoryId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"submitTrajectoryFor","inputs":[{"name":"contributor","type":"address","internalType":"address"},{"name":"taskId","type":"uint256","internalType":"uint256"},{"name":"trajHash","type":"bytes32","internalType":"bytes32"},{"name":"cid","type":"string","internalType":"string"},{"name":"score","type":"uint16","internalType":"uint16"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"trajectoryId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"submitTrajectoryWithPasskey","inputs":[{"name":"taskId","type":"uint256","internalType":"uint256"},{"name":"trajHash","type":"bytes32","internalType":"bytes32"},{"name":"cid","type":"string","internalType":"string"},{"name":"score","type":"uint16","internalType":"uint16"},{"name":"verifierSig","type":"bytes","internalType":"bytes"},{"name":"pr","type":"bytes32","internalType":"bytes32"},{"name":"ps","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"trajectoryId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"taskCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"taskTrajectories","inputs":[{"name":"taskId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"totalEarned","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalRuns","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalScore","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"trajectoriesOf","inputs":[{"name":"who","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"trajectoryCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"trajectoryUsed","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"treasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"verifier","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"weightOnTask","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Claimed","inputs":[{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ContributorPaid","inputs":[{"name":"policyId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"contributor","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PasskeyRun","inputs":[{"name":"trajectoryId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"contributor","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PaymentDeferred","inputs":[{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PolicyLicensed","inputs":[{"name":"policyId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"buyer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"paidOut","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"PolicyMinted","inputs":[{"name":"policyId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"taskId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"contributors","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"licenceFee","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"TaskCreated","inputs":[{"name":"taskId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"funder","type":"address","indexed":true,"internalType":"address"},{"name":"name","type":"string","indexed":false,"internalType":"string"},{"name":"slots","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"rewardPerTrajectory","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"scenario","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"difficulty","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"TaskExpired","inputs":[{"name":"taskId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"funder","type":"address","indexed":true,"internalType":"address"},{"name":"refunded","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TaskFilled","inputs":[{"name":"taskId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TaskFunded","inputs":[{"name":"taskId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TrajectoryAccepted","inputs":[{"name":"trajectoryId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"taskId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"contributor","type":"address","indexed":true,"internalType":"address"},{"name":"trajHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"cid","type":"string","indexed":false,"internalType":"string"},{"name":"score","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"paid","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AlreadyClosed","inputs":[]},{"type":"error","name":"AlreadyMinted","inputs":[]},{"type":"error","name":"AlreadySubmitted","inputs":[]},{"type":"error","name":"BadPasskeySignature","inputs":[]},{"type":"error","name":"BadSignature","inputs":[]},{"type":"error","name":"CapReached","inputs":[]},{"type":"error","name":"EscrowEmpty","inputs":[]},{"type":"error","name":"Expired","inputs":[]},{"type":"error","name":"NoPasskey","inputs":[]},{"type":"error","name":"NoPolicy","inputs":[]},{"type":"error","name":"NoSlots","inputs":[]},{"type":"error","name":"NotExpired","inputs":[]},{"type":"error","name":"NotFilled","inputs":[]},{"type":"error","name":"NotFunder","inputs":[]},{"type":"error","name":"NotVerifier","inputs":[]},{"type":"error","name":"NothingToClaim","inputs":[]},{"type":"error","name":"ScoreTooHigh","inputs":[]},{"type":"error","name":"ScoreTooLow","inputs":[]},{"type":"error","name":"ShardFull","inputs":[]},{"type":"error","name":"TaskClosed","inputs":[]},{"type":"error","name":"TooManyContributors","inputs":[]},{"type":"error","name":"Underfunded","inputs":[]},{"type":"error","name":"WrongFee","inputs":[]},{"type":"error","name":"ZeroReward","inputs":[]},{"type":"error","name":"ZeroSlots","inputs":[]}],"contracts":[{"name":"AxonProtocolV2","address":"0x17731731c6652770CE630e29b62791DC2CED5f38","does":"Tasks, escrow, trajectories, policies and cap tables. Records a run and pays for it in one call, in MON. submitTrajectoryFor is permissionless: anyone may pay the gas for someone else's run, because the verifier signature binds the task, the contributor, the hash and the score, so relaying moves who pays and forges nothing.","source":"contracts/src/AxonProtocolV2.sol","surface":"/hub, /station, /task, /run, /leaderboard, /portfolio","monad":"Written for parallel execution: each operator's submit writes only its own shard of the slot counter, so two runs on one task do not touch the same storage and settle side by side in one block."},{"name":"TrajectoryCertificate","address":"0x0604C7afC6E17Cbe59644040C2373C97a56439EA","does":"Soulbound token naming a run's recorder. Conveys no rights over the data.","source":"contracts/src/TrajectoryCertificate.sol","surface":"/contracts, /run"},{"name":"ContributionRecord","address":"0xd2527d7e737A63118036164A9F1D4dB3CDc3e27E","does":"A running total of work recorded, in a shape wallets already read. Cannot be transferred, sold or redeemed.","source":"contracts/src/ContributionRecord.sol","surface":"/contracts, /operator, /portfolio"},{"name":"CorpusShares","address":"0xAE1F24fE0F759BEF941eA2Df2dcb23dc3e130fc7","does":"The corpus as shares. Only an operator admitted with a passkey can hold one; each paid run issues its share by score, and dividends from corpus sales pay whoever held at a record date fixed in advance.","source":"contracts/src/CorpusShares.sol","surface":"/corpus-token, /station"},{"name":"SalesLog","address":"0xf34A45021B8006C141E8b9CFe4B8a509a9b1fE27","does":"Every corpus sale to an agent, with the sha256 of the bytes served, so a buyer can check its copy on chain.","source":"contracts/src/SalesLog.sol","surface":"/agents, /api/agent/sales","monad":"Kept in storage as well as emitted: Monad's public endpoints answer a log query only a hundred blocks wide, so a log that lived only in events could not be read back."},{"name":"Referrals","address":"0xb51CBeF22F6B68A0FBC93A3dDb3e54Fb93c4269b","does":"Pays MON for bringing someone who then does the work, not for signing up.","source":"contracts/src/Referrals.sol","surface":"/portfolio, /contracts"},{"name":"PrizePool","address":"0xcf5E9A252d90A1D08C1909cD4022C5188CCe4E5E","does":"A funded pot for task 1. Contributors enter themselves and it splits by work the protocol recorded.","source":"contracts/src/PrizePool.sol","surface":"/contracts"},{"name":"Foundry","address":"0x9Fba189A0C60500c760d49C98d695861f7395311","does":"A MON treasury the protocol's contributors vote to spend on new tasks, weighted by work recorded.","source":"contracts/src/Foundry.sol","surface":"/foundry, /contracts"},{"name":"ConfidentialPayouts","address":"0x4CC9Dd3b85Fa3E1D69f365f26eD80c9c1068A4A0","does":"ElGamal on secp256k1. Earnings add up on chain without the chain holding the number.","source":"contracts/src/ConfidentialPayouts.sol","surface":"/contracts"},{"name":"CorpusAccess","address":"0xD0ad261D8d7a3D5a1D0Bf6Ed6EbE4BAD691b4AA1","does":"Time-boxed read access to the corpus, paid in MON by the day. Sells time, not rights.","source":"contracts/src/CorpusAccess.sol","surface":"/corpus, /api/dataset"},{"name":"CorpusManifest","address":"0x692190b7955821C050FFFbC7741D31a65Ecd5c48","does":"The published shape of the corpus a licence buys.","source":"contracts/src/CorpusManifest.sol","surface":"/corpus"},{"name":"PasskeyRegistry","address":"0xE344179839c9cA2101Ad930BD49268103F3945a9","does":"Binds a secp256r1 public key to an address and verifies signatures through the P-256 precompile at 0x0100.","source":"contracts/src/PasskeyRegistry.sol","surface":"/passkey","monad":"Monad's P-256 precompile (EIP-7951) at 0x0100 checks a browser passkey's signature on chain."}],"superseded":[{"name":"CorpusShares, first deployment","address":"0xd19688FafB863238D9BAf880f71A2A9b968DfCcd","does":"Replaced the same day. A dividend declared while no share existed could never be paid or returned, and 0.01 MON declared that way during testing is still in it. The current CorpusShares can reclaim one.","source":"contracts/src/CorpusShares.sol"},{"name":"AxonProtocol v1 on Monad Testnet","address":"0x89384f46e430F37DB61Afb98810eba995C0d6Ed4","does":"The Monad Blitz Hyderabad deployment. Its runs are real, paid in MON, and verifiable on Monadscan.","source":"contracts/src/AxonProtocol.sol"},{"name":"AxonProtocolV2 on Avalanche Fuji","address":"0x909d9318d602Cb4Ba84D2851Ab9BFf60DB7077C0","does":"Where the product was built out between Blitz and the move back. Its runs are real, paid in AVAX, and verifiable on Snowtrace.","source":"contracts/src/AxonProtocolV2.sol"}],"registry":"https://app.thenar.io/contracts"}