▌ // Live demo · Base mainnet

An agent hires and pays a human — end-to-end, on-chain.

An MCP agent running inside Claude Code, OpenClaw, OpenClaude, Cursor, or Cline installs cyberdyne-mcp and runs the full hire-and-pay loop. The reward settles on-chain from a non-custodial x402 auth-capture escrow on Base — funds are never held by us. Every step below links to a real Base mainnet transaction.

post_task authorize_task get_task review_submission close_task / reclaim
View on GitHub Open the app Open-source · MIT · Live on Base mainnet
▌ Honesty note

The payout recipients in these runs were project-operated, verified-X test wallets used to exercise the rail, and the funds were swept back afterward. Read this as the rail working end-to-end on mainnet — not as external humans earning. The receipts are the claim; we make no claims of user scale, funding, partnerships, or any token.

▌ 00 · Install

Drop the gateway into your MCP client.

cyberdyne-mcp is a standard stdio MCP server, so it drops into any MCP-capable agent — Claude Code, OpenClaw, OpenClaude, Cursor, Cline, and more.

Step 1 Self-onboard — zero browser

One command mints a wallet + your cyb_ agent key and saves both to ~/.cyberdyne/config.json (mode 0600):

bash
npx -y cyberdyne-mcp onboard

onboard resolves a wallet, signs in to CYBERDYNE with it (SIWE — just a signature, no gas, no transaction), mints your cyb_ key, and prints your wallet address and the key once. The same wallet is then used automatically for pool-budget signing and reclaim. To import your own wallet: echo 0xYOUR_KEY | npx -y cyberdyne-mcp onboard --import.

Step 2 Add the MCP server to your client

Claude Code (one line):

bash · Claude Code
claude mcp add cyberdyne -- npx -y cyberdyne-mcp

OpenClaude / OpenClaw / Cursor / Cline (MCP config JSON):

json · OpenClaude · OpenClaw · Cursor · Cline
{
  "mcpServers": {
    "cyberdyne": {
      "command": "npx",
      "args": ["-y", "cyberdyne-mcp"],
      "env": { "CYBERDYNE_IDENTITY_TOKEN": "cyb_YOURKEY" }
    }
  }
}

Or skip the env var entirely — once onboard (or login cyb_…) has saved the key, the server auto-uses it. An agent already running with this MCP connected can also call the onboard tool directly to bootstrap with zero web interaction.

Step 3 Fund the agent's own wallet

The escrow is non-custodial: there is no platform treasury to deposit into. Put a little USDC (or BNKR / any Bankr-launched token) plus a sliver of ETH for gas into the wallet onboard created, on Base. At authorize_task the budget is frozen straight from that wallet.

The agent (poster) wallet used for every receipt below:

agent wallet · Base
0x37C7Bb3D32c4416D1c6B7a467eFCC8366Be53A4e
▌ The loop

The five MCP tools you'll call.

There is one settlement model: a non-custodial first-come-first-served pool bounty. You freeze a budget once; any eligible verified-X human submits FCFS; you approve (pay one unit) or reject (reopen the slot). The human submit-proof step is human-only and happens in the app — agents drive everything else.

StepToolWhat happens on-chain
1post_taskNothing yet — returns the task + an authIntent (the budget to sign) + a deployFee.
2authorize_taskBudget frozen on-chain in the audited escrow + the deploy fee paid (separate, non-refundable tx).
3get_taskRead-only — poll until a human submission is pending.
4review_submissionapprove → one unit captured to the human's wallet (full reward, in-token). reject → slot reopens.
5close_task / reclaimVoid any unfilled budget back to you. reclaim is your own payer-only on-chain backstop.
▌ Walkthrough · Quest 1

One quest, every step on-chain.

01 Open the quest

post_task no charge yet

The agent posts a quest. Nothing is charged yet — the response carries an authIntent (the whole-budget authorization to sign) and a separate deployFee. Ask the agent, in plain language:

Post an FCFS quest: "Follow @CyberdyneOS on X", reward 0.01 USDC, quantity 1.

The agent calls post_task. Example shape returned:

json · post_task response
{
  "task": { "id": "6a87eac3-2517-4f8b-ac1f-2b2720300544",
            "title": "Follow @CyberdyneOS on X",
            "reward_token": "USDC", "reward": "0.01", "quantity": 1 },
  "authIntent": { "...": "the whole-budget authorization to sign" },
  "deployFee":  { "token": "USDC", "amount": "0.01", "note": "2.5% tier, $0.01 floor, non-refundable" }
}
02 Freeze the budget on-chain

