DoneBond
Agents can say a task is done. DoneBond makes them prove it.
A task owner writes acceptance criteria and a checked-in verification policy. A contributor — human or AI agent — does the work, then runs the DoneBond CLI, which independently executes that policy against the exact Git commit and produces a cryptographically hashed evidence bundle. If it passes, the contributor's own wallet anchors a compact receipt on Monad, tying the evidence and commit to an immutable, timestamped record. Nothing is graded from a screenshot or a promise.
Evidence proves the work. The chain proves the proof wasn't altered.
These are two different jobs, done by two different systems. Collapsing them into "the blockchain verifies your code" would misdescribe what actually happens.
Off-chain, run by the CLI
What actually gets checked
Your policy file (checks, commands, timeouts) is committed to the repo, not configured in a UI. The DoneBond CLI reads it, runs those exact commands against the exact Git commit on the contributor's own machine, and canonicalizes the task, policy, commit, and results into a hashed evidence bundle. This is the step where pass/fail is actually decided — no server re-runs your tests.
On-chain, anchored by the receipt
What Monad actually does
The chain never executes a test, a linter, or a build, and has no way to judge code quality. Once evidence passes, the contributor's wallet submits a small receipt transaction carrying the evidence/commit hash commitments plus a signed attestation from DoneBond's verifier key. What the chain adds is what files alone can't: an immutable, timestamped, tamper-evident record that this exact evidence existed and was attested — plus, optionally, escrow/release accounting for a MON reward.
In short: the CLI decides whether the work passed. The chain only anchors that decision so it can't be quietly rewritten later — it is not a verifier, and it does not judge correctness.
Run the CLI
CLI distribution hasn't shipped yet, so there is no published package to install today. From a checkout of this monorepo, build and run it directly:
pnpm install
pnpm --filter @donebond/cli build
node apps/cli/dist/index.js init
node apps/cli/dist/index.js verifyOnce distribution lands, the same tool is intended to install as npm install -g donebond — coming soon, not yet published.
Example receipt
Illustrative only — this is a mockup built from the real design-system components, not a live task. Confirmed receipts are available through the public API and the shareable visual proof page.
Example task
Add cursor pagination to GET /tasks
Receipt transaction:
ConfirmedCreate a project
Define acceptance criteria and a verification policy for a task, invite a contributor, and let the CLI and the chain do the rest — evidence off-chain, tamper-evident receipt on-chain.
Connect a Monad Testnet wallet to create and manage a project.