Kēryx®
Testing guide

Try Kēryx in five minutes.

Four ways to hit Kēryx yourself, ordered from easiest to most technical. Every one produces a real onchain USDC transaction on Arc testnet that you can look up on Arcscan afterwards.

01

Ask something in the playground

~30s · Zero setup

Head to /ask. Pick one of the suggested prompts — try “What's the 24h trading volume for BONK on Solana?”

Watch the small chip appear under the response: it shows the tool being called, the price ($0.005), and after a second, a shortened Arcscan tx hash you can click. That's a real USDC settlement. The green pulse pill under the CTAs on the landing page ticks up the moment your call lands.

02

Curl the paid endpoint directly

~60s · Terminal

Anyone with a terminal can hit the raw x402 endpoint. This is what Kēryx looks like to an AI agent with no browser.

First hit — you get a 402:

curl -X POST https://keryxhq.xyz/api/call \
  -H "content-type: application/json" \
  -H "x-keryx-agent: my-terminal" \
  -d '{"toolId":"crypto.trending","args":{"limit":3}}'

Response: HTTP 402 with a PaymentRequirements block listing the exact amount ($0.001 for this tool), the USDC contract address on Arc, and the seller wallet. An agent reads this and signs an EIP-3009 authorization against it, base64-encodes the signed payload, and retries with X-PAYMENT: <signed>. The response then carries the tool result plus a real onchain tx hash.

Don't want to write a signer? Use /ask— Kēryx signs on behalf of its facilitator wallet for you.

03

Drop Kēryx into Claude Code

~120s · One JSON file

Kēryx runs a Model Context Protocol server at https://keryxhq.xyz/api/mcp. Add it to Claude Code's MCP config once and every tool in the registry becomes something Claude can call natively, no per-tool wiring.

Edit ~/.claude/mcp.json:

{
  "mcpServers": {
    "keryx": {
      "type": "http",
      "url": "https://keryxhq.xyz/api/mcp"
    }
  }
}

Restart Claude Code. Try: “use keryx to search for what Circle Arc is” or “use keryx to rug-check this Solana mint: EPjF…Dt1v”. Claude picks the right tool from the registry, calls it, and Kēryx settles the payment onchain in the background. Every call shows up on /live.

04

Publish your own tool

~180s · Arc wallet + testnet USDC

Any HTTP endpoint you can respond to can be listed on Kēryx. For the demo below we'll list a fake tool called weather.today at $0.002 per call. The listing lives in two places: an offchain record on Kēryx that shows up on /registry and an onchain record on KeryxRegistry.sol at 0x7eA3…8bA7 on Arc testnet.

Step A — offchain listing (browser).

  1. Open /publish.
  2. Click Connect wallet. Pick MetaMask (or any injected wallet). Approve.
  3. If your wallet is on the wrong network, a banner says so — click Switch network to jump to Arc testnet.
  4. Fill the form:
    • Tool name: Weather Today
    • Tool id: weather.today
    • Summary: Current weather for a city. Returns temperature, condition, and humidity.
    • Category: Search
    • Price: 0.002
  5. Click Sign and publish. Your wallet pops up asking you to sign a text message (this is EIP-191, free, no gas). Approve.
  6. You're done. Head to /registry and your tool is there under Search.

Step B — onchain listing (terminal, optional). If you want your tool to also show the On Arc badge on /registry, register it directly against the contract. You'll need an Arc-funded wallet (small USDC balance for gas — Arc uses USDC as gas).

cast send 0x7eA36cC743EDF162fd7BF3704BD55c56A1998bA7 \
  "publish(string,uint256,string)" \
  "weather.today" 2000 "https://keryxhq.xyz/api/tools" \
  --rpc-url https://rpc.testnet.arc.network \
  --private-key $YOUR_PRIVATE_KEY

2000 is the price in atomic USDC (6 decimals, so $0.002 = 2000). The publish call is idempotent per id — only the wallet that first publishes an id can update its price, and the contract emits a ToolPublished event you can watch in the receipt.

What just happened

Every step above triggered a real HTTP 402 payment protocol handshake against a real USDC contract on Arc testnet, settled through a Kēryx facilitator wallet that has $116 USDC of runway. The tx hashes you saw on /live are provable, permanent onchain records anyone can verify.

Prefer reading first?  → the whitepaper  ·  the integration docs