Solrouter
Use Solrouter

Pricing

Monthly plans paid in USDC on Solana: Pro $9 for 2,000 calls, Builder $49 for 12,500 calls, Scale $99 for 30,000 calls. Card payments go through MoonPay.

Solrouter is sold as a monthly allowance of private calls. You pick a plan, pay in USDC on Solana, and each sealed request to a private model uses one call. There is no per-token math. The same allowance covers the web chat, the SDK, and the MCP server.

Plans

Every plan gets the same models and the same enclave. Bigger plans get more calls for each dollar.

PlanPrice per 30 daysPrivate callsPer 1,000 callsBuilt for
Pro$92,000$4.50One person asking privately every day
Builder$4912,500$3.92Coding agents and small tools running all day
Scale$9930,000$3.30Products and teams sending real volume

Every plan includes:

  • All three private models: GPT-OSS 20B, Qwen 3.8 27B, and Qwen3 Coder 30B. See Models.
  • The MCP server and the TypeScript SDK. See Integrations.
  • A Solana receipt for each sealed call. See On-chain proof.

Try it first

WhoFree allowance
Signed in to the web chat5 free messages
Signed in to the mobile app with a Solana wallet10 free messages
Guest, not signed in5 sealed messages a day per network address

The free messages belong to a web or mobile sign-in. A call made with an API key does not use them: it goes straight to your plan or your USDC balance.

Sign in at solrouter.com with an email address or a Solana wallet. There is no KYC. If you sign in with email and have no wallet, one is made for you.

How you pay

  • USDC on Solana. A plan is an on-chain subscription that renews every 30 days. You approve a bounded USDC amount for the plan, not an unlimited one, and you can cancel.
  • Card. No crypto? Pay by card through MoonPay. MoonPay buys the USDC and sends it to your Solana wallet.

What counts as a call

One request to a private model is one call, whatever its length. Each call is capped at 8K tokens of context and 4K tokens of output. A call that fails on our side, for example while the enclave is down, goes back into your allowance.

One plan at a time

An account holds one active plan. Subscribing to a second plan while one is active returns 409 already_subscribed. To change plans, cancel the current one first. It keeps working until the end of the period you paid for.

How a sealed call is paid

Every sealed call to POST /tee/process costs one unit. That is the route the web chat, the SDK's client.chat(), and the MCP server's encrypted_chat use. The backend takes the first source that covers the call:

OrderSourceusage.source
1A call from your plan or your staked $ROUTER allowanceplan
2A free message, for web and mobile sign-ins onlyfree
3Your USDC balance, $0.02 per callbalance
noneNothing covers it: 402 insufficient_fundsnone
  • Guests. A request with no Authorization header is a guest call. Guests get 5 a day per network address, shared with the plaintext guest route. After that the reply is 429 guest_limit and usage.source is guest.
  • Partner keys. Keys issued to first-party Solrouter products are not metered. usage.source is partner.
  • Every reply carries a usage object. usage.source names what paid, and usage.calls_remaining shows what is left when the source is a plan, the free trial, or the guest allowance.
  • Failures are free. If the enclave call fails, the plan call, free message, or guest message goes back. A USDC balance is charged only after the enclave answers.
  • Billing outage. If billing cannot be checked and nothing else covers the call, the reply is 503 billing_unavailable, not a top-up prompt.

Agents without an account: x402

An agent that has no API key and no plan can pay for each request with x402, settled in USDC on Solana mainnet. Every route below is charged its price on each call, including the per-wallet routes. With an API key, the same price is debited from the account's USDC balance instead. These prices come from ROUTE_PRICES in the backend, the same table that feeds the live manifest at /.well-known/x402.

RouteUSDC per call
POST /api/v1/x402/chat/completions (sealed inference)$0.02
GET /agents/v1/quote$0.001
POST /agents/v1/swaps/oneshot$0.10
POST /agents/v1/wallets$0.05
POST /agents/v1/wallets/:id/fund-intent$0.001
POST /agents/v1/wallets/:id/swap$0.05
POST /agents/v1/wallets/:id/encrypt$0.02
POST /agents/v1/wallets/:id/shield$0.05
POST /agents/v1/wallets/:id/withdraw$0.05
GET /agents/v1/wallets/:id/balance$0.005

A plan covers inference only. Swap and wallet routes always charge their price, so a plan's calls cannot be spent on swaps. A call to a priced route without payment or balance gets a 402 challenge. See Agent Privacy API.

Next

On this page