{"tools":[{"name":"getBlock","description":"Retrieve a finalized block from the Oakspoke chain. Returns the latest block when blockNumber is omitted.","inputSchema":{"type":"object","properties":{"blockNumber":{"type":"integer","minimum":0,"description":"Block number to retrieve. Omit to fetch the latest block."},"lite":{"type":"boolean","description":"When true, return the lightweight block (no seedBalances). Default false."}}}},{"name":"getBalance","description":"Get the Oakspoke balance for a GeoKey location.","inputSchema":{"type":"object","properties":{"location":{"type":"string","description":"GeoKey location, e.g. \"X:75.332aef674c6_Y:159.44684f14f94\"."},"confirmed":{"type":"boolean","description":"When true, return the confirmed (proven) balance only — excludes pending block transactions. Default false."}},"required":["location"]}},{"name":"getProof","description":"Generate a Merkle proof for the balance at the given location.","inputSchema":{"type":"object","properties":{"location":{"type":"string","description":"GeoKey location to prove."}},"required":["location"]}},{"name":"getStateRoot","description":"Get the current canonical stateRoot from balances.json.","inputSchema":{"type":"object","properties":{}}},{"name":"getParams","description":"Read network governance and core parameters (oakName, transactionFee, rewardInterval, etc.).","inputSchema":{"type":"object","properties":{}}},{"name":"submitTransaction","description":"Submit a signed transaction bundle to the chain.","inputSchema":{"type":"object","properties":{"transaction":{"type":"object","description":"Signed Oakspoke transaction object. Must include sender, recipient, amount, and a valid signature."}},"required":["transaction"]}},{"name":"health","description":"CA health check — returns version, status, and timestamp.","inputSchema":{"type":"object","properties":{}}},{"name":"claimLocation","description":"Generate a fresh, unclaimed Oakspoke GeoKey for a new user. Random hashA/hashB identity bits and random sub-cell offsets are produced with a CSPRNG; cell coordinates are uniformly random within the map dimensions reported by /params unless x and y are supplied.","inputSchema":{"type":"object","properties":{"x":{"type":"integer","minimum":0,"description":"Optional cell X coordinate (0 .. mapWidth-1). Random when omitted."},"y":{"type":"integer","minimum":0,"description":"Optional cell Y coordinate (0 .. mapHeight-1). Random when omitted."}}}},{"name":"pay","description":"Open the Oakspoke send-payment UI as an inline app. Renders an iframe pointing at https://oakspoke.com/#send so the user can compose and submit a transaction without leaving the conversation.","inputSchema":{"type":"object","properties":{}},"_meta":{"openai/outputTemplate":"ui://oakspoke/pay","ui":{"resourceUri":"ui://oakspoke/pay"}}},{"name":"chargeCard","description":"Debit an osdebitcard balance and submit a signed acoorn transaction. Proxies to the chargeDebitCard endpoint at /chargeCard, which performs an atomic DynamoDB debit, builds and signs the tx bundle from the merchant geoKey, and submits it to the CA. Default memo is \"🤖➡️\".","inputSchema":{"type":"object","properties":{"cardID":{"type":"string","description":"Card identifier (partition key on the osdebitcard table)."},"amount":{"type":"number","exclusiveMinimum":0,"description":"Amount to debit from the card (positive number)."},"destination":{"type":"string","description":"Recipient acoorn location (X:_Y:_), optionally AAA: prefixed."},"memo":{"type":"string","description":"Optional emoji memo. Defaults to \"🤖➡️\"."}},"required":["cardID","amount","destination"]}},{"name":"fetch","description":"Fetch a resource by id. Supports \"block:<n>\", \"balance:<location>\", \"proof:<location>\", or a bare numeric block id.","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Resource identifier."}},"required":["id"]}},{"name":"search","description":"Heuristic search over Oakspoke resources. Numeric queries map to blocks; \"X:..._Y:...\" queries map to balances; otherwise returns the latest block.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search query string."}},"required":["query"]}}]}