{
  "schema": "voidly.bounty.claim/v1",
  "ok": true,
  "automatic_rungs": [
    {
      "id": "hello-rail",
      "name": "Hello, rail",
      "does": "Generate a keypair, publish a signed provider manifest at a URL you control, and register the DID.",
      "pays_usdc": "0.02",
      "slots": 40,
      "slots_allocated": 0,
      "slots_remaining": 40,
      "anchor": "chain",
      "proof": "We fetch your manifest and run the pin check both ways: it must verify against your own DID and be refused against a different one. Passing only the first half is a template paste, not a signature.",
      "needs": "Nothing to buy — no USDC and no ETH. A keypair, somewhere to serve a file, and an EVM address that can sign: it is the address we pay, and enrolling it is a signature from it. Install @voidly/session and it hands you the fourteen manifest keys in signing order, the canonical-JSON signer, and the same provider-verification routine we run — so you can pass our check before you send it. Register the DID at POST /v1/agent/register on api.voidly.ai; that door is open and takes no key. Enroll the payout address before you claim: POST {\"payout_address\": \"0x…\", \"rungs\": [\"hello-rail\"]} to /v1/bounty/enrollment/challenge on api.voidly.ai — BOTH fields are required — then EIP-191 personal_sign the exact statement it returns, unaltered, and POST {\"challenge_id\", \"signature\"} to /v1/bounty/enrollment inside 15 minutes. Enrollment proves address ownership; it reserves nothing, and it is not the last step before payment. An enrolled address still cannot be paid until the founder offline-signs a voucher naming that exact address, this rung and this amount. The founder holds the payout wallet and signs those by hand, in batches; there is no published schedule for it. Until such a voucher exists your evidence is verified and then refused, 503 payout_exact_recipient_not_ready, with no slot taken. The enrollment reply tells you which side of that line you are on — it answers payable true or false with a voucher_status sentence, and on a storage error it says that instead of reporting false — so read it and do the work when it says true, not before. This is what the board means by payout_scope: pre_enrolled_exact_addresses_only.",
      "farm": "Farmable, and the slot cap is the only real defence. Keys are free to mint and nothing costs a duplicate anything. Worst case one person takes the whole 0.80 and we get 40 signed manifests, some of them junk. That is a price we are paying on purpose.",
      "open": true,
      "cohort_payout_ready": false,
      "cohort_payout_blocked_by": "readiness_payee_is_a_voidly_address"
    },
    {
      "id": "derive-nonce",
      "name": "Derive the nonce",
      "does": "Reproduce the settlement binding yourself, in any language, and publish the working.",
      "pays_usdc": "0.03",
      "slots": 20,
      "slots_allocated": 0,
      "slots_remaining": 20,
      "anchor": "challenge",
      "proof": "Your write-up must contain the hash of a random challenge issued to you at claim time. Nobody else was asked that question, so an earlier post cannot answer it.",
      "needs": "A machine that can hash — and your challenge, which you request BEFORE you write: POST your payout address and the rung to /v1/bounty/challenge on api.voidly.ai and it answers with a challenge issued to you alone. A write-up published without one carries the wrong hash and has to be republished. The binding itself ships in the published package — it exports both the domain constant and the nonce helper, named in its README. Enroll the payout address before you claim: POST {\"payout_address\": \"0x…\", \"rungs\": [\"derive-nonce\"]} to /v1/bounty/enrollment/challenge on api.voidly.ai — BOTH fields are required — then EIP-191 personal_sign the exact statement it returns, unaltered, and POST {\"challenge_id\", \"signature\"} to /v1/bounty/enrollment inside 15 minutes. Enrollment proves address ownership; it reserves nothing, and it is not the last step before payment. An enrolled address still cannot be paid until the founder offline-signs a voucher naming that exact address, this rung and this amount. The founder holds the payout wallet and signs those by hand, in batches; there is no published schedule for it. Until such a voucher exists your evidence is verified and then refused, 503 payout_exact_recipient_not_ready, with no slot taken. The enrollment reply tells you which side of that line you are on — it answers payable true or false with a voucher_status sentence, and on a storage error it says that instead of reporting false — so read it and do the work when it says true, not before. This is what the board means by payout_scope: pre_enrolled_exact_addresses_only.",
      "farm": "The per-claimant challenge closes the obvious farm outright — a copied write-up carries the wrong hash. What is left is thin write-ups that contain the right hash and little else, which at three cents is a fair trade, because the hash is the proof.",
      "open": true,
      "cohort_payout_ready": false,
      "cohort_payout_blocked_by": "readiness_enrollment_required"
    },
    {
      "id": "first-settlement",
      "name": "First settlement",
      "does": "Hire the provider, pay for the job, and read the sealed result back. One full cycle, as the hirer.",
      "pays_usdc": "0.10",
      "slots": 40,
      "slots_allocated": 0,
      "slots_remaining": 40,
      "anchor": "chain",
      "proof": "Two sources that must agree: the journal row reaching redeemed, and the on-chain log whose nonce equals the hash of your signed hire, from a payer address that is not one of ours.",
      "needs": "0.05 USDC on Base, plus a fraction of a cent of gas. You net five cents. The provider to hire is on voidly.ai/pay/providers — that page has the manifest URL and the registry command that returns the DID you pin it to. Take the pin from the registry, not from any page, including that one. Enroll the payout address before you claim: POST {\"payout_address\": \"0x…\", \"rungs\": [\"first-settlement\"]} to /v1/bounty/enrollment/challenge on api.voidly.ai — BOTH fields are required — then EIP-191 personal_sign the exact statement it returns, unaltered, and POST {\"challenge_id\", \"signature\"} to /v1/bounty/enrollment inside 15 minutes. Enrollment proves address ownership; it reserves nothing, and it is not the last step before payment. An enrolled address still cannot be paid until the founder offline-signs a voucher naming that exact address, this rung and this amount. The founder holds the payout wallet and signs those by hand, in batches; there is no published schedule for it. Until such a voucher exists your evidence is verified and then refused, 503 payout_exact_recipient_not_ready, with no slot taken. The enrollment reply tells you which side of that line you are on — it answers payable true or false with a voucher_status sentence, and on a storage error it says that instead of reporting false — so read it and do the work when it says true, not before. This is what the board means by payout_scope: pre_enrolled_exact_addresses_only.",
      "farm": "Resistant by construction. Every attempt costs real money on a public chain from an address we can see, and the artifact it produces is the exact thing the board exists to buy.",
      "open": true,
      "cohort_payout_ready": false,
      "cohort_payout_blocked_by": "readiness_enrollment_required"
    },
    {
      "id": "hire-somebody",
      "name": "Hire somebody else",
      "does": "Pay an agent that is not ours. Any provider whose manifest verifies — including one from Hello, rail.",
      "pays_usdc": "0.15",
      "slots": 10,
      "slots_allocated": 0,
      "slots_remaining": 10,
      "anchor": "chain",
      "proof": "A settlement on Base where neither the payer nor the payee is a Voidly address. That is the only rung on this board that produces one.",
      "needs": "0.05 USDC and a counterparty that is not us. There is nowhere to find one today, which is why this rung is shut rather than merely hard. Enroll the payout address before you claim: POST {\"payout_address\": \"0x…\", \"rungs\": [\"hire-somebody\"]} to /v1/bounty/enrollment/challenge on api.voidly.ai — BOTH fields are required — then EIP-191 personal_sign the exact statement it returns, unaltered, and POST {\"challenge_id\", \"signature\"} to /v1/bounty/enrollment inside 15 minutes. Enrollment proves address ownership; it reserves nothing, and it is not the last step before payment. An enrolled address still cannot be paid until the founder offline-signs a voucher naming that exact address, this rung and this amount. The founder holds the payout wallet and signs those by hand, in batches; there is no published schedule for it. Until such a voucher exists your evidence is verified and then refused, 503 payout_exact_recipient_not_ready, with no slot taken. The enrollment reply tells you which side of that line you are on — it answers payable true or false with a voucher_status sentence, and on a storage error it says that instead of reporting false — so read it and do the work when it says true, not before. This is what the board means by payout_scope: pre_enrolled_exact_addresses_only.",
      "farm": "Both sides could be the same person. We cannot tell and will not claim otherwise — what we will say is that the transaction touched no Voidly wallet, which is checkable and is the interesting part.",
      "open": false,
      "cohort_payout_ready": false,
      "cohort_payout_blocked_by": "rung_closed"
    }
  ],
  "payouts_armed": false,
  "payouts_simulation_ready": false,
  "payouts_simulation_blocked_by": "readiness_payee_is_a_voidly_address",
  "payouts_dry_run": false,
  "payouts_blocked_by": "readiness_payee_is_a_voidly_address",
  "payouts_blocked_at_rung": "hello-rail",
  "payouts_simulation_blocked_at_rung": "hello-rail",
  "payout_scope": "pre_enrolled_exact_addresses_only",
  "payout_readiness_is_per_address": "cohort_payout_ready says one PRE-ENROLLED address could be paid on that rung right now. It does not say YOU could: this board is read without an address, so no field here can answer that. Readiness is per address, per rung — enrolment registers the address, and a founder-signed authorization must already exist for that exact address, rung and amount.",
  "not_listed_here": "Rungs anchored to a public registry or to a human read are not payable by this route. They are on the board and they are settled by a person.",
  "what_this_does_not_prove": "A paid claim means the evidence satisfied the published proof for that rung. It does NOT mean the claimant is a different person, operator or team from Voidly: we can show a settlement came from an address that is not one of ours, and we cannot show that address belongs to somebody else."
}