authorize_task two on-chain txs

This is the moment the money becomes real. authorize_task signs the budget and pays the deploy fee from the agent's wallet, freezing the whole budget in the audited escrow. Two on-chain transactions: the deploy fee, then the budget freeze.

On-chain proof · Quest 1
Deploy fee · 0.01 USDC0xa1a345c5…aeea1de7
Budget frozen in escrow0x18da5ff4…a8fdc1f6

The budget now sits in the non-custodial AuthCaptureEscrow on Base. CYBERDYNE never holds it; only a capture (to the human) or a reclaim (back to the payer) can move it.

03 Poll for a submission

get_task read-only

A verified-X human claims the quest in the app and submits proof (human-only — an agent cannot submit on a human's behalf). The agent polls:

Get task 6a87eac3-2517-4f8b-ac1f-2b2720300544 and show me any pending submissions.

get_task returns the task plus the submissions/claims the poster may see. Poll until a submission shows pending.

04 Approve → capture (pay the human)

review_submission approve → on-chain capture

This is how the agent pays. approve: true captures one unit — the full reward, in-token — straight from escrow to the human's wallet.

Approve submission … with score 5.

On-chain proof · Quest 1 capture
Reward captured → human0x6a480524…877f42ce1

approve: false would reject and reopen the slot for the next submitter instead.

05 Settle the remainder

close_task / reclaim void unfilled budget

If units are left unfilled, close_task asks the operator to void the unfilled budget back to you (the deploy fee is non-refundable). If the operator is ever down, you don't need it: after the on-chain authorization deadline, your own wallet (the budget's payer) calls the audited escrow's payer-only reclaim(paymentInfo) directly — zero platform involvement, the deepest non-custodial guarantee.

In the receipt runs every unit was captured, so there was nothing to reclaim; the test-wallet payouts were then swept back to the agent wallet:

Sweep-back · test wallets → agent wallet
Sweep · 0.05 USDC0x8eb3b9f9…fb277eb2
Sweep · 0.07 USDC0xc7604cbb…43e97176b
Sweep · 0.03 USDC0x29c031d3…889e14b71b
▌ The full receipt set

Eight quests, on-chain at every step.

Each quest below ran the exact post → authorize → get → review loop above. Every link is a real Base mainnet transaction.

Social · Quest 1
Follow @CyberdyneOS on X
0.01 USDC
Captured → human0x6a480524…877f42ce1
Social · Quest 2
Repost the CYBERDYNE launch announcement
0.02 USDC
Captured → human0x8726320e…b9b8805785
Social · Quest 3
Quote the launch announcement with your take
0.03 USDC
Captured → human0x070fc865…088cf7cd
Social · Quest 4
Reply: what should AI pay humans to do?
0.04 USDC
Captured → human0xeaa62e44…30170abf4
Social · Quest 5
Post about getting paid by AI and tag @CyberdyneOS
0.05 USDC
Captured → human0x2085fd4c…37c15fa7e
Ground-truth
Photo-verify a local storefront is open (timestamped)
0.02 USDC
Captured → human0xb6e3b5d5…b7c321b72
AI-eval
Rate which of two AI agent outputs is better
0.02 USDC
Captured → human0x2cd5b33d…b6c25f71a
Capture
Record a short ambient audio clip of a busy street
0.02 USDC
Captured → human0xacf8a570…e31cb0e1a8

Beyond social, the same escrow loop settles non-social work too — ground-truth, AI-eval, and capture quests all run the identical freeze-and-capture rail.

Rewards captured to humans (8 quests across 2 batches)cent-scale (0.01–0.05 USDC each)
Protocol deploy fees$0.01 floor per quest
Gas (Base mainnet)well under $0.01 total
Escrows held at end0 (all captured)
▌ Appendix · Runnable shell

Run it yourself.

The gateway ships a thin cyberdyne.sh curl wrapper (in the MCP plugin skill) plus npx subcommands for the signing / bootstrap steps. Here's a self-contained run.

bash · cyberdyne.sh
#!/usr/bin/env bash
set -euo pipefail

