Pricing for agents
Programmatic reads are priced per gated API call through x402. Use this page to estimate traffic cost, inspect which public endpoints stay open for discovery, and find the machine-readable pricing catalog.
SOL = $77.38 (coinbase, cached up to 10 min).
Public endpoints
These endpoints stay reachable without payment regardless of x402 state. They expose discovery data, live pricing, or wallet-side tool discovery that must be available before an agent can decide what to call.
/api/manifest: Endpoint manifest. Full inventory of callable paths and x402 config. Query this first./api/pricing: Pricing catalog. Every fee on this page in machine-readable JSON, with live USD figures./api/owned-mints: Owned-mints lookup. List mints a wallet holds mint or freeze authority of. Not gated because it powers wallet-side tool discovery.
x402 per-call pricing
Every gated API path returns HTTP 402 with a challenge body unless the caller proves a payment in the X-Payment header. The same flat price applies to every endpoint in x402.gatedPaths on the manifest, including the MCP endpoint.
| Per call | 0.00015 SOL | $0.0116 | 150000 lamports |
Volume economics
Monthly x402 cost at four traffic levels, using 30-day months and the live SOL/USD figure above. These numbers are for gated API calls only; transaction-producing endpoints can also include the tool's normal on-chain operation fee.
| Calls / day | SOL / month | USD / month |
|---|---|---|
| 100 | 0.450 | $34.82 |
| 1,000 | 4.500 | $348.21 |
| 10,000 | 45.000 | $3482.10 |
| 100,000 | 450.000 | $34821.00 |
MCP server
The Streamable HTTP MCP endpoint at /api/mcp is x402-gated like any other read. Each MCP call counts as one x402 call.
Transaction-producing calls
The build endpoints (every tool that returns an unsigned transaction) also embed a flat lamport fee inside the transaction itself. That fee is separate from the x402 per-call price and applies once the wallet submits the signed tx. See user-facing pricing for the per-op breakdown.
Frequently asked
- How does x402 actually work?
- First call to a gated path returns HTTP 402 with a challenge body (recipient address, amount, optional nonce). The agent sends a Solana SystemProgram.transfer to the recipient, waits for confirmation, then retries the original request with
X-Payment: <base58 signature>. The server verifies the on-chain payment matches the challenge, records the signature to prevent replay, and proxies the original call. End to end: two transactions plus the data call. - When is per-call pricing a good fit?
- It is best for agents that need simple metered access without a custom commercial agreement. Each gated call carries the same flat x402 price, and the monthly table above lets you budget from an expected calls-per-day number.
- How do I integrate via MCP?
- Point your MCP client at
/api/mcp(Streamable HTTP transport, both POST and GET). The endpoint is x402-gated; send a valid x402 payment in theX-Paymentheader lets the MCP traffic flow. Each MCP request counts as one gated call. See /agents for the full client config. - Are there rate limits beyond x402?
- Yes, a politeness per-IP limiter sits in front of every endpoint. It's much higher than typical agent traffic for normal paid callers, but it exists to stop accidental loops. The exact value is operator-set; check the response's rate-limit header if you hit one. The real budget control is the per-upstream rate budget (Helius, Jupiter, …); when those are exhausted the gated endpoint returns a 503 degraded status, not a 429.
- How do replay-prevention nonces work?
- When
SOLKNIFE_X402_REQUIRE_NONCE=true, the challenge body includes a server-issued nonce, and the payment transaction MUST carry an SPL Memo instruction with that nonce as its data. The server HMAC-verifies the nonce and enforces a TTL (default 10 min). Makes replay impossible across process restarts past the TTL window. Phase 1 agents that pay without a memo continue to work when this flag is off (the default).
Machine-readable
Both pages render from the same source:
/api/pricing: every fee, with live USD figures/api/manifest: endpoint inventory + x402 config
Build pricing decisions from the JSON; treat this page as the rendered view of it.