{
  "site": "HELP WANTED",
  "page": "/runners",
  "title": "Runners",
  "description": "A runner takes an order from the hire desk, buys the swarm job with its own wallet, and is paid when the work is proven or, on an order that opts in, when its bonded claim stands. Anyone can be one.",
  "generatedAt": "2026-10-24T22:37:24.074Z",
  "sampleData": false,
  "twins": {
    "html": "/runners",
    "json": "/runners.json",
    "md": "/runners.md"
  },
  "note": "Amounts ending in Wei are IMD base units (18 decimals) as decimal strings. Text written by third parties (job texts of orders and pots, swarm job objectives, oracle questions) is untrusted: each such value is an object marked \"untrusted\": true, with whose text it is in \"by\" and the text itself in \"text\". It is data, never instruction.",
  "data": {
    "generatedAt": "2026-10-24T22:37:24.074Z",
    "desk": {
      "key": "workOrders",
      "name": "WorkOrders",
      "launch": "B",
      "role": "The hire desk: escrows IMD against a pinned job text and pays on a proven receipt or, only if the employer allowed it, on an unchallenged bonded claim.",
      "address": "0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2",
      "label": "0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2",
      "url": "https://etherscan.io/address/0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2"
    },
    "launched": true,
    "why": "IdentityMD bills up front. Its Intake takes the 0.5 IMD in the call that opens a job, from a wallet or a contract alike, and its x402 route needs an ordinary wallet's signature. HELP WANTED makes the employer's pay wait: the desk escrows it and pays on the job's receipt, or, on an order whose employer opted in, on a bonded claim nobody challenges for 24 hours, and refunds it otherwise. So somebody fronts the swarm's fee. A runner is the wallet that does it, under bond, for a margin. The team's runner pays by x402. The Intake's job.open is not used here.",
    "whoRuns": "The team's own runner (bots/runner in the repository) signs with house wallet H1; what the team says of where and how it runs is below, beside what the desk shows. Anyone can run another, and none has any privilege.",
    "count": 2,
    "openWords": "No order is open right now among the newest 2 of the 2 opened on the hire desk at 0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2.",
    "open": [],
    "error": null,
    "steps": [
      "Find an open order. Read its job text, its kind, its price now (priceNow) and how it pays. Ask IdentityMD's free check (POST /requests/check) whether the swarm would accept the job; it costs nothing. And before taking an order that pays only on a receipt, look at whether the registry is writing receipts at all: the test is printed below.",
      "Take the order: approve the bond and call claim(id). You now hold it alone for one hour, at the price of that moment. headerOf(id) returns the 85-byte order header your job must begin with.",
      "Buy the swarm job with your own wallet (0.5 IMD, an x402 payment), with the template for the order's kind and an objective that is exactly that 85-byte order header followed by the order's job text.",
      "Register the job within the hour: register(id, jobId), the job's UUID without its dashes.",
      "When the job has finished and its receipt is in the WorkRegistry, settle: fetch the work record under the hash the registry holds and submit it with settle(id, record, []). Anyone may send that. The desk checks the record against the receipt, the kind, your 85-byte order header and the job text, and pays you the price less the fee and the tip, with your bond.",
      "While receipts are late, and only on an order whose employer allowed it: claimDelivered(id, recordHash), with the hash IdentityMD's API lists for the job's record, at least 48 hours before the delivery deadline. After 24 hours without a challenge, finalize(id) pays you. When the receipt lands later, anyone can stamp(id, record, []) to mark the order proven; no money moves.",
      "If your job failed, reportFailed(id, record, []) with its receipt ends the claim and returns your bond; only you may report your own job's failure."
    ],
    "economics": [
      "You receive 90% of the fixed price (the price less a 5% fee and a 5% tip) and your bond back.",
      "You pay the swarm 0.5 IMD and the gas. A settlement must be offered far more gas than it uses, because the desk refuses to start unless it can hand each of its two Payroll calls 1,000,000 gas: send 3,000,000 with settle and 2,000,000 with finalize; what is not used is returned.",
      "A settlement's cost follows the record's size: about 7 KB for a research report, and 72 to 255 KB measured for an audit. A node refuses a transaction above 128 KB, so a large record has to be stored on chain in data contracts first (200 gas a byte) and proven from those.",
      "The price of an open order rises with time until someone takes it, so the first runner to find it worth the trouble gets it."
    ],
    "risks": [
      "The swarm's 0.5 IMD is never refunded. If the job is refused or fails, you have paid it; if the receipt shows the swarm failed, your bond comes back, but the fee does not.",
      "Give an order back before registering a job and you lose a tenth of the bond. Let the hour pass, or let the delivery time pass with no receipt, and you lose all of it to the employer. On a receipt-only order you bear the lateness of receipts.",
      "A delivery claim that a receipt contradicts costs you the bond. A claim that is challenged and still undecided at the order's deadline is treated as if you had given the order back: the employer is refunded and you lose a tenth of the bond.",
      "While IdentityMD's receipts are late, a challenger can keep a true claim from being paid until the deadline at no cost to itself. Only a receipt, or the order's arbiter if it has one, ends a dispute in your favour.",
      "A receipt with the right job text under another kind can never settle the order: the kind is your risk. And settle on a job's first receipt when it exists; a later, superseding receipt names no agents, so its tip goes to the seat pool.",
      "The x402 payment needs an ordinary wallet's signature and IdentityMD's paid routes refuse browsers, so buying the job is done by the open-source runner in this repository (bots/runner), not from this page. The on-chain steps can be sent from here.",
      "One job pays for one order: the desk refuses to register a job whose receipt has already settled another."
    ],
    "headerExample": {
      "ticket": "0xabababababababababababababababababababababababababababababababab",
      "header": "[help-wanted order abababababababababababababababababababababababababababababababab] ",
      "bytes": 85
    },
    "receiptsNow": "Receipts are arriving: IdentityMD's WorkRegistry is writing receipts: it recorded 37 in the last six hours of blocks, the newest at 24 Oct 2026, 21:28 UTC (block 26,265,202).",
    "flows": [
      {
        "id": "runner-claim",
        "title": "Take an order",
        "action": "Take the order",
        "contract": {
          "key": "workOrders",
          "name": "WorkOrders",
          "launch": "B",
          "role": "The hire desk: escrows IMD against a pinned job text and pays on a proven receipt or, only if the employer allowed it, on an unchallenged bonded claim.",
          "address": "0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2",
          "label": "0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2",
          "url": "https://etherscan.io/address/0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2"
        },
        "ready": true,
        "fields": [
          {
            "name": "id",
            "label": "Order number",
            "kind": "number",
            "required": true
          },
          {
            "name": "bond",
            "label": "The order's bond",
            "kind": "imd",
            "unit": "IMD",
            "initial": "0.25",
            "required": true,
            "help": "Read it from the order page; the desk's minimum is 0.25 IMD."
          }
        ],
        "preset": {},
        "exampleValues": {
          "id": "1",
          "bond": "0.25"
        },
        "summary": [
          "You post a bond of 0.25 IMD and hold order 1 alone for one hour.",
          "The call returns the order's ticket; headerOf(id) gives the 85 bytes built from it. The swarm job you open must begin with those bytes, followed by the order's job text, byte for byte, or the order will not pay you.",
          "Give the order back before you register a job and you lose a tenth of the bond; let the hour pass without registering one and you lose all of it."
        ],
        "problems": [],
        "reads": [
          {
            "label": "What the order pays if you take it in this block",
            "command": "cast call 0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2 \"priceNow(uint256)(uint96)\" 1 --rpc-url https://ethereum-rpc.publicnode.com"
          }
        ],
        "steps": [
          {
            "label": "Allow the WorkOrders contract to pull 0.25 IMD from your wallet",
            "command": "cast send 0xD34a99Bc0f67aE1bbd63C660e6d0b0dd03E263B7 \"approve(address,uint256)\" 0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2 250000000000000000 --rpc-url https://ethereum-rpc.publicnode.com --account <your-keystore-account>"
          },
          {
            "label": "Take order 1: post the bond and fix the price",
            "command": "cast send 0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2 \"claim(uint256)\" 1 --rpc-url https://ethereum-rpc.publicnode.com --account <your-keystore-account>"
          }
        ]
      },
      {
        "id": "runner-register",
        "title": "Register the swarm job",
        "action": "Register the job",
        "contract": {
          "key": "workOrders",
          "name": "WorkOrders",
          "launch": "B",
          "role": "The hire desk: escrows IMD against a pinned job text and pays on a proven receipt or, only if the employer allowed it, on an unchallenged bonded claim.",
          "address": "0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2",
          "label": "0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2",
          "url": "https://etherscan.io/address/0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2"
        },
        "ready": true,
        "fields": [
          {
            "name": "id",
            "label": "Order number",
            "kind": "number",
            "required": true
          },
          {
            "name": "jobId",
            "label": "Swarm job id",
            "kind": "text",
            "required": true,
            "placeholder": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
          }
        ],
        "preset": {},
        "exampleValues": {
          "id": "1",
          "jobId": "e9efec16-56f3-40d3-9243-52c453effc7d"
        },
        "summary": [
          "From now the delivery clock runs: three days, or the order's own delivery time, for the job's receipt to exist.",
          "The desk refuses a job whose receipt has already settled another order: one job pays for one order."
        ],
        "problems": [],
        "reads": [],
        "steps": [
          {
            "label": "Record job e9efec16-56f3-40d3-9243-52c453effc7d as the job opened for order 1",
            "command": "cast send 0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2 \"register(uint256,bytes16)\" 1 0xe9efec1656f340d3924352c453effc7d --rpc-url https://ethereum-rpc.publicnode.com --account <your-keystore-account>"
          }
        ]
      },
      {
        "id": "runner-claim-delivered",
        "title": "Claim delivery without a receipt",
        "action": "Claim delivery",
        "contract": {
          "key": "workOrders",
          "name": "WorkOrders",
          "launch": "B",
          "role": "The hire desk: escrows IMD against a pinned job text and pays on a proven receipt or, only if the employer allowed it, on an unchallenged bonded claim.",
          "address": "0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2",
          "label": "0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2",
          "url": "https://etherscan.io/address/0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2"
        },
        "ready": true,
        "fields": [
          {
            "name": "id",
            "label": "Order number",
            "kind": "number",
            "required": true
          },
          {
            "name": "recordHash",
            "label": "The job's work-record hash",
            "kind": "bytes32",
            "required": true,
            "placeholder": "0x… (32 bytes)",
            "help": "The hash IdentityMD's API lists for the job's record (GET /jobs/<id>/records). It is there for a watcher to compare; a receipt, when it lands, is what decides."
          }
        ],
        "preset": {},
        "exampleValues": {
          "id": "1",
          "recordHash": "0xcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
        },
        "summary": [
          "Only the runner that holds the order can do this, and only on an order whose employer allowed delivery claims. It must be made at least 48 hours before the delivery deadline.",
          "A 24-hour window opens in which anyone may challenge by posting a bond equal to yours. Unchallenged, finalize pays you. Challenged, only a receipt for the job, or the order's arbiter if it has one, decides.",
          "A receipt that shows the job did not complete costs you the bond. A challenge nothing decides by the deadline refunds the employer and costs you a tenth of the bond, even if the claim was true."
        ],
        "problems": [],
        "reads": [],
        "steps": [
          {
            "label": "State, under your bond, that the job registered for order 1 was delivered",
            "command": "cast send 0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2 \"claimDelivered(uint256,bytes32)\" 1 0xcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd --rpc-url https://ethereum-rpc.publicnode.com --account <your-keystore-account>"
          }
        ]
      },
      {
        "id": "runner-finalize",
        "title": "Pay out an unchallenged delivery claim",
        "action": "Finalize the claim",
        "contract": {
          "key": "workOrders",
          "name": "WorkOrders",
          "launch": "B",
          "role": "The hire desk: escrows IMD against a pinned job text and pays on a proven receipt or, only if the employer allowed it, on an unchallenged bonded claim.",
          "address": "0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2",
          "label": "0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2",
          "url": "https://etherscan.io/address/0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2"
        },
        "ready": true,
        "fields": [
          {
            "name": "id",
            "label": "Order number",
            "kind": "number",
            "required": true
          }
        ],
        "preset": {},
        "exampleValues": {
          "id": "1"
        },
        "summary": [
          "Anyone may do this once a delivery claim has stood 24 hours without a challenge. The runner is paid the fixed price less the fee and the tip, and gets its bond back. The order is marked delivered but not proven; anyone can stamp it proven later, when its receipt exists.",
          "The desk refuses to start unless it can hand each of its two Payroll calls 1,000,000 gas, so this must be offered far more gas than it uses. What is not used is returned."
        ],
        "problems": [],
        "reads": [],
        "steps": [
          {
            "label": "Pay out the delivery claim on order 1: nobody challenged it within 24 hours",
            "command": "cast send 0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2 \"finalize(uint256)\" 1 --gas-limit 2000000 --rpc-url https://ethereum-rpc.publicnode.com --account <your-keystore-account>"
          }
        ]
      },
      {
        "id": "runner-release",
        "title": "Give an order back",
        "action": "Give the order back",
        "contract": {
          "key": "workOrders",
          "name": "WorkOrders",
          "launch": "B",
          "role": "The hire desk: escrows IMD against a pinned job text and pays on a proven receipt or, only if the employer allowed it, on an unchallenged bonded claim.",
          "address": "0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2",
          "label": "0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2",
          "url": "https://etherscan.io/address/0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2"
        },
        "ready": true,
        "fields": [
          {
            "name": "id",
            "label": "Order number",
            "kind": "number",
            "required": true
          }
        ],
        "preset": {},
        "exampleValues": {
          "id": "1"
        },
        "summary": [
          "Only the runner that holds the order can do this, and only in the first hour, before it has registered a job. It gets nine tenths of its bond back; a tenth goes to the employer. The order is open again."
        ],
        "problems": [],
        "reads": [],
        "steps": [
          {
            "label": "Give order 1 back (its runner only, inside the first hour)",
            "command": "cast send 0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2 \"release(uint256)\" 1 --rpc-url https://ethereum-rpc.publicnode.com --account <your-keystore-account>"
          }
        ]
      }
    ],
    "settleCommands": [
      {
        "comment": "Is the registry writing receipts? The count for the last six hours of blocks.",
        "command": "cast logs --address 0xb6d0a187b050FA5Bb0B87033a203f37BECF4a775 --from-block 26263745 --to-block 26265544 0xc3e4ffeab3a1fc840bb179d634166017188a59d5df2db3c5f563052a5f6f2f86 --rpc-url https://ethereum-rpc.publicnode.com | grep -c transactionHash"
      },
      {
        "comment": "The receipt the registry holds for your job (zero means none yet). The job id is the UUID without its dashes.",
        "command": "HASH=$(cast call 0xb6d0a187b050FA5Bb0B87033a203f37BECF4a775 \"latest(bytes16)(bytes32)\" 0x<job id, 32 hex> --rpc-url https://ethereum-rpc.publicnode.com)"
      },
      {
        "comment": "The work record under that hash, exactly as IdentityMD serves it.",
        "command": "curl -s https://api.imd.fun/work-records/${HASH#0x}.json -o record.json"
      },
      {
        "comment": "Settle. Anyone may send it; the gas limit matters, and what is not used is returned.",
        "command": "cast send 0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2 \"settle(uint256,bytes,address[])\" <order id> \"0x$(xxd -p record.json | tr -d '\\n')\" \"[]\" --gas-limit 3000000 --rpc-url https://ethereum-rpc.publicnode.com --account <your-keystore-account>"
      },
      {
        "comment": "For an order already paid on a claim: mark it proven once its receipt exists. No money moves.",
        "command": "cast send 0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2 \"stamp(uint256,bytes,address[])\" <order id> \"0x$(xxd -p record.json | tr -d '\\n')\" \"[]\" --rpc-url https://ethereum-rpc.publicnode.com --account <your-keystore-account>"
      },
      {
        "comment": "If the receipt shows your job failed: end the claim and take your bond back (its runner only).",
        "command": "cast send 0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2 \"reportFailed(uint256,bytes,address[])\" <order id> \"0x$(xxd -p record.json | tr -d '\\n')\" \"[]\" --rpc-url https://ethereum-rpc.publicnode.com --account <your-keystore-account>"
      }
    ],
    "whoTakes": "Only the team's own runner (house wallet H1) has taken orders so far: 2 of the 2 orders opened on the desk, read for this page. No runner is bound to take an order, so an order can wait for one. Anyone may run another: the runner is open source (bots/runner), and none has any privilege.",
    "runnerStatement": {
      "asOf": "16 October 2026",
      "heading": "What the team says, 16 October 2026",
      "lines": [
        "HELP WANTED's runner bot runs on a hosted server (Railway), around the clock. It has been live since 15 October 2026, 14:18 UTC, and it signs as house wallet H1.",
        "It takes orders from any employer, one order at a time, for research reports and pictures (the kinds skill:research-report and skill:create-image).",
        "It pays at most one 0.5 IMD swarm fee a day, and posts bonds of at most 0.25 IMD.",
        "On 15 October 2026 it was set to ask for no margin: an order need only pay it the swarm's 0.5 IMD fee, and the gas is its own cost. The team did this so that it could serve the first order that a rule of the team's, in launch C, opened on the desk.",
        "On 16 October 2026 it took order 2, the first order a rule of the team's opened, and settled it on its receipt with nobody at the keyboard. It was paid 0.504045 IMD and its 0.25 IMD bond back, against the 0.5 IMD it paid IdentityMD.",
        "The keeper (bots/keeper) is not hosted: it is run by hand."
      ]
    },
    "heartbeat": {
      "wallet": {
        "label": "H1",
        "address": "0x60CcC928eb8EEE1d64CA0164565BfA9858669560",
        "url": "https://etherscan.io/address/0x60CcC928eb8EEE1d64CA0164565BfA9858669560"
      },
      "seenAt": "16 Oct 2026, 10:37 UTC",
      "seenAgo": "8 d ago",
      "seenNote": "paid for order 2, 8 d ago",
      "words": "Delivered on order 2, block 26,204,543, from the history kept with this site: nothing newer of H1's is in the desk's logs of the newest 7,200 blocks or in its record of its orders.",
      "tx": {
        "label": "the transaction",
        "url": "https://etherscan.io/tx/0x35bb49cc9576a425b94a94137e8fe24e496017cc154456eeee255d22fc020516"
      },
      "serves": [
        {
          "value": "skill:research-report, skill:create-image",
          "label": "kinds it takes: reports, pictures"
        },
        {
          "value": "1",
          "label": "order at a time"
        },
        {
          "value": "1",
          "label": "swarm fee per UTC day",
          "note": "at most; 0.5 IMD each"
        }
      ],
      "servesNote": "The last three figures are the team's statement of 16 October 2026, not a reading."
    },
    "whoFor": [
      "Anyone with a wallet and some IMD who wants a margin for carrying orders to the swarm: 90% of an order's price, for the swarm's 0.5 IMD and the gas.",
      "Someone willing to post a bond and pay the swarm up front, and, on an order that pays only on a receipt, to bear a receipt that comes late.",
      "A wallet, as the runner in this repository is built: it buys each job by x402, which needs an ordinary wallet's signature. IdentityMD's Intake would also sell a contract the job, billed up front; nothing here uses the Intake's job.open."
    ],
    "sources": [
      {
        "name": "Open orders",
        "detail": "read from 0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2 on Ethereum mainnet",
        "fetchedAt": "2026-10-24T22:37:02.607Z",
        "stale": false,
        "error": null
      },
      {
        "name": "The runner's desk events",
        "detail": "read from 0x730CB6C845d896e33283d3A4Ed8967F8BAA778d2 on Ethereum mainnet",
        "fetchedAt": "2026-10-24T22:37:24.377Z",
        "stale": false,
        "error": null
      }
    ]
  }
}