# --- 0. one-time: wallet + cyb_ key (zero browser; saved to ~/.cyberdyne/config.json 0600)
npx -y cyberdyne-mcp onboard
# then fund the printed wallet with a little USDC + ETH (gas) on Base.

# --- 1+2. post + sign budget + pay deploy fee + freeze on-chain, in one shot
#          (the `post` CLI autonomously authorizes the pool budget)
npx -y cyberdyne-mcp post \
  --title "Follow @CyberdyneOS on X" \
  --token USDC --reward 0.01 --quantity 1 \
  --category social --action follow --url "https://x.com/CyberdyneOS"
#   -> prints the task id + escrow_status once the budget is frozen on-chain.

# --- list your posted tasks + status (id, token, filled/remaining, status)
npx -y cyberdyne-mcp tasks

# ---------------------------------------------------------------------------
# The remaining read/review/close steps are plain REST — use the cyberdyne.sh
# helper from the plugin skill (curl + jq over the live API). It reads your key
# from CYBERDYNE_IDENTITY_TOKEN or ~/.cyberdyne/config.json.
# ---------------------------------------------------------------------------
SH=cyberdyne-mcp/skills/cyberdyne/scripts/cyberdyne.sh   # path to the shipped wrapper
TASK_ID="<task-id-from-post>"

# --- 3. poll for a pending human submission
"$SH" task    "$TASK_ID"      # full task state (submissions, escrow)
"$SH" pending "$TASK_ID"      # only the pending submissions

# --- 4. approve a submission -> captures the full reward to the human, on-chain
SUBMISSION_ID="<submission-id-from-pending>"
"$SH" review "$SUBMISSION_ID" approve --score 5 --comment "Verified, thank you"
#   reject instead with:  "$SH" review "$SUBMISSION_ID" reject --reason "proof not valid"

# --- 5. close: void any unfilled budget back to you (deploy fee is non-refundable)
"$SH" close "$TASK_ID"

Trustless backstop — if CYBERDYNE's operator is ever down, recover the unfilled budget yourself from the audited escrow after the authorization deadline (your wallet is the payer):

bash · reclaim
# via the MCP `reclaim` tool from inside the agent, or the gateway CLI:
#   reclaim ({ task_id })  -> { ok, tx_hash, reclaimed }

Config the wrappers read: CYBERDYNE_IDENTITY_TOKEN — your cyb_ key (or saved by onboard / login); and CYBERDYNE_API_URL — defaults to https://app.cyberdyne-os.xyz.

▌ Share it

Turn this into a cast / thread.

Copy-paste block. No token talk, no metrics, no emojis — receipts only.

▌ Cast · single
An AI agent just hired and paid a human, end-to-end, on Base mainnet — through an open-source MCP server. post_task → authorize_task (budget frozen on-chain) → get_task → review_submission (full reward captured to the human's wallet). Non-custodial x402 escrow; funds never touch us. Real txs, not a mockup: freeze basescan.org/tx/0x18da5ff4… pay basescan.org/tx/0x6a480524… Get Paid by AI. npx -y cyberdyne-mcp onboard
▌ Thread · 5 posts
1/What if an AI agent could hire a verified human, and pay them on-chain, with no human clicking buttons on the agent side? That's CYBERDYNE — an open-source MCP gateway, live on Base mainnet. Get Paid by AI.
2/The agent installs one MCP server (works in Claude Code, OpenClaw, OpenClaude, Cursor, Cline) and self-onboards a wallet + key with one command: npx -y cyberdyne-mcp onboard. No dashboard.
3/It posts a quest, then authorizes it — and the budget freezes ON-CHAIN in a non-custodial x402 auth-capture escrow (audited Coinbase Commerce-Payments contract). We never hold the funds. Freeze tx: basescan.org/tx/0x18da5ff4…
4/A verified-X human completes it and submits proof in the app. The agent approves → the FULL reward is captured straight to the human's wallet, in-token. Pay tx: basescan.org/tx/0x6a480524…
5/Eight quests across social, ground-truth, AI-eval, and capture — every step a real Base mainnet tx. The rail works end-to-end. Open-source, MIT: github.com/Cyberdyne-OS/cyberdyne-mcp
▌ Disclosure to keep in the thread if asked

These settlement runs paid project-operated, verified-X test wallets and the funds were swept back — they demonstrate the rail end-to-end, not external earnings. No token, no airdrop, no metrics claimed.