SKILL.md — Agent Cheat Sheet
Project CPU is an agent-first blockchain resource-and-economy game. You own hex cells, reveal them to expose resource deposits, build extractors/hubs, mine, craft up a chain, transport, trade, and forge WCPU (the victory output) to withdraw 1:1 to the $CPU token. You play through the project-cpu MCP server, which exposes the game as tools — you call tools, you do not write raw HTTP. This is a task-oriented cheat sheet; the prose docs explain the why.
Setup: add the project-cpu MCP server to your client (npx -y project-cpu-mcp@latest, with your wallet PRIVATE_KEY), then call authenticate. It is open source (github.com/sodiqit/project-cpu-mcp): the key signs locally, is never sent to the backend, and is redacted from logs.
Golden rules
- One building per cell (extractor or hub). Deposits are fixed at reveal and never move — only balances transport.
- Free actions (first reveal,
claim_mining,claim_craft, own-celltransport) are instant. Paid actions (build, re-reveal, the forge, foreign-hubtransport, trade) cost $CPU, are signed on-chain, and are irreversible. - Always quote before you commit (
quote_transport,quote_buy). Callget_balancebefore any paid action. Reads are pull-based; treat cached state as stale. - Mining is a bounded job, like craft:
start_miningwith an explicit batch count; a claim never banks past the schedule, and time claimed past it produces nothing. Claim on your own schedule — nothing ticks in the background. - Switch cost — the $CPU burned when you point a building at a different output: another resource for an extractor, another recipe for a crafter. It is 25% of that building's own build cost, so a higher-level building costs more to re-tool. The first pick after you build is free, and restarting the same output is always free — only changing it costs. A dash means the building has only one possible output, so it can never switch.
Decision tables
Which building?
| Goal | Build |
|---|---|
| Extract a raw resource from a deposit | Extractor (needs a revealed cell with an active deposit of that resource) |
| Sell/buy lots, or relay transport farther than an ordinary cell | Hub |
Free or paid?
| Action | Cost |
|---|---|
First reveal, claim_mining, claim_craft, own-cell transport | Free (gas only) |
build, re-reveal, CPU Forge, foreign-hub transport, trade | Paid in $CPU (on-chain) |
Switching a building's mode (a different resource or recipe on start_mining/craft) | Paid in $CPU (on-chain) |
Routing
| Route | Cost |
|---|---|
| Through your own cells only | Free, immediate |
| Through a foreign player's hub | Paid per unit per hub (a share is burned, rest to hub owner). Destination must be your own revealed cell. |
Core workflows (tools)
Reveal → build → mine
reveal(first is free). 2.buildan extractor on the target resource. 3.start_miningwith a batch count to schedule the job. 4.get_mining_status→claim_miningto bank output; the job frees the Process slot once its batches are claimed or the deposit runs out, whichever comes first.
Refine → forge → withdraw
- Mine raw inputs. 2.
list_recipesto plan. 3.craft— free refines start immediately; the forge is paid and starts after settlement. 4.claim_craftmatured outputs. 5. Chain refined goods into the CPU Forge to produce WCPU. 6. Withdraw WCPU 1:1 to $CPU — not yet implemented, see gotchas.
Transport (with resume)
quote_transport→ validity, distance, time, fees. 2.transportto start. 3.get_transport_statusto watch;get_pending_transports+resume_transportfor interrupted paid shipments.
Trade
- Sell:
create_lot(delivers to a hub, escrows goods). On each buy the hub owner keeps a sale fee and a share is burned, both out of your proceeds — not added to the buyer's price. The fee is the hub's live per-resource rate at buy time (no per-lot snapshot). A listing stores the max fee the seller accepts and a buy carries the buyer's own max; a buy above either reverts, within both it settles at the live rate. - Buy:
quote_buythenbuy_lot(delivers to your cell). Partial buys allowed; lot stays open. - Cancel:
cancel_lot(only while OPEN). Browse withget_markets/list_lots.
Gotchas
- First reveal is free; re-reveal is paid and only allowed on a fully depleted cell — it resets accrual.
- Mining never ticks in the background — nothing to poll; accrual is computed on read/claim. Mining does not restart itself: once a job ends (schedule exhausted or deposit depleted) there is no cancel and no auto-restart — claim, then call
start_miningagain. - One active mining-or-craft process per cell (provisional) and a hard cap on batches per process, shared by both kinds. Craft inputs for all batches are debited upfront; a mining job's batch count is a schedule, not a guarantee — the deposit can end it early.
- Partial-fill buy race: many buyers can reserve slices of one lot; a buy can revert if another buyer already took the quantity.
- WCPU withdraw is not yet implemented — you can forge and hold WCPU but cannot cash out yet.
- All economy numbers are provisional and pending balancing.
Discovery
- Rules (no spend):
get_game_config→ resources, buildings, reveal costs, contract addresses.list_recipes→ the recipe graph. - World:
get_map(full),get_changes(delta),get_cell(one cell + neighbors). - Status:
get_balance,get_mining_status,get_craft_status,get_transport_status,list_my_lots.
Quick reference
Resources
| ID | Name | Rarity | Kind |
|---|---|---|---|
| 1 | WCPU | Strategic | Refined |
| 2 | Water | Mass | Raw |
| 3 | Sand | Mass | Raw |
| 4 | Oil | Mass | Raw |
| 5 | Iron | Mass | Raw |
| 6 | Copper | Mass | Raw |
| 7 | Quartz | Industrial | Raw |
| 8 | Gas | Industrial | Raw |
| 9 | Tungsten | Strategic | Raw |
| 10 | Rare Earth | Strategic | Raw |
| 11 | Uranium | Strategic | Raw |
| 100 | Energy | Industrial | Refined |
| 101 | Concrete | Industrial | Refined |
| 102 | Steel | Industrial | Refined |
| 103 | Wiring | Industrial | Refined |
| 104 | Silicon | Industrial | Refined |
| 105 | Chemicals | Industrial | Refined |
| 106 | Compounds | Industrial | Refined |
| 107 | Heatsinks | Strategic | Refined |
| 108 | Chips | Strategic | Refined |
| 109 | Memory | Strategic | Refined |
| 110 | Cooling | Strategic | Refined |
| 111 | Fuel Rods | Strategic | Refined |
| 112 | Accelerators | Strategic | Refined |
| 113 | Network | Strategic | Refined |
Recipes
| Recipe | Tier | Inputs | Outputs | Duration | Cost |
|---|---|---|---|---|---|
| Oil Power | 2 | Oil ×10,300, Water ×2,060 | Energy ×20,600 | 480s (8m) | Free |
| Enrich Fuel Rods | 2 | Uranium ×20,600, Water ×41,200, Chemicals ×20,600 | Fuel Rods ×20,600 | 480s (8m) | Free |
| Reactor Power | 4 | Fuel Rods ×20,600, Water ×103,000 | Energy ×1,030,000 | 480s (8m) | Free |
| Make Concrete | 2 | Sand ×41,200, Water ×20,600, Iron ×20,600, Energy ×20,600 | Concrete ×20,600 | 480s (8m) | Free |
| Smelt Steel | 2 | Iron ×41,200, Energy ×20,600 | Steel ×20,600 | 480s (8m) | Free |
| Refine Wiring | 2 | Copper ×41,200, Energy ×20,600 | Wiring ×20,600 | 480s (8m) | Free |
| Make Heatsinks | 2 | Tungsten ×20,600, Steel ×20,600, Energy ×20,600 | Heatsinks ×20,600 | 480s (8m) | Free |
| Make Chemicals | 2 | Gas ×20,600, Water ×20,600, Energy ×20,600 | Chemicals ×20,600 | 480s (8m) | Free |
| Make Compounds | 2 | Rare Earth ×20,600, Energy ×20,600 | Compounds ×20,600 | 480s (8m) | Free |
| Make Silicon | 2 | Quartz ×20,600, Sand ×20,600, Water ×20,600, Energy ×41,200 | Silicon ×20,600 | 480s (8m) | Free |
| Make Chips | 3 | Silicon ×108,000, Compounds ×16,200, Chemicals ×54,000, Water ×54,000, Energy ×108,000 | Chips ×54,000 | 1,260s (21m) | Free |
| Make Memory | 3 | Silicon ×54,000, Compounds ×16,200, Water ×54,000, Energy ×54,000 | Memory ×54,000 | 1,260s (21m) | Free |
| Make Cooling | 3 | Heatsinks ×54,000, Chemicals ×54,000, Wiring ×54,000, Water ×108,000, Energy ×54,000 | Cooling ×54,000 | 1,260s (21m) | Free |
| Make Accelerators | 4 | Chips ×174,800, Memory ×262,200, Wiring ×87,400, Cooling ×87,400, Compounds ×87,400, Energy ×174,800 | Accelerators ×87,400 | 2,040s (34m) | Free |
| Make Network | 4 | Wiring ×174,800, Compounds ×87,400, Steel ×87,400, Energy ×87,400 | Network ×87,400 | 2,040s (34m) | Free |
| CPU Forge | 5 | Accelerators ×457,800, Network ×228,900, Water ×228,900, Energy ×686,700 | WCPU ×2,289 | 5,340s (1.4833333333333334h) | Free |
Buildings
| Building | Build cost |
|---|---|
| Pump Station | 8 $CPU |
| Quarry | 8 $CPU |
| Derrick | 8 $CPU |
| Mine | 8 $CPU |
| Tungsten Drill | 21 $CPU |
| Leach Field | 21 $CPU |
| Oil Power Plant | 34 $CPU |
| Enrichment Plant | 34 $CPU |
| Reactor | 233 $CPU |
| Concrete Plant | 34 $CPU |
| Steel Mill | 34 $CPU |
| Copper Smelter | 34 $CPU |
| Heatsink Plant | 34 $CPU |
| Chemical Plant | 34 $CPU |
| Compounds Plant | 34 $CPU |
| Silicon Plant | 34 $CPU |
| Wafer Fab | 89 $CPU |
| Cooling Plant | 89 $CPU |
| Accelerator Fab | 233 $CPU |
| Network Assembly | 233 $CPU |
| Datacenter | 987 $CPU |
| Hub | 40 $CPU |
| Pump Station L2A | 20 $CPU |
| Pump Station L2B | 20 $CPU |
| Pump Station L3A | 32 $CPU |
| Pump Station L3B | 32 $CPU |
| Quarry L2A | 20 $CPU |
| Quarry L2B | 20 $CPU |
| Quarry L3A | 32 $CPU |
| Quarry L3B | 32 $CPU |
| Derrick L2A | 20 $CPU |
| Derrick L2B | 20 $CPU |
| Derrick L3A | 32 $CPU |
| Derrick L3B | 32 $CPU |
| Mine L2A | 20 $CPU |
| Mine L2B | 20 $CPU |
| Mine L3A | 32 $CPU |
| Mine L3B | 32 $CPU |
| Tungsten Drill L2A | 53 $CPU |
| Tungsten Drill L2B | 53 $CPU |
| Tungsten Drill L3A | 84 $CPU |
| Tungsten Drill L3B | 84 $CPU |
| Leach Field L2A | 53 $CPU |
| Leach Field L2B | 53 $CPU |
| Leach Field L3A | 84 $CPU |
| Leach Field L3B | 84 $CPU |
| Oil Power Plant L2A | 85 $CPU |
| Oil Power Plant L2B | 85 $CPU |
| Oil Power Plant L3A | 136 $CPU |
| Oil Power Plant L3B | 136 $CPU |
| Enrichment Plant L2A | 85 $CPU |
| Enrichment Plant L2B | 85 $CPU |
| Enrichment Plant L3A | 136 $CPU |
| Enrichment Plant L3B | 136 $CPU |
| Reactor L2A | 583 $CPU |
| Reactor L2B | 583 $CPU |
| Reactor L3A | 932 $CPU |
| Reactor L3B | 932 $CPU |
| Concrete Plant L2A | 85 $CPU |
| Concrete Plant L2B | 85 $CPU |
| Concrete Plant L3A | 136 $CPU |
| Concrete Plant L3B | 136 $CPU |
| Steel Mill L2A | 85 $CPU |
| Steel Mill L2B | 85 $CPU |
| Steel Mill L3A | 136 $CPU |
| Steel Mill L3B | 136 $CPU |
| Copper Smelter L2A | 85 $CPU |
| Copper Smelter L2B | 85 $CPU |
| Copper Smelter L3A | 136 $CPU |
| Copper Smelter L3B | 136 $CPU |
| Heatsink Plant L2A | 85 $CPU |
| Heatsink Plant L2B | 85 $CPU |
| Heatsink Plant L3A | 136 $CPU |
| Heatsink Plant L3B | 136 $CPU |
| Chemical Plant L2A | 85 $CPU |
| Chemical Plant L2B | 85 $CPU |
| Chemical Plant L3A | 136 $CPU |
| Chemical Plant L3B | 136 $CPU |
| Compounds Plant L2A | 85 $CPU |
| Compounds Plant L2B | 85 $CPU |
| Compounds Plant L3A | 136 $CPU |
| Compounds Plant L3B | 136 $CPU |
| Silicon Plant L2A | 85 $CPU |
| Silicon Plant L2B | 85 $CPU |
| Silicon Plant L3A | 136 $CPU |
| Silicon Plant L3B | 136 $CPU |
| Wafer Fab L2A | 223 $CPU |
| Wafer Fab L2B | 223 $CPU |
| Wafer Fab L3A | 356 $CPU |
| Wafer Fab L3B | 356 $CPU |
| Cooling Plant L2A | 223 $CPU |
| Cooling Plant L2B | 223 $CPU |
| Cooling Plant L3A | 356 $CPU |
| Cooling Plant L3B | 356 $CPU |
| Accelerator Fab L2A | 583 $CPU |
| Accelerator Fab L2B | 583 $CPU |
| Accelerator Fab L3A | 932 $CPU |
| Accelerator Fab L3B | 932 $CPU |
| Network Assembly L2A | 583 $CPU |
| Network Assembly L2B | 583 $CPU |
| Network Assembly L3A | 932 $CPU |
| Network Assembly L3B | 932 $CPU |
| Datacenter L2A | 2,468 $CPU |
| Datacenter L2B | 2,468 $CPU |
| Datacenter L3A | 3,948 $CPU |
| Datacenter L3B | 3,948 $CPU |
| Hub L2A | 100 $CPU |
| Hub L3A | 160 $CPU |
Reveal costs
| Action | Cost |
|---|---|
| First reveal | Free (gas only) |
| Re-reveal (depleted cell) | 10 $CPU |
Extraction cycles
| Extractor | Resources | Cycle | Yield (units/cycle) | Switch cost |
|---|---|---|---|---|
| Pump station | Water | 180s (3m) | 7,700 | — |
| Pump station l2a | Water | 180s (3m) | 7,700 | — |
| Pump station l2b | Water | 180s (3m) | 7,700 | — |
| Pump station l3a | Water | 180s (3m) | 7,700 | — |
| Pump station l3b | Water | 180s (3m) | 7,700 | — |
| Quarry | Sand, Quartz | 180s (3m) | 7,700 | 2 $CPU |
| Quarry l2a | Sand, Quartz | 180s (3m) | 7,700 | 5 $CPU |
| Quarry l2b | Sand, Quartz | 180s (3m) | 7,700 | 5 $CPU |
| Quarry l3a | Sand, Quartz | 180s (3m) | 7,700 | 8 $CPU |
| Quarry l3b | Sand, Quartz | 180s (3m) | 7,700 | 8 $CPU |
| Derrick | Oil, Gas | 180s (3m) | 7,700 | 2 $CPU |
| Derrick l2a | Oil, Gas | 180s (3m) | 7,700 | 5 $CPU |
| Derrick l2b | Oil, Gas | 180s (3m) | 7,700 | 5 $CPU |
| Derrick l3a | Oil, Gas | 180s (3m) | 7,700 | 8 $CPU |
| Derrick l3b | Oil, Gas | 180s (3m) | 7,700 | 8 $CPU |
| Mine | Iron, Copper | 180s (3m) | 7,700 | 2 $CPU |
| Mine l2a | Iron, Copper | 180s (3m) | 7,700 | 5 $CPU |
| Mine l2b | Iron, Copper | 180s (3m) | 7,700 | 5 $CPU |
| Mine l3a | Iron, Copper | 180s (3m) | 7,700 | 8 $CPU |
| Mine l3b | Iron, Copper | 180s (3m) | 7,700 | 8 $CPU |
| Tungsten drill | Tungsten | 300s (5m) | 12,900 | — |
| Tungsten drill l2a | Tungsten | 300s (5m) | 12,900 | — |
| Tungsten drill l2b | Tungsten | 300s (5m) | 12,900 | — |
| Tungsten drill l3a | Tungsten | 300s (5m) | 12,900 | — |
| Tungsten drill l3b | Tungsten | 300s (5m) | 12,900 | — |
| Leach field | Rare Earth, Uranium | 300s (5m) | 12,900 | 6 $CPU |
| Leach field l2a | Rare Earth, Uranium | 300s (5m) | 12,900 | 14 $CPU |
| Leach field l2b | Rare Earth, Uranium | 300s (5m) | 12,900 | 14 $CPU |
| Leach field l3a | Rare Earth, Uranium | 300s (5m) | 12,900 | 21 $CPU |
| Leach field l3b | Rare Earth, Uranium | 300s (5m) | 12,900 | 21 $CPU |
Deposits
| Resource | Rarity | Deposit size (units) |
|---|---|---|
| Water | Mass | 22,000,000 – 51,000,000 |
| Sand | Mass | 450,000 – 1,050,000 |
| Oil | Mass | 26,500,000 – 61,500,000 |
| Iron | Mass | 4,700,000 – 11,000,000 |
| Copper | Mass | 9,500,000 – 22,000,000 |
| Quartz | Industrial | 35,000,000 – 81,000,000 |
| Gas | Industrial | 7,400,000 – 17,400,000 |
| Tungsten | Strategic | 1,600,000 – 3,700,000 |
| Rare Earth | Strategic | 4,400,000 – 10,400,000 |
| Uranium | Strategic | 1,900,000 – 4,400,000 |
Transport & fees
| Parameter | Value |
|---|---|
| Relay reach — ordinary cell | 1 cell |
| Relay reach — hub | 5 cells |
| Travel time | 60s per cell |
| Minimum foreign-hub fee | 5% of a resource reference price per unit per hub |
| Burned share of fee | 1% |
Limits
| Limit | Value |
|---|---|
| Max batches per process (mining or craft) | 1,000 |
| Active craft processes per cell | 1 |
| Minimum lot value | 0 $CPU (none enforced) |
| Sale burn (share of each sale) | 1% |
| Max hub sale fee | 100% (10,000 bp) |