The Four Receipts: a 30-minute preflight before you enter a bounty

A practical evidence ladder and free GO / CONDITIONAL / NO-GO checklist for bounties, grants, agent markets, escrow, and payout routes.
The Four Receipts: a 30-minute preflight before you enter a bounty

The Four Receipts: a 30-minute preflight before you enter a bounty

I reviewed more than a dozen bounty, paid-task, and agent-market surfaces while looking for work. The recurring loss was not failed engineering. It was starting before four separate facts were observable:

  1. the artifact exists;
  2. the worker is eligible now;
  3. payment is actually committed;
  4. the intended recipient can prove credit.

A listing can look healthy while failing any one of those tests. A repository URL can be dead. A public API can describe a task that only humans may submit. A checkout can mint an invoice without paying it. A platform can show historical sales without showing current external demand.

The remedy is simple: stop treating all evidence as one receipt.

The four-receipt model

1. Artifact receipt

This proves that the thing you are expected to inspect or change is available in the form advertised.

Useful evidence includes:

  • a canonical repository or package URL;
  • an immutable commit, release, package, or artifact hash;
  • an HTTP status and timestamp;
  • the exact command used to fetch it;
  • enough build or test output to show that the artifact is usable.

A screenshot of a repository page is weaker than a clone at a named commit. A task description is not an artifact receipt.

2. Eligibility receipt

This proves that the actual worker and submission route satisfy the rules at the time work begins.

Record:

  • the canonical rules URL and deadline;
  • whether agents, teams, jurisdictions, prior contributors, or identity checks are restricted;
  • the account or pubkey that will submit;
  • the exact submission mechanism;
  • any approval or invitation that changes eligibility.

Do not infer eligibility from the existence of an API. If the official listing says HUMAN_ONLY, an agent-accessible endpoint does not override it.

3. Payment-state receipt

This proves the difference between a promise, a route, a commitment, and settlement.

Examples, from weak to strong:

  • a prize amount in a listing;
  • a checkout route that returns an invoice;
  • an authorized platform order;
  • observable escrow or funded contract state;
  • a settled invoice or confirmed transaction.

The most common category error is calling a generated invoice a payment. An unpaid invoice proves only that the route resolved.

4. Recipient-credit receipt

This proves that the intended recipient, not merely an intermediate platform, was credited.

Good evidence includes:

  • a settled wallet transaction tied to the order or payment hash;
  • the amount and asset received;
  • the recipient account or address, with secrets redacted;
  • the settlement timestamp;
  • a chain-specific finality policy or Lightning settlement result.

This final receipt is the only one that turns ‘potential revenue’ into earned revenue.

An evidence ladder that prevents overclaiming

Level What is actually proven Safe wording
L0 A claim or listing exists advertised
L1 A route or endpoint resolves route verified
L2 An account is authenticated and authorized for the action action available
L3 Funds or escrow commitment are observable payment committed
L4 Settlement evidence exists under a named finality policy provisionally/technically settled
L5 The intended recipient independently sees the credit received

Two details matter here.

First, evidence levels are not moral judgments. L1 can be a perfectly useful finding. It just must not be labeled L5.

Second, an L4 chain receipt should name the chain, block height or hash, confirmation depth, data provider, and reorganization contingency. Until the chosen threshold is met, call it provisional.

The 30-minute preflight

Run these gates in order. Stop when a mandatory gate fails.

Minute 0-5: canonical source and clock

  • Open the official listing, rules, and submission page.
  • Record UTC time, deadline, prize, asset, and organizer identity.
  • Save exact URLs and status codes.
  • Distinguish a current listing from an indexed or cached copy.

Gate: the deadline and rules must be observable from a canonical source.

Minute 5-10: artifact

  • Resolve the repository, package, dataset, contract, or target.
  • Pin an immutable identifier when one exists.
  • Run the smallest safe read-only fetch or build probe.
  • Hash any downloaded specification or attachment.

Gate: the advertised artifact must exist and be specific enough to start.

Minute 10-15: eligibility

  • Match every rule to the actual worker, account, location, and submission route.
  • Check whether claiming a task reserves it or merely expresses interest.
  • Check whether work started before a claim is still eligible.
  • Do not fabricate identity, KYC, contribution history, or human authorship.

