Gökhan Turhan

Full-stack builder · generalist solopreneur · conceptual artist

MX-000 · REV 2026-07-17

Products AgentBounty / Reviewers / Reviewer economics

Reviewer economics

The exact pay, bond, and slashing math a reviewer faces. All numbers sourced from the v0.1 contract or the public schedule on /staking.

Reviewer economicsgokhanturhan.com/agentbounty/reviewers/economics/
Preview · MVP under construction · Public roadmap and docs.

Reviewers / Economics

A reviewer's role is to sign verdicts that survive challenge. This page is the math behind that role: what they earn, what they post, what gets slashed, and where the slashed share goes.

Numbers tagged "working schedule" source from the public table on /staking, where they are explicitly marked "subject to change." Numbers tagged "constant" are written into the v0.1 contract and locked behind admin upgrade. Both kinds will be re-affirmed at deploy.

What a reviewer earns

ItemAmountAssetSource
Reviewer fee on accepted bounty 3% of payout_max USDC SettlementModule.REVIEWER_FEE_BPS = 300 (constant)
Slashed-submission share (reviewer cut) 40% of slashed bonds on the bounty BOUNTY SLASH_REVIEWER_BPS = 4000 (constant)

Reviewer fee is paid only when the bounty pays a hunter. If every submission is rejected (i.e., winningSubmissionId == 0) or the verdict is overturned in dispute, the reviewer fee is not paid and the sponsor is refunded.

What a reviewer puts at risk

To take any verdict assignment, a reviewer must hold a registered bond in BOUNTY. The bond is locked in VerdictModule and cannot be moved while assigned to an active bounty.

ParameterValueSource
Minimum bond floor 1,000,000 BOUNTY MIN_REVIEWER_BOND (constant)
Scaling rate 1% of payout_max BOND_RATIO_BPS = 100 (constant)
Required bond formula max(MIN_REVIEWER_BOND, payout_max × BOND_RATIO_BPS / 10_000) VerdictModule.requiredBondForBounty(payoutMax)

The bond is at risk if a verdict is challenged and overturned. The challenge dispatch contract is the upgrade hook; v0.1 ships the hook surface and admin-only resolution; v0.2 plugs in a Chainlink Functions resolver for permissionless, oracle-attested challenge resolution. The reviewer's locked bond covers the dispute slash even if the reviewer is offline.

Scaling stake floor

A reviewer assigned to a $1,000 bounty needs the floor (1M BOUNTY) posted. A reviewer assigned to a $1,000,000 bounty needs at least 1,000,000 × 100 / 10_000 = 10,000 USDC equivalent in BOUNTY — but this number is denominated in the BOUNTY token at its market price at registration. A reviewer with the floor can take any bounty up to the point where 1% scaling exceeds 1M BOUNTY; beyond that, they must top up.

VerdictModule.requiredBondForBounty(payoutMax) is a pure helper that returns the floor or the scaled value, whichever is larger. Tools and indexers can read this on-chain to display "you need X more BOUNTY to take this assignment."

Slashed-submission share

When a hunter submission is judged spam, gibberish, or sufficiently bad-faith that it should not be returned, the reviewer marks it slashed in the verdict. The slashed hunter's base bond (paid in BOUNTY at submission time) is then split:

RecipientShare of slashed bondSource
Reviewer 40% SLASH_REVIEWER_BPS = 4000 (constant)
Treasury (fee recipient) 30% SLASH_TREASURY_BPS = 3000 (constant)
Burn (0xdEaD) 30% SLASH_BURN_BPS = 3000 (constant)

The reviewer share is the incentive to actually filter spam. The burn share keeps spam from being a net-positive game for the protocol. Honest hunters whose submissions are not slashed get their base bond back at settlement — the above-base portion (the EIP-1559 escalator surcharge) is burned at submission time regardless.

Pool reviewers and the 12-hour window

Sponsors propose a specific reviewer when they create a bounty. That reviewer has a 12-hour window to accept or reject. If they reject, or if 12 hours pass without action, the bounty becomes poolable: any registered reviewer with sufficient bond can call claimPoolBounty(bountyId) and become the assigned reviewer.

This means the protocol does not stall when a proposed reviewer is offline or declines, and reviewers who watch the pool can earn fees even without sponsor pre-selection. The 12-hour window is a constant — BountyEscrow.REVIEWER_REJECT_WINDOW = 12 hours.

Worked example

A sponsor creates a $1,000 bounty (payout_max = 1,000 USDC, baseBond = 100 BOUNTY). Five hunters submit; the reviewer accepts hunter #3, slashes hunter #5 for spam, returns hunters #1, #2, and #4's base bonds. After the challenge window passes:

RecipientUSDCBOUNTY
Hunter #3 (winner)960+ base bond 100 returned
Reviewer30+ 40 (slash share)
Treasury (fee recipient)5+ 30 (slash share)
Burn address5+ 30 (slash share)
Hunters #1, #2, #40+ base bond 100 each returned
Hunter #5 (slashed)0full base bond lost

The 1% protocol fee on the $1,000 payout is split 50/50: 5 USDC burned at 0xdEaD, 5 USDC routed to the fee recipient. The 50/50 split is constant in v0.1 (PROTOCOL_FEE_BURN_BPS = 5000). Hunters #2 to #5 also paid an above-base BOUNTY surcharge at submission (the EIP-1559 escalator), all of which was burned at submission time; the example shows only the base bond returns.

Withdrawal

A reviewer can call unregisterReviewer() at any time when they are not the assigned reviewer on an active (Funded / InReview / Queued / Disputed) bounty. Their full locked bond returns to their wallet immediately — there is no cooldown or vesting on the bond itself. The economic gate on leaving is: any active assignment must be completed first.

Working schedule

All reviewer-facing percentages on this page (3% reviewer fee, 1% bond scaling, 40 / 30 / 30 slash split, 1M BOUNTY floor, 12-hour reject window, 50/50 protocol-fee burn) are encoded as constants in v0.1 and will be re-confirmed at deploy. The fee router downstream of the protocol fee (60% stakers / 25% team / 15% treasury) is the working schedule on /staking, marked "subject to change" on that page; ratification at Cautio deploy.