AkashiDocs

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.xyz

1. 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 1

The 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 wallet

Send 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:

  • status is 200 and body.data holds the release.
  • receipt.paid is true and receipt.transaction is the settlement. Open https://sepolia.basescan.org/tx/<transaction>: a USDC transfer of 0.001 to 0x8164…948D.
  • receipt.via is pocket (relayed through Pocket Network) or direct (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

RecordValue
Servicetool-router on Pocket Beta, 20,000 compute units per relay
Registration txA96AAAB2B2BA81723ABB3C74BF10C7B79A7D55F07992D7F2F365B51D2AFE67F7 (height 711952)
Service ownerpokt16p53au7ctwrtfdwd23pt2tv54nj9f0n8wsj805
Supplier operatorpokt1qnrjr3susgpyh4a4rx8f0x0wd6pqdtptr50ayg
Application stake tx113EFC5118886B6F65EF23B2028F8ECCBAA6C0986BCC0E1E8E0CF5DE85835BBC
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.

On this page