# Docs - [Introduction](/docs): Solrouter is a private AI layer for Solana. Your prompt is encrypted on your device, and the Solrouter backend never sees it in plaintext. - [Use cases](/docs/use-cases): What people, developers, agents, traders, and teams do with Solrouter today, and what is still on the way. - [Verify an encryption proof](/docs/verify): Paste the lock link from a private chat reply and watch the check pass in your browser. Then compare the live enclave key with the signed hardware note. - Use Solrouter - [Chat App](/docs/use/chat-app): Solrouter Chat at solrouter.com/chat is a wallet-based AI chat with an encryption toggle, file attachments, and a RAG knowledge base. No email required. - [What is private here](/docs/use/what-is-private): Who can read your prompt, your files, and your history, and what Solrouter keeps on its servers. - [Pricing](/docs/use/pricing): Solrouter is metered per API call. Prepay in USDC or $ROUTER from your Solana wallet. No subscription, no credit card, no email required. - Build on Solrouter - [Quickstart](/docs/build/quickstart): Get an API key with your Solana wallet, install @solrouter/sdk, and send your first encrypted request in a few lines of TypeScript. - [Privacy SDK](/docs/build/privacy-sdk): Add encrypted AI calls to any app. Install @solrouter/sdk, pass your API key, and call client.chat(). The SDK encrypts the prompt on your machine. - [MCP Server](/docs/build/mcp-server): Use Solrouter's encrypted chat and Agent Privacy API tools from Claude Desktop or Cursor with @solrouter/mcp-server. Some tool calls leave your machine in plaintext. - [Agent Privacy API](/docs/build/agent-privacy-api): The Agent Privacy API (/agents/v1) gives AI agents private token swaps on Solana in two modes, plus pay-per-call encrypted inference over x402. - [Agent Tools SDK](/docs/build/agent-tools-sdk): Typed tools for the Solrouter Agent Privacy API with a Vercel AI SDK adapter. The package is not on npm yet. Use the HTTP API or the MCP tools today. - [Get an API key](/docs/build/api-key): Get an API key by connecting a Solana wallet at solrouter.com/sdk. No email, no KYC. Send the key as a bearer token, or pay per call with x402. - How it works - [Architecture](/docs/how-it-works): Every part of Solrouter on one interactive map: what each part holds, what it can see, and where the code lives. - [What is a TEE?](/docs/how-it-works/what-is-a-tee): A TEE is a sealed part of a computer that the cloud operator cannot look into, and this page explains what that means for your prompt. - [The TEE request flow](/docs/how-it-works/request-flow): What happens to one encrypted request, hop by hop, with the exact payload at each step. - [Encryption](/docs/how-it-works/encryption): Solrouter encrypts prompts on your device with Arcium RescueCipher and X25519 key exchange. Only an Intel TDX enclave can decrypt them. Solrouter's backend never sees plaintext. - [Attestation](/docs/how-it-works/attestation): Fetch the Intel-signed TDX quote from the Solrouter enclave, check that it binds the key you encrypt to, and look up the on-chain receipt for each private inference. - [On-chain proof](/docs/how-it-works/proof): Each private inference writes a receipt to Solana, signed inside the enclave. This page explains what the receipt stores and why the backend cannot forge it. - [Agent reasoning](/docs/how-it-works/agent-reasoning): The three ways a request runs through POST /agent, the guided-reasoning path, and the skill graph that shapes the answer. - [Models](/docs/how-it-works/models): Solrouter runs only self-hosted open-weight models on Nosana GPU nodes. No prompt reaches OpenAI, Anthropic, or any other proprietary model API. - **Reference** - API - [Overview](/docs/api-reference/overview): The Solrouter REST API gives you encrypted chat completions, agent reasoning, TEE key and attestation reads, and private on-chain swaps. Base URL: https://api.solrouter.com - [POST /agent](/docs/api-reference/agent): The /agent endpoint runs your prompt through a tool loop with web search, on-chain data, DEX quotes, and Solana tools. Optional guided reasoning (BRAID) and encrypted mode. - TEE - [GET /tee/public-key](/docs/api-reference/tee/public-key): Fetch the enclave's X25519 public key for client-side encryption. The SDK fetches it once per process and caches it. Call it yourself only in a custom client. - [Errors](/docs/api-reference/errors): The HTTP status codes the Solrouter API returns, what each one means, and how to fix it. - **Agent Privacy API** - Swaps - [Quote a private swap](/docs/api-reference/agent-privacy/swaps/agents/v1/quote/get): Price a private swap before executing it. Returns the expected output after Solrouter's spread plus anonymity-set guidance: whether the amount snaps to a standard denomination bucket (strong privacy) or is an off-bucket amount with a unique on-chain fingerprint. - [Pool depth for a denomination bucket](/docs/api-reference/agent-privacy/swaps/agents/v1/anonymity-set/get): Inspect the anonymity set for a standard denomination bucket before swapping: how many recent deposits share that bucket. A deeper pool means a larger crowd to hide in. - [Begin a one-shot ephemeral-wallet private swap (Mode B)](/docs/api-reference/agent-privacy/swaps/agents/v1/swaps/oneshot/post): Start a private swap that runs through a throwaway ephemeral wallet, with no managed custody. Solrouter returns an unsigned `fundingTx`; the agent signs and broadcasts it, then calls `POST /swaps/oneshot/{id}/execute` to kick off the swap orchestrator. - [Submit fundingTxSig and start the swap orchestrator](/docs/api-reference/agent-privacy/swaps/agents/v1/swaps/oneshot/id/execute/post): After signing + broadcasting the funding tx from the one-shot session, submit its signature here to start the swap. - Managed Wallets - [Provision a managed Umbra wallet (Mode A)](/docs/api-reference/agent-privacy/managed-wallets/agents/v1/wallets/post): Create a Solrouter-custodied Umbra wallet. The keypair is generated server-side and envelope-encrypted (AES-256-GCM), so the agent never holds private keys. Fund the returned `umbraAddress`, then run swaps and encrypted-balance operations against the wallet id. - [Build an unsigned funding tx for the agent to sign](/docs/api-reference/agent-privacy/managed-wallets/agents/v1/wallets/id/fund-intent/post): Returns an unsigned base64 transaction that moves tokens from the agent's own wallet into the managed wallet. The agent signs and broadcasts it. - [Run a private swap from a managed wallet (Mode A)](/docs/api-reference/agent-privacy/managed-wallets/agents/v1/wallets/id/swap/post): Execute a private swap funded by a managed wallet's balance. Returns a session id to poll; no client-side signing needed. - [Wallet operation audit log](/docs/api-reference/agent-privacy/managed-wallets/agents/v1/wallets/id/audit/get): Chronological audit log of every operation on a managed wallet (created, swap, encrypt, shield, withdraw), newest first. - Private Balance - [Encrypt a public balance into an encrypted balance](/docs/api-reference/agent-privacy/private-balance/agents/v1/wallets/id/encrypt/post): One tx, ~10s. Funds stay at the same Umbra address but the running balance + future activity become ciphertext on chain. No mixer, no fresh address. Use when you want amount-privacy without breaking address linkability. - [Shield + unlink: mixer round-trip to a fresh address](/docs/api-reference/agent-privacy/private-balance/agents/v1/wallets/id/shield/post): Four txs, ~60s. Public balance enters the Umbra mixer, a claim breaks the on-chain link, then withdraw + transfer delivers to a FRESH destination. Source and destination both appear on-chain but with no link between them. Use when you want destination unlinkability without converting tokens. - [Withdraw from encrypted balance to a public address](/docs/api-reference/agent-privacy/private-balance/agents/v1/wallets/id/withdraw/post): Move funds out of a managed wallet's encrypted balance to a public Solana address. - [Encrypted-balance snapshot for given mints](/docs/api-reference/agent-privacy/private-balance/agents/v1/wallets/id/balance/get): Decrypt and return the managed wallet's encrypted balance for one or more mints (comma-separated). - Inference - [Cryptographically private AI inference (Arcium-encrypted, x402-paywalled)](/docs/api-reference/agent-privacy/inference/api/v1/x402/chat/completions/post): OpenAI-compatible chat completions. The prompt MUST be Arcium-encrypted client-side using `@solrouter/sdk`'s `encryptPrompt()` helper; the encrypted prompt is processed and the response returned encrypted, without Solrouter ever seeing plaintext. Pay-per-call x402 ($0.005 USDC flat per call). For per-token internal-credit billing with an API key, use POST /api/v1/chat/completions instead. - Sessions - [Poll a swap session's state](/docs/api-reference/agent-privacy/sessions/agents/v1/sessions/id/get): Fetch the current state of any swap/balance session. Poll until `state` is `settled` (or `failed`). - [On-chain attestation for a settled session](/docs/api-reference/agent-privacy/sessions/agents/v1/attestations/sessionid/get): Once a session settles, fetch its on-chain attestation PDA + a snapshot of the swap (mints, amounts, final tx) with Solscan links. - [Glossary](/docs/glossary): Plain-language definitions of every term used in these docs, in alphabetical order, each with a link to the page that explains it. - [$ROUTER Token](/docs/token): $ROUTER is Solrouter's utility token on Solana. 1B total supply, 53.04% at TGE, with a buyback-and-burn mechanism whose ratios are not yet published.