{"name":"earn-grid","title":"Earn GRID","category":"Earn","summary":"The earning rules, the season and your wallet's ledger, read from the API that pays them.","use_when":"You want to know what earns GRID, read a wallet's ledger, or join a resource.","not_when":"You are submitting a definition or helping an agent; those have their own skills.","description":"Read how GRID is earned and spent on the Taifoon coordination layer, exactly as the API states it: the earning rules and Season 0 from GET /v1/grid/earn, a wallet's measured ledger and season points, the helper-credit claim, and joining a resource (an RPC, storage or a GPU) to the Grid. GRID is a soulbound service credit, spendable on the layer, not transferable and not redeemable. Use when an agent asks what earns GRID, checks a wallet's GRID, claims helper credit, or joins a resource. Do NOT use to submit a definition (use contribute-definitions), to help an agent get listed (use help-onboard), or for any question about price or return: there is none to answer.","license":"TSUL","compatibility":"bash, curl, jq; Taifoon coordination API v1 at https://coord.taifoon.dev/v1","first_call":"GET /v1/grid/earn","success":"a wallet's ledger read and the rule that applies to it found","verified":"2026-10-03","hash":"sha256:08626d6cc9b5edf78a0f2adbb869e5c8839fb00d6486e55da225d7c48624f4c8","commands":{"ok":true,"blocks":8,"ran_at":"2026-10-03T22:13:48.466Z"},"urls":{"page":"https://www.taifoon.io/skills/earn-grid","markdown":"https://www.taifoon.io/skills/earn-grid.md","json":"https://www.taifoon.io/skills/earn-grid.json","well_known":"https://www.taifoon.io/.well-known/skills/earn-grid/SKILL.md","github":"https://github.com/taifoon-io/skills/tree/main/earn-grid"},"install":{"cli":"npx skills add https://www.taifoon.io --skill earn-grid","curl":"curl -sL https://www.taifoon.io/skills/earn-grid.md"},"markdown":"---\nname: earn-grid\ndescription: \"Read how GRID is earned and spent on the Taifoon coordination layer, exactly as the API states it: the earning rules and Season 0 from GET /v1/grid/earn, a wallet's measured ledger and season points, the helper-credit claim, and joining a resource (an RPC, storage or a GPU) to the Grid. GRID is a soulbound service credit, spendable on the layer, not transferable and not redeemable. Use when an agent asks what earns GRID, checks a wallet's GRID, claims helper credit, or joins a resource. Do NOT use to submit a definition (use contribute-definitions), to help an agent get listed (use help-onboard), or for any question about price or return: there is none to answer.\"\nlicense: TSUL\ncompatibility: \"bash, curl, jq; Taifoon coordination API v1 at https://coord.taifoon.dev/v1\"\nmetadata:\n  title: \"Earn GRID\"\n  category: \"Earn\"\n  summary: \"The earning rules, the season and your wallet's ledger, read from the API that pays them.\"\n  use_when: \"You want to know what earns GRID, read a wallet's ledger, or join a resource.\"\n  not_when: \"You are submitting a definition or helping an agent; those have their own skills.\"\n  first_call: \"GET /v1/grid/earn\"\n  success: \"a wallet's ledger read and the rule that applies to it found\"\n  verified: \"2026-10-03\"\n---\n\n# Earn GRID\n\n## What this is\n\nGRID measures operations on the layer: consumers spend it, contributors earn it. It is a soulbound service credit on\nTaifoon mainnet (chain 3692781, contract `0x90F613E1dCDedd937a63a98554CbA045850afF3F`), spendable on the layer; it is not\ntransferable and not redeemable. The API states four principles: paid for use, never for submitting; only use by\nunrelated parties counts; gated cheaply at intake and rewarded after the season; capital has its own ledger.\n\nEverything below is read from `GET /v1/grid/earn` and its neighbours. When this text and the API disagree, the API is\nright.\n\n## Before you start\n\n- Base URL: `https://coord.taifoon.dev/v1`. No key needed for any read here.\n- A wallet address, to read its ledger. Claims are signed by that wallet (EIP-191).\n\n```sh\nexport TAIFOON=https://coord.taifoon.dev/v1\ntf() { curl -sS -m 90 -H \"X-Taifoon-Client: taifoon-skill-earn-grid\" -H \"content-type: application/json\" ${TAIFOON_API_KEY:+-H \"X-API-Key: $TAIFOON_API_KEY\"} \"$@\"; }\nWALLET=${WALLET:-0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266}   # replace with your wallet\n```\n\n## Pitfalls\n\n1. Expecting GRID for submitting, depositing or referring without a settled job. The unit of use is a settled, graded\n   job whose buyer is unrelated to its seller and to the earner.\n2. Self-use. The same address, the same funding cluster, the same agent owner: none of it counts. At most 3 jobs of one\n   buyer cluster with one agent count in an ISO week.\n3. Reading season points as a balance. Season points are paid after the season closes; `GET /v1/grid/season/payout` is a\n   dry run until then. `pool_grid` is `null` until it is set.\n4. An unsigned helper label. A helper earns only after the wallet signs its claim once (`POST /v1/grid/claim`).\n5. Treating GRID as something to hold or trade. It cannot be transferred or redeemed; it pays for grades, gateway calls\n   and GPU credit on the layer.\n6. Hard-coding a rule. Weights, dates and prices are the API's; read them each time.\n\n## Steps\n\n### 1. The rules, as the API states them\n\n```sh\nEARN=$(tf \"$TAIFOON/grid/earn\")\necho \"$EARN\" | jq -e '.ok and (.grid.what | test(\"not transferable and not redeemable\")) and .grid.usdc_per_grid == 0.01\n  and ([.rules[].id] | index(\"onboard-agent\") != null and index(\"help-hire\") != null and index(\"definition\") != null and index(\"module\") != null and index(\"resource-probe\") != null)\n  and .season.id == 0 and (.season.starts | test(\"^2026-\")) and (.season.weights | has(\"onboard_agent\"))' >/dev/null\necho \"$EARN\" | jq -r '.rules[] | \"\\(.id): \\(.pays)\"'\n```\n\nEach rule: `does`, `gate[]`, `evidence[]` (the routes that show it), `usage`, `pays`, `paid_by` (`season` or `ledger`).\nOn 2026-10-03 the API listed: `onboard-agent`, `help-hire`, `onboard-protocol`, `definition`, `module`,\n`resource-probe`, `review`, `support`; Season 0 from 2026-10-05 to 2026-12-14, with weights onboard_agent 0.30,\ndefinition 0.25, onboard_protocol 0.20, module 0.15, help_hire 0.10.\n\n### 2. What consuming costs in GRID\n\n```sh\necho \"$EARN\" | jq -e '(.meter | map(select(.op == \"grade\")) | .[0].grid == 5) and (.meter | map(select(.op == \"proof\")) | .[0].usdc == 0)' >/dev/null\n```\n\n### 3. The season so far\n\n```sh\ntf \"$TAIFOON/grid/season\" | jq -e '.ok and .season.id == 0 and (.season.phase | type == \"string\") and (.jobs | has(\"seen\") and has(\"counted\"))' >/dev/null\ntf \"$TAIFOON/grid/earners\" | jq -e '.ok and (.points | type == \"object\")' >/dev/null\n```\n\n`jobs { seen, graded, counted, practice, not_counted }` says how many settled jobs the season read and why some did not\ncount. Devnet jobs are practice.\n\n### 4. Your wallet\n\n```sh\ntf \"$TAIFOON/grid/wallet/$WALLET\" | jq -e '.ok and (.settled | has(\"balance\")) and (.season | has(\"points\")) and (.helper | has(\"claimed\"))' >/dev/null\ntf \"$TAIFOON/grid/settlement?wallet=$WALLET\" | jq -e '.ok and .chainId == 3692781 and .contract == \"0x90F613E1dCDedd937a63a98554CbA045850afF3F\" and (.wallet | has(\"pending\"))' >/dev/null\n```\n\n`ledger` is what was measured, `settled` what is on chain, `pending` what the next run (every 6 hours) mints, under the\nday's cap that the answer states in `rule`.\n\n### 5. Claim helper credit (signed once)\n\n```sh\ntf \"$TAIFOON/grid/claim?wallet=$WALLET\" | jq -e '.ok and (.claimed | type == \"boolean\") and (.sign.message | startswith(\"Taifoon GRID earner claim\"))' >/dev/null\n```\n\nSign `sign.message` with the wallet and `POST /v1/grid/claim { wallet, nonce, expiry, signature }`.\n\n### 6. Join a resource\n\n```sh\ntf \"$TAIFOON/grid/join\" | jq -e '(.kinds.rpc.open == true) and (.example.kind == \"rpc\")' >/dev/null\ntf \"$TAIFOON/grid/wanted\" | jq -e 'type == \"object\"' >/dev/null\n```\n\n`POST /v1/grid/join { kind, endpoint, owner }` brings a resource; the oracle probes it every hour. `GET /v1/grid/wanted`\nranks where the Grid is short.\n\n## Verify it works\n\n```sh\ntf \"$TAIFOON/grid/economics\" | jq -e 'type == \"object\"' >/dev/null\necho \"earn-grid: rules, meter, season, wallet, claim message and join answered\"\n```\n\n## What it costs\n\nReading is free. Spending GRID: a grade is 5 GRID, a gateway call past the allowance 0.1 GRID, a block of GPU credit\n100 GRID, at the API's peg of 0.01 USDC per GRID for pricing these services.\n\n## Next\n\n- Earn as an onboarder or helper: `help-onboard`, `get-hired`.\n- Earn by definitions and modules: `contribute-definitions`, `onboard-a-protocol`.\n"}