Example / Follow one fix

From a failing test
to a passing commit.

One small formatter bug. Six visible steps. Follow the contract, the work and the money.

Illustrative example

Sample task and receipt. No live bounty, signed verdict or payment is represented here.

01 / Scope

A small bug with an exact expectation.

A byte formatter shows 1,048,576 bytes as “1024 KB”. The task is to return “1 MB” at the boundary.

1 of 6 steps

Issue / byte-unit boundarysample
input     1048576
expected  "1 MB"
actual    "1024 KB"
Illustration · payment timing is separate from acceptance

02 / Freeze

The same contract grades both commits.

Node.js 22, a fixed test path and a generated command. The test bytes and manifest each get their own SHA-256 hash.

2 of 6 steps

Contract / squash.acceptance/v1sample
import test from 'node:test';
import assert from 'node:assert/strict';
import { humanBytes } from '../bytes.mjs';

test('formats the MiB boundary', () => {
  assert.equal(humanBytes(1048576), '1 MB');
});
Illustration · payment timing is separate from acceptance

03 / Fail at base

A real failing assertion unlocks funding.

The test must load and run. An import error, a timeout or a test that already passes does not unlock card funding.

3 of 6 steps

Base / assertion failedsample
✕ formats the MiB boundary

expected  "1 MB"
actual    "1024 KB"

funding   ready
Illustration · payment timing is separate from acceptance

04 / Fund & claim

A confirmed payment makes it claimable.

The funder reviews the card total. After payment confirmation, an eligible engineer claims the task and starts the fix.

4 of 6 steps

Receipt / $150 solver bountysample
bounty          $150.00
platform          $7.50
card processing   $5.02
─────────────────────────
funder pays     $162.52
solver bounty   $150.00
Illustration · payment timing is separate from acceptance

05 / Pass

The exact delivered commit passes.

The runner uses the same frozen contract. A passing trusted verdict authorizes the full bounty to the eligible claim holder.

5 of 6 steps

Delivery / acceptance passedsample
✓ formats the MiB boundary
✓ frozen test hash matches
✓ frozen manifest hash matches

acceptance      passed
payout          authorized
Illustration · payment timing is separate from acceptance

06 / Hold & transfer

Keep acceptance and payment distinct.

The payment hold and account checks still apply. A sent transfer is recorded separately; the eventual bank deposit follows Stripe’s payout schedule.

6 of 6 steps

Read the acceptance format →
Payment / distinct lifecyclesample
funded → accepted → hold
                     ↓
              transfer sent
                     ↓
             Stripe bank payout
Illustration · payment timing is separate from acceptance

Try the whole flow.

Create a small bounty, review the fixed contract and follow the state changes.

Post your first bounty →Bring an issue. We can help scope it ↗

What a real record contains.

Exact commit SHAFrozen test hashManifest hashSigned eventsSeparate payment state

A production verdict can be checked against the published verification key and ledger. This example is an explanation, rather than a completed payout claim.

Inspect the public ledger ↗