{"openapi":"3.1.0","info":{"title":"Solana mint pre-trade risk gate","version":"1.0.0","description":"Fail-closed Solana mint pre-trade risk gate and tx preflight pack. Paid routes accept x402 v2 exact USDC on Solana. Unknown means unproven — no invented safety scores."},"servers":[{"url":"https://mint-risk-gate.mint-risk.workers.dev"}],"x-discovery":{"ownershipProofs":["E5Ba7DeM6tVcNN1wN2qMbHuZ8nrJHyw1YdZJkiK7HvYz"],"facilitator":"https://facilitator.payai.network"},"paths":{"/health":{"get":{"operationId":"health","summary":"Fetch mint-risk-gate liveness, payTo, and price","responses":{"200":{"description":"Service is up","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}}}}},"/.well-known/x402":{"get":{"operationId":"wellKnownX402","summary":"Fetch the x402 discovery document for paid mint and preflight routes","responses":{"200":{"description":"Discovery document"}}}},"/openapi.json":{"get":{"operationId":"openapi","summary":"Fetch the OpenAPI 3.1 document for this service","responses":{"200":{"description":"This document"}}}},"/llms.txt":{"get":{"operationId":"llmsTxt","summary":"Fetch the agent-readable mint-risk-gate service card","responses":{"200":{"description":"text/plain"}}}},"/v1/fees/p50":{"get":{"operationId":"priorityFeeP50","summary":"Fetch recent Solana priority-fee percentiles without paying","responses":{"200":{"description":"p50/p75/p90 from getRecentPrioritizationFees","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeeSnapshot"}}}}}}},"/v1/preflight":{"post":{"operationId":"postTxPreflight","summary":"Fetch a fail-closed Solana transaction preflight pack","description":"Simulate a serialized tx or instruction list. Returns fail taxonomy, compute units, and suggested priority fee. Requires x402 v2 exact payment of $0.005 USDC on Solana.","security":[{"paymentSignature":[]}],"x-payment-info":{"protocols":["x402"],"x402Version":2,"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","assetSymbol":"USDC","price":{"mode":"fixed","currency":"USD","amount":"0.005"},"payTo":"E5Ba7DeM6tVcNN1wN2qMbHuZ8nrJHyw1YdZJkiK7HvYz","facilitator":"https://facilitator.payai.network"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreflightRequest"},"example":{"feePayer":"11111111111111111111111111111112","instructions":[{"programId":"11111111111111111111111111111111","accounts":[{"pubkey":"11111111111111111111111111111112","isSigner":true,"isWritable":true},{"pubkey":"11111111111111111111111111111111","isSigner":false,"isWritable":true}],"data":"AgAAAAAAAAABAAAAAAAAAA=="}]}}}},"responses":{"200":{"description":"Fail-closed preflight pack","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreflightPack"}}}},"400":{"description":"Missing transaction or instruction list (after payment)"},"402":{"description":"Payment required. Read PAYMENT-REQUIRED and accepts[].","x-payment-info":{"protocols":["x402"],"x402Version":2,"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","assetSymbol":"USDC","price":{"mode":"fixed","currency":"USD","amount":"0.005"},"payTo":"E5Ba7DeM6tVcNN1wN2qMbHuZ8nrJHyw1YdZJkiK7HvYz","facilitator":"https://facilitator.payai.network"}}}}},"/v1/mint/{mint}":{"parameters":[{"name":"mint","in":"path","required":true,"schema":{"type":"string"},"description":"Solana mint address (base58)","example":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"}],"get":{"operationId":"getMintRisk","summary":"Fetch fail-closed pre-trade facts for one Solana mint","description":"Returns fail-closed JSON for a Solana mint. Requires x402 v2 exact payment of $0.01 USDC on Solana.","security":[{"paymentSignature":[]}],"x-payment-info":{"protocols":["x402"],"x402Version":2,"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","assetSymbol":"USDC","price":{"mode":"fixed","currency":"USD","amount":"0.01"},"payTo":"E5Ba7DeM6tVcNN1wN2qMbHuZ8nrJHyw1YdZJkiK7HvYz","facilitator":"https://facilitator.payai.network"},"responses":{"200":{"description":"Risk facts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MintRiskReport"},"example":{"mint":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","mint_account":"found"}}}},"400":{"description":"Invalid mint address (after payment)"},"402":{"description":"Payment required. Read PAYMENT-REQUIRED and accepts[].","x-payment-info":{"protocols":["x402"],"x402Version":2,"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","assetSymbol":"USDC","price":{"mode":"fixed","currency":"USD","amount":"0.01"},"payTo":"E5Ba7DeM6tVcNN1wN2qMbHuZ8nrJHyw1YdZJkiK7HvYz","facilitator":"https://facilitator.payai.network"}}}},"post":{"operationId":"postMintRisk","summary":"Submit a mint and fetch fail-closed pre-trade facts","description":"Returns fail-closed JSON for a Solana mint. Requires x402 v2 exact payment of $0.01 USDC on Solana.","security":[{"paymentSignature":[]}],"x-payment-info":{"protocols":["x402"],"x402Version":2,"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","assetSymbol":"USDC","price":{"mode":"fixed","currency":"USD","amount":"0.01"},"payTo":"E5Ba7DeM6tVcNN1wN2qMbHuZ8nrJHyw1YdZJkiK7HvYz","facilitator":"https://facilitator.payai.network"},"responses":{"200":{"description":"Risk facts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MintRiskReport"},"example":{"mint":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","mint_account":"found"}}}},"400":{"description":"Invalid mint address (after payment)"},"402":{"description":"Payment required. Read PAYMENT-REQUIRED and accepts[].","x-payment-info":{"protocols":["x402"],"x402Version":2,"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","assetSymbol":"USDC","price":{"mode":"fixed","currency":"USD","amount":"0.01"},"payTo":"E5Ba7DeM6tVcNN1wN2qMbHuZ8nrJHyw1YdZJkiK7HvYz","facilitator":"https://facilitator.payai.network"}}}}},"/mcp":{"post":{"operationId":"mcp","summary":"Fetch fail-closed mint facts via the mint_risk MCP tool","description":"Same SKU as /v1/mint/:mint. JSON-RPC 2.0 initialize / tools/list / tools/call.","security":[{"paymentSignature":[]}],"x-payment-info":{"protocols":["x402"],"x402Version":2,"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","assetSymbol":"USDC","price":{"mode":"fixed","currency":"USD","amount":"0.01"},"payTo":"E5Ba7DeM6tVcNN1wN2qMbHuZ8nrJHyw1YdZJkiK7HvYz","facilitator":"https://facilitator.payai.network"},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","description":"JSON-RPC 2.0 body for MCP Streamable HTTP","additionalProperties":true,"properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{"type":["string","number"]},"method":{"type":"string"},"params":{"type":"object","additionalProperties":true}}},"example":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"mint_risk","arguments":{"mint":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"}}}}}},"responses":{"200":{"description":"JSON-RPC 2.0. tools/list.tools[].outputSchema is MintRiskReport; tools/call.structuredContent is the fail-closed pack.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpJsonRpcResponse"},"example":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"{\"mint\":\"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\",\"generated_at\":\"2026-08-26T00:00:00.000Z\",\"authorities\":{\"mint\":{\"status\":\"present\",\"address\":\"7VHUFJHWu2CuExkJcJrzRqpTwAeoh5Bwn4AfBgsFVkKB\",\"source\":\"solana_rpc\"},\"freeze\":{\"status\":\"present\",\"address\":\"7VHUFJHWu2CuExkJcJrzRqpTwAeoh5Bwn4AfBgsFVkKB\",\"source\":\"solana_rpc\"},\"token_program\":\"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"},\"top_holder_concentration\":{\"status\":\"observed\",\"top1_pct\":12.5,\"top5_pct\":40.1,\"top10_pct\":55.2,\"accounts_sampled\":20,\"supply\":\"1000000000\",\"decimals\":6,\"top_holders\":[],\"source\":\"getTokenLargestAccounts\"},\"lp\":{\"status\":\"unknown\",\"visible_liquidity_usd\":1234567,\"pairs_visible\":3,\"evidence\":null,\"source\":\"dexscreener\",\"reason\":\"no_lock_or_burn_evidence_in_public_http\"},\"jupiter_route\":{\"exists\":true,\"source\":\"jupiter_lite_quote\"},\"pump_fun\":{\"applicable\":false,\"complete\":\"unknown\",\"bonding_progress_pct\":\"unknown\",\"source\":\"pump.fun\",\"reason\":\"not_a_pump_fun_coin\"},\"first_funder_cluster\":{\"status\":\"unknown\",\"cluster\":\"unknown\",\"reason\":\"not_computed_requires_historical_tx_walk\"},\"notes\":[\"Fail-closed: unknown means this gate could not prove the value. Do not treat unknown as safe.\"],\"mint_account\":\"found\"}"}],"structuredContent":{"mint":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","generated_at":"2026-08-26T00:00:00.000Z","authorities":{"mint":{"status":"present","address":"7VHUFJHWu2CuExkJcJrzRqpTwAeoh5Bwn4AfBgsFVkKB","source":"solana_rpc"},"freeze":{"status":"present","address":"7VHUFJHWu2CuExkJcJrzRqpTwAeoh5Bwn4AfBgsFVkKB","source":"solana_rpc"},"token_program":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},"top_holder_concentration":{"status":"observed","top1_pct":12.5,"top5_pct":40.1,"top10_pct":55.2,"accounts_sampled":20,"supply":"1000000000","decimals":6,"top_holders":[],"source":"getTokenLargestAccounts"},"lp":{"status":"unknown","visible_liquidity_usd":1234567,"pairs_visible":3,"evidence":null,"source":"dexscreener","reason":"no_lock_or_burn_evidence_in_public_http"},"jupiter_route":{"exists":true,"source":"jupiter_lite_quote"},"pump_fun":{"applicable":false,"complete":"unknown","bonding_progress_pct":"unknown","source":"pump.fun","reason":"not_a_pump_fun_coin"},"first_funder_cluster":{"status":"unknown","cluster":"unknown","reason":"not_computed_requires_historical_tx_walk"},"notes":["Fail-closed: unknown means this gate could not prove the value. Do not treat unknown as safe."],"mint_account":"found"}}}}}},"402":{"description":"Payment required","x-payment-info":{"protocols":["x402"],"x402Version":2,"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","assetSymbol":"USDC","price":{"mode":"fixed","currency":"USD","amount":"0.01"},"payTo":"E5Ba7DeM6tVcNN1wN2qMbHuZ8nrJHyw1YdZJkiK7HvYz","facilitator":"https://facilitator.payai.network"}}}}}},"components":{"securitySchemes":{"paymentSignature":{"type":"apiKey","in":"header","name":"PAYMENT-SIGNATURE","description":"x402 v2 payment signature. Unpaid requests receive HTTP 402."}},"schemas":{"Health":{"type":"object","properties":{"ok":{"type":"boolean"},"service":{"type":"string"},"payTo":{"type":"string"},"price":{"type":"string"},"network":{"type":"string"}}},"MintRiskReport":{"type":"object","description":"Fail-closed Solana mint pre-trade facts. Every field is a proven observation or the literal string unknown. Unknown means unproven, not safe.","additionalProperties":false,"required":["mint","generated_at","authorities","top_holder_concentration","lp","jupiter_route","pump_fun","first_funder_cluster","notes","mint_account"],"properties":{"mint":{"type":"string","description":"Solana mint address (base58)"},"generated_at":{"type":"string","description":"ISO-8601 timestamp when this pack was built"},"authorities":{"type":"object","additionalProperties":false,"required":["mint","freeze","token_program"],"properties":{"mint":{"type":"object","additionalProperties":false,"required":["status","address","source"],"properties":{"status":{"type":"string","enum":["present","revoked","unknown"]},"address":{"type":["string","null"]},"source":{"type":"string"},"reason":{"type":"string"}}},"freeze":{"type":"object","additionalProperties":false,"required":["status","address","source"],"properties":{"status":{"type":"string","enum":["present","revoked","unknown"]},"address":{"type":["string","null"]},"source":{"type":"string"},"reason":{"type":"string"}}},"token_program":{"description":"Token program id, or unknown if the mint account was not proven","oneOf":[{"type":"string"},{"type":"string","const":"unknown"}]}}},"top_holder_concentration":{"type":"object","additionalProperties":false,"required":["status","top1_pct","top5_pct","top10_pct","accounts_sampled","supply","decimals","top_holders","source"],"properties":{"status":{"type":"string","enum":["observed","unknown"]},"top1_pct":{"description":"Largest holder as percent of supply","oneOf":[{"type":"number"},{"type":"string","const":"unknown"}]},"top5_pct":{"description":"Top 5 holders as percent of supply","oneOf":[{"type":"number"},{"type":"string","const":"unknown"}]},"top10_pct":{"description":"Top 10 holders as percent of supply","oneOf":[{"type":"number"},{"type":"string","const":"unknown"}]},"accounts_sampled":{"description":"How many largest accounts were sampled","oneOf":[{"type":"number"},{"type":"string","const":"unknown"}]},"supply":{"description":"Raw on-chain supply as a decimal string","oneOf":[{"type":"string"},{"type":"string","const":"unknown"}]},"decimals":{"description":"Mint decimals","oneOf":[{"type":"number"},{"type":"string","const":"unknown"}]},"top_holders":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["address","ui_amount","pct","likely_burn"],"properties":{"address":{"type":"string"},"ui_amount":{"description":"UI amount for this account","oneOf":[{"type":"number"},{"type":"string","const":"unknown"}]},"pct":{"description":"Percent of supply","oneOf":[{"type":"number"},{"type":"string","const":"unknown"}]},"likely_burn":{"type":"boolean"}}}},"source":{"type":"string"},"reason":{"type":"string"}}},"lp":{"type":"object","additionalProperties":false,"required":["status","visible_liquidity_usd","pairs_visible","evidence","source"],"properties":{"status":{"type":"string","enum":["burned","locked","unlocked","bonding_curve","unknown"]},"visible_liquidity_usd":{"description":"Visible DEX liquidity in USD","oneOf":[{"type":"number"},{"type":"string","const":"unknown"}]},"pairs_visible":{"description":"How many pairs were visible in public HTTP","oneOf":[{"type":"number"},{"type":"string","const":"unknown"}]},"evidence":{"type":["string","null"]},"source":{"type":"string"},"reason":{"type":"string"}}},"jupiter_route":{"type":"object","additionalProperties":false,"required":["exists","source"],"properties":{"exists":{"description":"Whether Jupiter advertised a quote route","oneOf":[{"type":"boolean"},{"type":"string","const":"unknown"}]},"source":{"type":"string"},"reason":{"type":"string"}}},"pump_fun":{"type":"object","additionalProperties":false,"required":["applicable","complete","bonding_progress_pct","source"],"properties":{"applicable":{"description":"Whether this mint is a pump.fun coin","oneOf":[{"type":"boolean"},{"type":"string","const":"unknown"}]},"complete":{"description":"Whether the bonding curve is complete","oneOf":[{"type":"boolean"},{"type":"string","const":"unknown"}]},"bonding_progress_pct":{"description":"Bonding-curve progress percent","oneOf":[{"type":"number"},{"type":"string","const":"unknown"}]},"source":{"type":"string"},"reason":{"type":"string"}}},"first_funder_cluster":{"type":"object","additionalProperties":false,"required":["status","cluster","reason"],"properties":{"status":{"type":"string","const":"unknown"},"cluster":{"type":"string","const":"unknown"},"reason":{"type":"string"}}},"notes":{"type":"array","items":{"type":"string"},"description":"Human-readable fail-closed notes. Unknown means unproven."},"mint_account":{"type":"string","enum":["found","not_found","unknown"]}}},"McpMintRiskTool":{"type":"object","required":["name","description","inputSchema","outputSchema"],"properties":{"name":{"type":"string","const":"mint_risk"},"description":{"type":"string"},"inputSchema":{"type":"object"},"outputSchema":{"$ref":"#/components/schemas/MintRiskReport"}}},"McpJsonRpcResponse":{"type":"object","required":["jsonrpc"],"properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{"type":["string","number","null"]},"result":{"type":"object","description":"tools/list returns tools[]; tools/call returns structuredContent as MintRiskReport.","properties":{"tools":{"type":"array","items":{"$ref":"#/components/schemas/McpMintRiskTool"}},"content":{"type":"array","items":{"type":"object"}},"structuredContent":{"$ref":"#/components/schemas/MintRiskReport"},"isError":{"type":"boolean"}}},"error":{"type":"object"}}},"FeeSnapshot":{"type":"object","properties":{"ok":{"type":"boolean"},"p50":{},"p75":{},"p90":{},"suggestedMicroLamports":{},"samples":{"type":"number"},"source":{"type":"string"},"generated_at":{"type":"string","format":"date-time"}}},"PreflightRequest":{"type":"object","additionalProperties":true,"properties":{"transaction":{"type":"string","description":"Base64 serialized Solana transaction"},"tx":{"type":"string"},"feePayer":{"type":"string"},"instructions":{"type":"array","items":{"type":"object"}}}},"PreflightPack":{"type":"object","description":"Fail-closed simulation pack. unknown means unproven.","properties":{"ok":{"type":"boolean"},"logs":{},"units":{"type":"object"},"suggestedMicroLamports":{},"fees":{"type":"object"},"error":{"type":["object","null"]},"generated_at":{"type":"string","format":"date-time"}}}}}}