Contract Architecture

Three core contracts, two extensions, and the parameters that govern them.

System Architecture

SolverRegistry <----> IntentReceiptHub <----> DisputeModule | | | | - Registration | - Post receipts | - Evidence | - Bond staking | - V2 extension | - Escalation | - Slashing | - Disputes | - Arbitration | - Reputation | - Finalization | | | | +--------------------+ | EscrowVault OptimisticDisputeModule | - ETH + ERC20 | - Counter-bond window | - Release/Refund | - Timeout resolution | - Receipt-linked | - Escalation to arb ReceiptV2Extension | - Dual attestation (EIP-712) | - Privacy commitments | - Escrow link

Deployed Contracts (Sepolia)

ContractAddressPurpose
SolverRegistry0xB6ab964832808E49635fF82D1996D6a888ecB745Solver lifecycle, bonding, slashing, reputation
IntentReceiptHub0xD66A1e880AA3939CA066a9EA1dD37ad3d01D977cReceipt posting, disputes, finalization
DisputeModule0x144DfEcB57B08471e2A75E78fc0d2A74A89DB79DArbitration for complex disputes

Protocol Parameters

minimum Bond

0.1 ETH

challenge Window

1 hour

withdrawal Cooldown

7 days

max Jails

3

counter Bond Window

24 hours

arbitration Timeout

7 days

Receipt Structures

V1 Receipt (Single Attestation)

struct IntentReceipt { bytes32 intentHash; bytes32 constraintsHash; bytes32 routeHash; bytes32 outcomeHash; bytes32 evidenceHash; uint64 createdAt; uint64 expiry; bytes32 solverId; bytes solverSig; }

V2 Receipt (Dual Attestation + Privacy)

struct IntentReceiptV2 { // ... V1 fields ... bytes32 metadataCommitment; string ciphertextPointer; PrivacyLevel privacyLevel; bytes32 escrowId; bytes clientSig; // EIP-712 } enum PrivacyLevel { PUBLIC, SEMI_PUBLIC, PRIVATE }

Slashing Distribution

Standard Slashing

User (affected party)80%
Challenger15%
Treasury5%

Arbitration Slashing

User (affected party)70%
Treasury20%
Arbitrator10%

IntentScore Algorithm

On-chain composite score (0–10,000 basis points) computed from execution history. Minimum 10 tasks for a reliable score; new solvers start at 5,000 (50%).

Score = (40% x SuccessRate) + (25% x DisputeWinRate) + (20% x StakeFactor) + (15% x Longevity) - SlashPenalty
ComponentWeightCalculation
Success Rate40%successfulTasks / totalTasks
Dispute Win Rate25%(wins*100 + partials*50) / totalDisputes
Stake Factor20%min(currentBond, 10 ETH) / 10 ETH
Longevity15%min(age, 365d) / 365d, halved if inactive 90+ days
Slash Penalty-5% eachslashCount * 500 bps (max 30%)