For judges
Test Akashi end to end in about ten minutes. The free routes with curl, the 402, a paid run with the CLI, a run that is not charged, the agent chat, and the on-chain records.
Everything below runs against the public gateway. Steps 1 and 2 need only curl (and jq to read the output). Step 3 needs Node.js 20 or later and test USDC.
API=https://api.useakashi.xyz1. The free routes
curl -s $API/v1/version
curl -s $API/v1/health
curl -s $API/v1/catalog | jq '{hash, providers: (.providers | length), tools: (.endpoints | length)}'/v1/version names the service (tool-router), the catalog hash, the payTo address and whether runs are relayed ("relay": "pocket") or not ("relay": "direct").
Find a tool and read its contract:
curl -s -X POST $API/v1/discover -H 'content-type: application/json' \
-d '{"query": "latest release of a github repo", "limit": 3}' \
| jq '.candidates[] | {id, price: .price.usd, health: .health.status}'
curl -s -X POST $API/v1/inspect -H 'content-type: application/json' \
-d '{"id": "github/latest-release"}' | jq '{id, price, example, fields: (.input.properties | keys)}'2. The 402
Call a tool without paying:
curl -si -X POST $API/v1/run/github/latest-release \
-H 'content-type: application/json' -d '{"repo": "astral-sh/uv"}' | head -n 1The status is 402. Decode the price from the header:
curl -s -D - -o /dev/null -X POST $API/v1/run/github/latest-release \
-H 'content-type: application/json' -d '{"repo": "astral-sh/uv"}' \
| grep -i '^payment-required:' | cut -d' ' -f2 | tr -d '\r' | base64 -d | jq '.accepts[0]'Expect "scheme": "exact", "network": "eip155:84532", "amount": "1000" ($0.001), the USDC address 0x036CbD53842c5426634e7929541eC2318f3dCF7e and "payTo": "0x8164dabAfc824322221654ED421715FdaA66948D".
3. A paid run with the CLI
curl -fsSLO https://useakashi.xyz/akashi.mjs
export AKASHI_PRIVATE_KEY=0x$(node -e "console.log(require('crypto').randomBytes(32).toString('hex'))")
node akashi.mjs walletSend test USDC on Base Sepolia to the printed address from faucet.circle.com. No ETH is needed. Then:
node akashi.mjs run github/latest-release --input '{"repo": "astral-sh/uv"}'Check the output:
statusis200andbody.dataholds the release.receipt.paidistrueandreceipt.transactionis the settlement. Openhttps://sepolia.basescan.org/tx/<transaction>: a USDC transfer of 0.001 to0x8164…948D.receipt.viaispocket(relayed through Pocket Network) ordirect(the gateway's fallback).
4. Runs that are not charged
A lookup that finds nothing:
node akashi.mjs run wikipedia/summary --input '{"title": "Qzxv Nonexistent Article Akashi"}'status is 404, body.found is false and receipt.paid is false. An input with a typo:
node akashi.mjs run wikipedia/summary --input '{"titel": "Alan Turing"}'status is 422 with "code": "invalid_input", and receipt.paid is false. The typo is caught by the free input check before any payment is asked for, so nothing is signed. The lookup that found nothing was signed, and the gateway never settled it.
5. The agent chat
Open https://useakashi.xyz/agent and ask "Find three recent papers on detecting hallucinations in RAG systems". Use the demo credit, or connect a Base Sepolia wallet to pay yourself. Each tool call shows in the conversation.
6. On-chain records
| Record | Value |
|---|---|
| Service | tool-router on Pocket Beta, 20,000 compute units per relay |
| Registration tx | A96AAAB2B2BA81723ABB3C74BF10C7B79A7D55F07992D7F2F365B51D2AFE67F7 (height 711952) |
| Service owner | pokt16p53au7ctwrtfdwd23pt2tv54nj9f0n8wsj805 |
| Supplier operator | pokt1qnrjr3susgpyh4a4rx8f0x0wd6pqdtptr50ayg |
| Application stake tx | 113EFC5118886B6F65EF23B2028F8ECCBAA6C0986BCC0E1E8E0CF5DE85835BBC |
| x402 pay-to (Base Sepolia) | 0x8164dabAfc824322221654ED421715FdaA66948D |
| Supplier stake tx | E8997D51009D84EE42FFB9B69F0905C55AD4762ABD02F60645634784B97D4915 (60,000 POKT, active from height 712501) |
| First x402-paid run relayed over Pocket | 0xb544a3a445ed90c0a4d23794c63f6524723ea986628f5abac15b286c63c0a32b (0.001 USDC, wikipedia/summary) |
| Relay claim (MsgCreateClaim) | AC215AB4282193BDE42DD2EA99E419C0E489F17594371D64988A89F3F9A3E244 (height 712535) |
| Proof (MsgSubmitProof) | 6729C253844DF7CF7FEF9BDBD169F09D517067F2C09BF945D7659A4703E06560 (height 712544) |
The first claims settled on 2026-10-07: 1 relay (session ending 712520), then 12 and 5 relays in the next two sessions, 800 uPOKT per relay.
7. The Service Audit
Pocket's acceptance check runs rules A1 to A9 against the live network: registration, the card, the supplier, the endpoint's TLS, a settled claim, the card's probes and the price. Run it for tool-router, or:
curl -s 'https://mcp.pocketmcp.network/api/audit?network=beta&ids=tool-router&operator=pokt1qnrjr3susgpyh4a4rx8f0x0wd6pqdtptr50ayg' \
| jq '.services[0] | {verdict, rules}'On 2026-10-07 it returned PASS on all nine rules with no findings.
For how the pieces fit, see How it runs on Pocket.
How it runs on Pocket
Akashi is one registered Pocket Network service. A paid run travels as a real Pocket relay, from Akashi's staked application to Akashi's supplier, and the claims and proofs settle on Pocket Beta.
CLI overview
akashi.mjs is one file that discovers, inspects and runs Akashi tools, and serves them to AI agents as a local MCP server.