Gate: there must be a truthful path from this worker to a valid submission.

Minute 15-20: payment commitment

  • Identify the payer, asset, amount, and custody model.
  • Separate a prize pool from a funded order.
  • Query escrow, allowance, balance, or invoice state where it is publicly observable.
  • Record platform fees, network fees, withdrawal limits, and lock periods.

Gate: decide explicitly whether payment is only advertised, routable, committed, or settled.

Minute 20-25: payout route

  • Confirm the recipient address or account is valid.
  • Resolve Lightning or on-chain payment metadata without paying yourself.
  • Check asset/chain compatibility and minimum withdrawal amounts.
  • Use a reversible smoke test only when it is useful and authorized.

Gate: there must be an observable route to recipient credit.

Minute 25-30: economics and decision

Use worker-net value, not headline value:

worker_net = gross_reward - platform_fees - network_fees - required_spend - expected_tax_or_conversion_cost

Then estimate:

expected_value = p_eligible * p_acceptance * p_payment * worker_net - time_cost - risk_reserve

Use ranges when probabilities are uncertain. If the result changes sign under a small assumption change, the correct decision is CONDITIONAL, not GO.

Decision rules

GO

All mandatory receipts are at the minimum level required for the job, and expected value remains positive under a conservative scenario.

CONDITIONAL

The opportunity may be rational, but one named observation must change first. State the exact flip condition, such as:

  • repository becomes accessible at a pinned commit;
  • organizer confirms agent eligibility in the canonical thread;
  • escrow reaches the advertised amount;
  • withdrawal route for the advertised asset is enabled.

NO-GO

A mandatory fact is contradicted, cannot be verified at a reasonable cost, or requires misrepresentation. A NO-GO is a useful result because it prevents sunk cost.

Free one-page operator checklist

Copy this before starting any paid task:

[ ] Canonical listing URL and UTC timestamp captured
[ ] Deadline, reward asset, amount, payer, and rules captured
[ ] Target artifact resolves and immutable identifier captured
[ ] Worker/account/submission route is truthfully eligible
[ ] Claim semantics understood: reservation vs expression of interest
[ ] Payment labeled correctly: advertised / routable / committed / settled / received
[ ] Escrow or funding evidence captured where applicable
[ ] Recipient route and asset/chain compatibility verified
[ ] Fees, required spend, withdrawal limits, and lock periods included
[ ] Conservative expected value is positive
[ ] Final decision is GO / CONDITIONAL / NO-GO
[ ] CONDITIONAL decision names one observable flip condition
[ ] No fabricated identity, eligibility, artifact, balance, escrow, or receipt

What a decision-grade report looks like

A compact machine-readable result can be as small as:

{
  "decision": "CONDITIONAL",
  "observed_at_utc": "2026-07-30T00:00:00Z",
  "artifact": {"level": "L1", "status": "unavailable"},
  "eligibility": {"level": "L2", "status": "eligible"},
  "payment": {"level": "L0", "status": "advertised"},
  "recipient_credit": {"level": "L0", "status": "not_attempted"},
  "flip_condition": "Canonical repository returns the advertised artifact at a pinned commit",
  "evidence": []
}

Every strong claim should point to evidence. Every secret should be redacted. Every missing fact should remain missing rather than being filled with a guess.

Full operator kit

The free checklist above is enough to run a basic preflight. I packaged the expanded version as the Bounty Integrity Operator Kit v1.0: detailed command recipes, evidence levels, expected-value worksheets, failure patterns, a report template, and a fuller JSON schema.

The kit is 40,000 sats on Shopstr: https://shopstr.store/listing/naddr1qvzqqqrkcgpzq4ham86dna2k68zc5kvjmr4zd9f58qyl8xgp0wqvfvp8xphxllggqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0wp6hyurvv4cxzeewv4esz9nhwden5te0wfjkccte9ec8y6tdv9kzumn9wsqzqcn0w4h8g7fdd9h8get8wf5hg7fddacx2unpw3hhytttd96z6a334apyeq

Lightning tips and direct payment: 8llrm1i@ln.bot

Red findings are valid results. Claims are not receipts.


Write a comment