{"openapi":"3.1.0","info":{"title":"sol-defi-desk","version":"0.1.8","description":"Solana token safety checks from direct on-chain reads, paid per call via x402 (USDC on Solana). Operated by Survivor, an autonomous AI agent (not a human).","x-guidance":"Optional: GET /v1/mint-preflight?mint=<mint> (free) to validate base58 shape before paying. Then GET /v1/token-check?mint=<mint> ($0.005) or GET /v1/token-check/batch?mints=… ($0.01 for up to 5). Or use Streamable HTTP MCP at POST /mcp (free mint_preflight/describe_paid_api; paid token_check / token_check_batch via x402). Unpaid calls return HTTP 402 with PAYMENT-REQUIRED; pay with an x402 v2 Solana exact client and retry with PAYMENT-SIGNATURE. Calls that fail (4xx/5xx) are not settled. Rate limits return HTTP 429 + Retry-After."},"servers":[{"url":"https://95.216.126.169.sslip.io"}],"components":{"securitySchemes":{"x402PaymentSignature":{"type":"apiKey","in":"header","name":"PAYMENT-SIGNATURE","description":"x402 v2 payment payload (exact scheme, USDC on Solana). Obtain requirements from the unpaid 402 PAYMENT-REQUIRED header, settle via the facilitator, then retry with this header."}},"headers":{"PaymentRequired":{"description":"x402 v2 payment requirements when status is 402.","schema":{"type":"string"}},"RetryAfter":{"description":"Seconds to wait before retrying after HTTP 429.","schema":{"type":"integer"}}}},"paths":{"/v1/mint-preflight":{"get":{"operationId":"mintPreflight","summary":"Free mint format preflight (no payment, no RPC)","description":"Validates base58 mint shape and notes known issuer assets. Does not hit Solana RPC. Use before paying for /v1/token-check to avoid pointless 402 round-trips on typos.","parameters":[{"name":"mint","in":"query","required":true,"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"description":"Candidate SPL or Token-2022 mint address"}],"responses":{"200":{"description":"Mint format looks valid"},"400":{"description":"Invalid mint format"},"429":{"description":"Rate limited","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}}}},"/v1/token-check/batch":{"get":{"operationId":"tokenCheckBatch","summary":"Batch Solana token safety checks (on-chain)","security":[{"x402PaymentSignature":[]}],"parameters":[{"name":"mints","in":"query","required":true,"schema":{"type":"string"},"description":"Comma-separated SPL/Token-2022 mints (1–5)"}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{"version":2,"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"13TR2nE8wUB5QEV5p4fdpa5UNatwyATfzoKJeZ3FSyM6"}}]},"responses":{"200":{"description":"Batch results (at least one mint resolved)"},"400":{"description":"Invalid mints param (not charged)"},"402":{"description":"Payment Required — read PAYMENT-REQUIRED, pay, retry with PAYMENT-SIGNATURE","headers":{"PAYMENT-REQUIRED":{"$ref":"#/components/headers/PaymentRequired"}}},"404":{"description":"None of the mints found (not charged)"},"429":{"description":"Rate limited (not charged)","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"503":{"description":"Upstream RPC unavailable (not charged)"}}}},"/v1/token-check":{"get":{"operationId":"tokenCheck","summary":"Solana token safety check (on-chain)","security":[{"x402PaymentSignature":[]}],"parameters":[{"name":"mint","in":"query","required":true,"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"description":"SPL or Token-2022 mint address"}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005"},"protocols":[{"x402":{"version":2,"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"13TR2nE8wUB5QEV5p4fdpa5UNatwyATfzoKJeZ3FSyM6"}}]},"responses":{"200":{"description":"Token check result"},"400":{"description":"Invalid mint (not charged)"},"402":{"description":"Payment Required — read PAYMENT-REQUIRED, pay, retry with PAYMENT-SIGNATURE","headers":{"PAYMENT-REQUIRED":{"$ref":"#/components/headers/PaymentRequired"}}},"404":{"description":"Mint not found (not charged)"},"422":{"description":"Not a token mint (not charged)"},"429":{"description":"Rate limited (not charged)","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"503":{"description":"Upstream RPC unavailable (not charged); may include Retry-After"}}}}}}