# GotSOL.app USDC payments for agents on Solana. Payment links, QR codes, Solana Pay, and x402. Privy holds the wallet keys. USDC stays in the Solana wallet. An agent receives an API key, not the private key. Privy signs the send when that API key is presented. A person can export the key from the wallet page. ## Sign up A person opens https://gotsol.app/ and chooses Create a wallet. That is email signup through Privy. Wallet login is not a signup method. Privy holds the keys. The wallet page can export the key. To create an API key after signup, open https://gotsol.app/settings. The raw key is shown once and starts with gotsol_. Send it as Authorization: Bearer gotsol_... An agent does not use that page. POST https://gotsol.app/api/agent/wallets opens a wallet and returns wallet, walletId, and apiKey once. On POST /api/agent/transfer, the Solana network fee is paid in USDC. The sender does not need SOL. The 0.25% outgoing transfer fee still applies. An x402 payment is different: the paying wallet pays the Solana network fee in SOL. ## Fees - Outgoing USDC transfers: 0.25% through December 31, 2027. - Incoming transfers, payment links, and x402 payments: 0%. - On a GotSOL.app send, including POST /api/agent/transfer, the Solana network fee is paid in USDC. The sender does not need SOL. - An x402 payment is signed by the paying wallet, and that wallet pays the Solana network fee in SOL. ## Paying with x402 GotSOL payment links use x402 version 2. GET https://gotsol.app/api/x402/pay/{linkId} with no payment header. An unpaid link returns HTTP 402. An unknown id returns 404. The JSON body has x402Version 2. accepts[0] has scheme "exact", network "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp" (Solana mainnet), asset "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" (USDC), amount (USDC base units, 6 decimals), payTo (the link recipient), maxTimeoutSeconds 120, and extra.memo "gotsol.app:{linkId}". resource is an object with url, description, and mimeType. The same object is base64-encoded in the PAYMENT-REQUIRED header. The paying wallet builds one versioned transaction and is the fee payer. It contains one TransferChecked of that amount to the recipient USDC account, plus a memo that includes gotsol.app:{linkId}. That wallet signs the transaction and pays the Solana network fee in SOL. Retry the same URL with header PAYMENT-SIGNATURE. X-PAYMENT is also accepted. The value is base64 JSON: {"payload":{"transaction":""}}. A top-level transaction field is also accepted. Settlement returns HTTP 200 with paid, id, signature, recipient, and amount. PAYMENT-RESPONSE is that receipt, base64-encoded. Example: GET https://gotsol.app/api/x402/demo returns HTTP 402 for 0.01 USDC (10000 base units) until paid. The memo is gotsol.app:demo. payTo is the GotSOL.app fee wallet. ## API Base URL: https://gotsol.app - POST /api/agent/wallets — open a wallet. Response includes wallet, walletId, and apiKey (shown once). - POST /api/agent/payment-links — Authorization: Bearer API key. Body: {"amount":10,"memo":"invoice"}. - POST /api/agent/transfer — Authorization: Bearer API key. Body: {"to":"
","amount":1}. The network fee is paid in USDC. - GET /api/x402/pay/{linkId} — HTTP 402 until PAYMENT-SIGNATURE is sent. The paying wallet pays the Solana network fee in SOL. An unknown id returns 404. - Stable demo: GET https://gotsol.app/api/x402/demo returns HTTP 402 for 0.01 USDC. Discovery: https://gotsol.app/.well-known/x402 - OpenAPI: https://gotsol.app/openapi.json - Agent card: https://gotsol.app/.well-known/agent-card.json - MCP: version 0.1.0 at https://gotsol.app/api/mcp. Tools include create_wallet, create_payment_link, and send_usdc. Claude connects with OAuth. An API key is sent as Authorization: Bearer, not as a tool argument. - A2A: POST JSON-RPC message/send to https://gotsol.app/a2a (the site root accepts the same POST). ## Compliance Does not support sanctioned regions. ## Links - Home: https://gotsol.app/ - How it works: https://gotsol.app/how-it-works - x402: https://gotsol.app/x402 - Pricing: https://gotsol.app/pricing - FAQ: https://gotsol.app/faq - Docs: https://gotsol.app/docs - Agent docs: https://gotsol.app/agents - Blog: https://gotsol.app/blog - Status: https://gotsol.app/status - Privacy: https://gotsol.app/privacy - Terms: https://gotsol.app/terms - Support: https://gotsol.app/support - Contact: https://gotsol.app/contact - Email: Ryan@GotSOLpay.com - Icon: https://gotsol.app/logo-256.png - Merchants: https://gotsolpay.com - X: https://x.com/gotsolpay