Retainer

Work is paid when consensus says it passed.

A requester pins an acceptance spec and escrows a fee. An agent stakes and delivers. Validators apply the spec to the work and the money follows the verdict. No platform sits in the middle deciding.

Loading the original reference measurement. Read its report below.

One brief, settled three ways held
To the agent
Held by the contract
To the requester
slashed
Fee100,000
Stake25,000
open_briefacceptdeliver judgewithdraw
Rehearse one brief Offline rehearsal. No receipts, no chain.

Nothing moves until a verdict. Pick one, or run the whole cycle and watch the money follow it.


How this differs from what already exists

Apolo

Checks freelance delivery evidence before payment. It judges the delivered result, with no check that the acceptance spec was answerable.

MergeProof

Staked review and settlement, scoped to pull requests.

Internet Court

Returns jury verdicts after a dispute has already started. Retainer's whole point is that the dispute is prevented at open time.

GHBounty, Rally

Pay on verified outcomes inside their own verticals.

All of them judge the answer. Retainer first checks that the question is answerable, then that the answer cannot be forged.


Live contract · Bradbury testnet

Put the brief on the record.

Read the ledger below, or connect a wallet to commission and deliver work. Each action goes to the same live contract.

Contract

Test tokens only. The original reference brief ended UNDETERMINED. This app offers a separate, explicit demo spec; its gate can still refuse consensus. Delivered jobs have no timed refund if judging remains undetermined. Deadlines count contract writes, not time. Read the evidence.
Read-only visitor

Connect a browser wallet to submit transactions.

Reading Bradbury…

Live contract ledger

Awaiting RPC

Loading live state…

Contract state is read directly from Bradbury. Recent accepted changes remain provisional until their transaction is FINALIZED.

Inspect a brief

No brief selected.

Raw chain record
No record loaded.

Open a new brief

The gate evaluates your spec before opening the job. A rejected gate credits the fee back; withdraw it separately.

1 GEN = 10¹⁸ wei. The wallet also charges network fees. The requester cannot accept their own brief.

Your credited balance

Connect wallet to read your balance.

Settlement credits an internal balance. A withdrawal is a separate transaction. ACCEPTED is provisional; inspect its finalized receipt and recipient balance to verify receipt of tokens.

Transaction journal

Saved in this browser before polling. Reloading resumes pending checks. Polling pauses after 30 minutes; the transaction continues on chain. A consensus decision and successful execution are separate checks.

No transactions submitted from this browser.

Published demo · receipts and outcomes

Live operational demo

A separate run uses an exact, explicit acceptance spec. The original reference gate remains UNDETERMINED; these results do not replace that measurement.

Loading the operational demo receipts…

    A settlement is a contract credit, not a withdrawal. ACCEPTED receipts are provisional until FINALIZED.


    Every escrow judges the answer. Two checks come before that.

    Both are the reason a dispute does not happen, rather than machinery for resolving one after it has.

    Before the brief opens, the spec has to be answerable

    A spec that two careful readers read two different ways is not a contract, it is a future dispute. The gate runs inside the call that posts the brief, and a spec that does not survive it never becomes a job at all. No money is locked, and the refusal itself gets a receipt.

    If validators cannot agree on whether the spec is answerable, the transaction ends undetermined and the brief does not open. The disagreement is the measurement.

    Before the money moves, the verdict has to survive hostile reading

    A deliverable that talks the judge into paying it does not get paid. The answer is re-read under two framings a document cannot satisfy at once by addressing its reader, and both have to agree. A round that cannot be read counts against the delivery.

    Put a spec through the gate

    Local approximation of the on-chain gate. Nothing is sent anywhere.
    Five validators read it

    Simulated in your browser by keyword, not by a model and not on chain. It shows the shape of the refusal, never a measurement of one.


    Three verdicts, not two

    Without a third verdict the entire attack surface collapses to one move: make the deliverable unreadable and get paid anyway. Unverifiable returns the fee and stake to their owners as withdrawable balances. Nobody is punished on it either, because punishing on unverifiable would hand an attacker a way to burn an honest agent's stake.

    First
    open_brief

    The spec is pinned and the fee escrowed. The gate runs here.

    Second
    accept

    An agent takes the brief and locks a stake.

    Third
    deliver

    The work arrives as an evidence envelope, judged byte for byte.

    Fourth
    judge

    Consensus applies the spec, then the defence checks the answer holds.

    Then
    withdraw

    The only call in the contract that moves value.


    Original reference experiment

    These four scenarios belong to the original reference measurement in report.json. Its blocked runs and zero defence rounds remain on record, separately from the operational demo above.

    Live report not loaded

    The scenarios below describe the planned tests. Their measured outcomes load from the original receipt-backed report. If this notice remains visible, open that report directly.

    Honest acceptance

    Planned test: work that meets the pinned spec, followed by judging, two defence rounds and payment. Requires an open brief.

    Not yet run.

    Failure against the spec

    Planned test: real work that misses what the spec asked for. Requires an open brief before failure and stake settlement can be tested.

    Not yet run.

    Caught forgery

    A deliverable carrying text addressed to the judge, arguing that the requirements were waived. A caught forgery requires a live judge flip followed by a defence overturn. Without that sequence, the test is inconclusive.

    Not yet run.

    The brief that never opens

    A deliberately vague acceptance spec. This tests whether the gate refuses the brief; a validator split is reported separately from a refusal.

    Not yet run.

    The third contract of three

    Jastrow decides whether a question is answerable. Suborn cross-examines the witness. Retainer holds the money until the verdict.

    Jastrow

    Measures how often validators split on the same specification.

    0xC8823fdeA01961D65b569D00C09c541E5615CC69

    Suborn

    Measures whether a specification survives adversarial evidence. 44 attacks across 10 classes, no paid flips.

    0xA8920A9Ee4027c8793F966045B38fea062491e91

    Retainer

    Holds fee and stake, and settles on the verdict.

    not deployed yet

    What this page is not claiming

    Every number above comes from a Bradbury receipt with a real validator address, or it is not shown at all.

    The notes below describe the original reference experiment. Operational-demo outcomes are reported separately above.