{"protocol":"x402","version":2,"service":"solana-wallet-x402","provider":{"name":"falcon.sol","tagline":"by falcon.sol","blurb":"Built by falcon.sol: anon dev shipping pay-per-call data tools and x402 APIs for builders and agents.","links":{"x":"https://x.com/ygfalcon","github":"https://github.com/ygfalcon","apify":"https://apify.com/falcon-sol"}},"networkMode":"mainnet","dataCluster":"mainnet","facilitators":{"solana":{"provider":"public","url":"https://facilitator.payai.network","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"HD1ryR3dYSXBVNGfJZydbpmnChiE1wrAQkupWWtHt4pM","bazaar":true},"base":{"provider":"coinbase-cdp","url":"https://api.cdp.coinbase.com/platform/v2/x402","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0xa30f3C68f2F6067EE5b9d5f651426E44Ea8AdAE9","bazaar":true,"advertised":true}},"resources":[{"method":"GET","path":"/wallet/profile","url":"https://solana-wallet-intel-phi.vercel.app/wallet/profile","description":"Use this when you need priced holdings and windowed PnL for one Solana wallet. Holdings valued in USD, a short plain-language summary, windowed realized and unrealized PnL, win rate, and evidence-backed labels such as active memecoin trader. Includes copyTradeScore and copyTradeGrade: copy-return after a 3s delay and a 3.6% round trip, win rate, sample-size shrinkage, and bot or insider penalties. The score is null when no close lasted at least 3 seconds. txLimit is an integer from 5 to 25 and defaults to 20. Call free wallet_preview first if you only need SOL balance and last-active time, or wallet_quick for a cheaper copy-trade screen.","mimeType":"application/json","protocol":"x402","scheme":"exact","price":"$0.009","amount":"9000","currency":"USDC","decimals":6,"inputSchema":{"type":"object","properties":{"address":{"type":"string","description":"Solana wallet address in base58 (32 to 44 characters). Unpaid requests return HTTP 402. A signed request with an invalid address returns HTTP 400 and is not charged."},"txLimit":{"type":"string","description":"Recent signatures to inspect, integer from 5 to 25. Defaults to 20. Unpaid requests return HTTP 402. A signed request with an out-of-range value returns HTTP 400 and is not charged."}},"required":["address"]},"outputSchema":{"type":"object"},"outputExample":{"address":"HD1ryR3dYSXBVNGfJZydbpmnChiE1wrAQkupWWtHt4pM","summary":"Holds $1,280.40 across 4 priced tokens. Largest position is SOL at 61%. Estimated realized PnL is +$42.10 and unrealized PnL is -$8.40 (win rate 60% on 5 closes). Labels: active memecoin trader, net winner.","portfolioUsd":1280.4,"labels":["active memecoin trader","net winner"],"labelDetails":[{"id":"active_memecoin_trader","title":"active memecoin trader","category":"activity","confidence":"medium","evidence":"5 swaps traded a token outside the blue-chip and stablecoin set."}],"pnl":{"realizedUsd":42.1,"unrealizedUsd":-8.4,"winRate":0.6,"partialCostBasis":false,"priceBasis":"execution"},"copyTradeScore":0.556,"copyTradeGrade":"C"},"example":{"address":"HD1ryR3dYSXBVNGfJZydbpmnChiE1wrAQkupWWtHt4pM","txLimit":"20"},"tags":["solana","wallet","x402"],"categories":["solana","wallet"],"accepts":[{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","amount":"9000","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"HD1ryR3dYSXBVNGfJZydbpmnChiE1wrAQkupWWtHt4pM","decimals":6},{"scheme":"exact","network":"eip155:8453","amount":"9000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0xa30f3C68f2F6067EE5b9d5f651426E44Ea8AdAE9","decimals":6}]},{"method":"GET","path":"/token/trending","url":"https://solana-wallet-intel-phi.vercel.app/token/trending","description":"Call this when you need the Solana memecoins traders are watching and a rug-check before you buy, swap, or recommend one. The list includes liquidity, market cap, pair age, 5m/1h/24h price and volume, buy/sell ratio, pump.fun bonding or graduation, and links to pump.fun, DexScreener, and Solscan. Each token has a one-line verdict, riskScore (0 clean to 100), riskLevel (low, medium, high, or unknown), and a risk breakdown with evidence and confidence: top-10 share, mint and freeze authority, LP lock percent, and sniper or bundle share of early supply. riskLevel is unknown when the holder, authority, LP, and sniper checks are all unread, and maxRisk leaves those tokens out. Holder percent falls back to the public RugCheck report at medium confidence when the public RPC cannot list the largest accounts. A successful RPC holder read is kept. Holder-concentration change over 5m/1h/24h is filled when this process has seen the mint before. A check that cannot be read says so, uses low confidence, and is not flagged. On-chain safety flags are plain-English sentences that fire when the top 10 holders own 50% or more, mint or freeze authority is still active, LP is unlocked, or snipers and bundled wallets took 20% or more of early supply. Market flags are short codes: low_liquidity, thin_volume, newly_launched, extreme_move, wash_suspect, paid_boost. Thin, new, and wash-like books are ranked down. The summary block counts tokens by risk level and names the top movers. limit is an integer from 1 to 25 and defaults to 15. minLiquidity is an optional USD floor. maxRisk is low, medium, high, or an integer from 0 to 100.","mimeType":"application/json","protocol":"x402","scheme":"exact","price":"$0.005","amount":"5000","currency":"USDC","decimals":6,"inputSchema":{"type":"object","properties":{"limit":{"type":"string","description":"How many tokens to return, integer from 1 to 25. Defaults to 15. Unpaid requests return HTTP 402. A signed request with an out-of-range value returns HTTP 400 and is not charged. MCP also accepts a JSON integer."},"minLiquidity":{"type":"string","description":"Optional minimum pool liquidity in USD, a non-negative number such as 15000. Tokens with unknown liquidity are left out. Unpaid requests return HTTP 402. A signed request with a bad value returns HTTP 400 and is not charged. MCP also accepts a JSON number."},"maxRisk":{"type":"string","description":"Optional maximum risk. low, medium, or high keeps tokens at or below that level. An integer from 0 to 100 keeps tokens with riskScore at or below that number. Unknown risk is left out. Unpaid requests return HTTP 402. A signed request with a bad value returns HTTP 400 and is not charged."}},"required":[]},"outputSchema":{"type":"object","required":["summary","tokens"],"properties":{"summary":{"type":"string"},"summaryBlock":{"type":"object","properties":{"returned":{"type":"integer"},"scanned":{"type":"integer"},"byRiskLevel":{"type":"object"},"topMovers":{"type":"array","items":{"type":"object"}}}},"timestamps":{"type":"object","properties":{"asOf":{"type":"string","description":"ISO-8601 time the board was built."},"generatedAt":{"type":"string","description":"ISO-8601 time the board was built. Matches asOf."}}},"etag":{"type":"string","description":"SHA-256 of the filtered body. Also sent as the ETag header."},"query":{"type":"object","description":"The limit, minLiquidity, and maxRisk that were applied."},"tokens":{"type":"array","items":{"type":"object","required":["rank","symbol","riskFlags","riskScore","riskLevel"],"properties":{"rank":{"type":"integer","minimum":1},"mint":{"type":"string","description":"Token mint address."},"symbol":{"type":"string"},"name":{"type":"string"},"priceUsd":{"type":["number","null"]},"liquidityUsd":{"type":["number","null"]},"marketCapUsd":{"type":["number","null"],"description":"USD market cap from the pair feed. Null when the feed does not publish one."},"volume24hUsd":{"type":["number","null"]},"priceChange24hPct":{"type":["number","null"]},"ageHours":{"type":["number","null"]},"verdict":{"type":"string","description":"One plain-English line. Heuristic, not a promise that a token is safe."},"momentum":{"type":"object","description":"Price, volume, and buy/sell ratio over 5 minutes, 1 hour, and 24 hours. Holder change is the percent change in top-10 concentration versus an earlier sample from this process.","properties":{"priceChangePct":{"type":"object"},"volumeUsd":{"type":"object"},"buySellRatio":{"type":"object"},"holderChangePct":{"type":"object"},"confidence":{"type":"string","enum":["high","medium","low"]}}},"pump":{"type":"object","properties":{"status":{"type":"string","enum":["bonding","graduated","not_pump","unknown"]},"progressPct":{"type":["number","null"]},"confidence":{"type":"string","enum":["high","medium","low"]}}},"links":{"type":"object","properties":{"pumpfun":{"type":["string","null"]},"dexscreener":{"type":["string","null"]},"solscan":{"type":"string"}}},"riskBreakdown":{"type":"array","description":"One row per safety check: holders, mint_authority, freeze_authority, lp_lock, snipers. value is the evidence. flagged is true only when the check crossed its threshold.","items":{"type":"object"}},"riskFlags":{"type":"array","items":{"type":"string"},"description":"Plain-English on-chain safety sentences plus market codes: low_liquidity, thin_volume, newly_launched, extreme_move, wash_suspect, paid_boost."},"riskScore":{"type":"integer","minimum":0,"maximum":100,"description":"0 is clean, 100 is high risk."},"riskLevel":{"type":"string","enum":["low","medium","high","unknown"],"description":"unknown means holder, authority, LP, and sniper checks were all unread. maxRisk leaves unknown tokens out."},"checks":{"type":"object","properties":{"holders":{"type":"object","properties":{"top10Share":{"type":["number","null"]},"holderPct":{"type":["number","null"],"description":"Top-10 holder share as a percent."},"confidence":{"type":"string","enum":["high","medium","low"]},"note":{"type":"string"}}},"authorities":{"type":"object","properties":{"mintAuthority":{"type":["string","null"]},"freezeAuthority":{"type":["string","null"]},"mintStatus":{"type":"string","enum":["active","revoked","unknown"]},"freezeStatus":{"type":"string","enum":["active","revoked","unknown"]},"confidence":{"type":"string","enum":["high","medium","low"]},"note":{"type":"string"}}},"lp":{"type":"object","properties":{"status":{"type":"string","enum":["burned","locked","unlocked","concentrated","unknown"]},"lockedPct":{"type":["number","null"],"description":"Percent of LP supply burned or locked."},"confidence":{"type":"string","enum":["high","medium","low"]},"note":{"type":"string"}}},"snipers":{"type":"object","properties":{"share":{"type":["number","null"]},"sniperPct":{"type":["number","null"]},"confidence":{"type":"string","enum":["high","medium","low"]},"note":{"type":"string"}}}}}}}},"cached":{"type":"boolean"},"stale":{"type":"boolean"},"cacheAgeMs":{"type":"integer"}}},"outputExample":{"summary":"2 Solana tokens, ranked by 24h volume after down-ranking thin, new, and wash-like books. Top is BONK with $18,000,000 24h volume and $4,200,000 liquidity. 1 of 2 have risk flags.","tokens":[{"rank":1,"symbol":"BONK","liquidityUsd":4200000,"volume24hUsd":18000000,"ageHours":8000,"riskFlags":[],"riskScore":0,"riskLevel":"low","checks":{"holders":{"top10Share":0.18,"holderPct":18,"confidence":"high","note":"Top 10 holders control 18% of supply."},"authorities":{"mintAuthority":null,"freezeAuthority":null,"mintStatus":"revoked","freezeStatus":"revoked","confidence":"high","note":"Mint authority is revoked. Freeze authority is revoked."},"lp":{"status":"burned","lockedPct":100,"confidence":"high","note":"LP is burned. Burn addresses hold 100% of the LP supply."},"snipers":{"share":0.04,"sniperPct":4,"confidence":"high","note":"Snipers and bundled wallets took 4% of supply in the earliest slots."}},"verdict":"Low risk: top 10 hold 18%, authorities are revoked, LP is burned, and snipers took 4%.","marketCapUsd":1800000000,"pump":{"status":"not_pump","progressPct":null,"confidence":"high"},"links":{"dexscreener":"https://dexscreener.com/solana/bonk","solscan":"https://solscan.io/token/DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263","pumpfun":null}},{"rank":2,"symbol":"NEWCOIN","liquidityUsd":38000,"volume24hUsd":910000,"ageHours":3,"riskFlags":["newly_launched","wash_suspect","Top 10 holders control 64% of supply.","Mint authority is still active, so the issuer can create more tokens.","LP is unlocked, so liquidity can be pulled.","Snipers and bundled wallets took 31% of supply in the earliest slots."],"riskScore":100,"riskLevel":"high","checks":{"holders":{"top10Share":0.64,"holderPct":64,"confidence":"high","note":"Top 10 holders control 64% of supply."},"authorities":{"mintAuthority":"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU","freezeAuthority":null,"mintStatus":"active","freezeStatus":"revoked","confidence":"high","note":"Mint authority is still active, so the issuer can create more tokens. Freeze authority is revoked."},"lp":{"status":"unlocked","lockedPct":0,"confidence":"high","note":"LP is unlocked, so liquidity can be pulled."},"snipers":{"share":0.31,"sniperPct":31,"confidence":"high","note":"Snipers and bundled wallets took 31% of supply in the earliest slots."}},"verdict":"High risk: top 10 hold 64%, mint authority is live, LP is unlocked, and snipers took 31%.","marketCapUsd":90000,"pump":{"status":"bonding","progressPct":42,"confidence":"high"}}],"summaryBlock":{"returned":2,"scanned":2,"byRiskLevel":{"low":1,"medium":0,"high":1,"unknown":0},"topMovers":[{"rank":2,"mint":"new","symbol":"NEWCOIN","priceChangePct":140,"window":"h24"}]},"timestamps":{"asOf":"2026-10-24T00:00:00.000Z","generatedAt":"2026-10-24T00:00:00.000Z"},"etag":"c4f0a2e8b91d4c6e8a0b1d2f3a4c5e6d7f8091a2b3c4d5e6f708192a3b4c5d6e"},"example":{"limit":"15","minLiquidity":"15000","maxRisk":"high"},"tags":["solana","rug-check","trending","memecoin","risk","x402"],"categories":["solana","rug-check","trending","memecoin","risk"],"accepts":[{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","amount":"5000","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"HD1ryR3dYSXBVNGfJZydbpmnChiE1wrAQkupWWtHt4pM","decimals":6},{"scheme":"exact","network":"eip155:8453","amount":"5000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0xa30f3C68f2F6067EE5b9d5f651426E44Ea8AdAE9","decimals":6}]},{"method":"GET","path":"/wallet/funding","url":"https://solana-wallet-intel-phi.vercel.app/wallet/funding","description":"Use this when you need a wallet's first SOL funder and whether other wallets look like the same operator. Find a wallet's first SOL funder, flag wallets that share that funder or a CEX deposit address, and return a cluster id with plain-language sybil risk reasons. Labeled exchange hot wallets are not used as a cluster. Optional peers compares up to 8 other wallets.","mimeType":"application/json","protocol":"x402","scheme":"exact","price":"$0.009","amount":"9000","currency":"USDC","decimals":6,"inputSchema":{"type":"object","properties":{"address":{"type":"string","description":"Solana wallet address in base58 (32 to 44 characters). Unpaid requests return HTTP 402. A signed request with an invalid address returns HTTP 400 and is not charged."},"peers":{"type":"string","description":"Comma-separated peer wallets to compare, up to 8. Each must be base58. The primary address is rejected. Unpaid requests return HTTP 402. A signed request with invalid peers returns HTTP 400 and is not charged. Wallets that share a personal first funder or a CEX deposit address join one cluster."}},"required":["address"]},"outputSchema":{"type":"object"},"outputExample":{"address":"HD1ryR3dYSXBVNGfJZydbpmnChiE1wrAQkupWWtHt4pM","summary":"First SOL came from a personal funder. Peer wallets that share that funder are one cluster. Cluster id is funder:So11111111111111111111111111111111111111112.","funder":{"address":"So11111111111111111111111111111111111111112","exchange":null,"amountSol":1.5},"cexDeposit":null,"cluster":{"id":"funder:So11111111111111111111111111111111111111112","key":"funder","members":["HD1ryR3dYSXBVNGfJZydbpmnChiE1wrAQkupWWtHt4pM"]},"risk":{"level":"high","reasons":["Peer wallets share that first SOL funder. Wallets opened by the same funder are often one operator or a sybil set."]}},"example":{"address":"HD1ryR3dYSXBVNGfJZydbpmnChiE1wrAQkupWWtHt4pM","peers":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},"tags":["solana","wallet","x402"],"categories":["solana","wallet"],"accepts":[{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","amount":"9000","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"HD1ryR3dYSXBVNGfJZydbpmnChiE1wrAQkupWWtHt4pM","decimals":6},{"scheme":"exact","network":"eip155:8453","amount":"9000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0xa30f3C68f2F6067EE5b9d5f651426E44Ea8AdAE9","decimals":6}]},{"method":"GET","path":"/wallet/quick","url":"https://solana-wallet-intel-phi.vercel.app/wallet/quick","description":"Use this for a cheap copy-trade screen before paying for a full profile. Cheap copy-trade screen for one wallet: windowed realized PnL, win rate, closed trades, last active time, bot, exchange, net-winner and dormant flags, plus copyTradeScore and copyTradeGrade (copy-return after a 3s delay and a 3.6% round trip, win rate, sample-size shrinkage, bot and insider penalties). Free teaser at /wallet/preview; full report at /wallet/profile.","mimeType":"application/json","protocol":"x402","scheme":"exact","price":"$0.002","amount":"2000","currency":"USDC","decimals":6,"inputSchema":{"type":"object","properties":{"address":{"type":"string","description":"Solana wallet address in base58 (32 to 44 characters). Unpaid requests return HTTP 402. A signed request with an invalid address returns HTTP 400 and is not charged."}},"required":["address"]},"outputSchema":{"type":"object"},"outputExample":{"address":"HD1ryR3dYSXBVNGfJZydbpmnChiE1wrAQkupWWtHt4pM","realizedUsd":42.1,"winRate":0.6,"closedTrades":5,"bot":false,"exchangeLike":false,"netWinner":true,"dormant":false,"portfolioUsd":1280.4,"lastActiveAt":"2026-10-23T18:00:00.000Z","windowTransactions":25,"copyTradeScore":0.556,"copyTradeGrade":"C"},"example":{"address":"HD1ryR3dYSXBVNGfJZydbpmnChiE1wrAQkupWWtHt4pM"},"tags":["solana","wallet","x402"],"categories":["solana","wallet"],"accepts":[{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","amount":"2000","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"HD1ryR3dYSXBVNGfJZydbpmnChiE1wrAQkupWWtHt4pM","decimals":6},{"scheme":"exact","network":"eip155:8453","amount":"2000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0xa30f3C68f2F6067EE5b9d5f651426E44Ea8AdAE9","decimals":6}]},{"method":"GET","path":"/wallet/quick/batch","url":"https://solana-wallet-intel-phi.vercel.app/wallet/quick/batch","description":"Quick screen (windowed realized PnL, win rate, copyTradeScore, copyTradeGrade, bot, exchange, net-winner and dormant flags) for up to 10 Solana wallets in one paid call, ranked by realized PnL. Pass addresses comma-separated.","mimeType":"application/json","protocol":"x402","scheme":"exact","price":"$0.015","amount":"15000","currency":"USDC","decimals":6,"inputSchema":{"type":"object","properties":{"addresses":{"type":"string","description":"1 to 10 comma-separated base58 Solana wallet addresses. Unpaid requests return HTTP 402. A signed request with a bad list returns HTTP 400 and is not charged."}},"required":["addresses"]},"outputSchema":{"type":"object"},"outputExample":{"asOf":"2026-10-24T12:00:00.000Z","wallets":[{"address":"HD1ryR3dYSXBVNGfJZydbpmnChiE1wrAQkupWWtHt4pM","realizedUsd":42.1,"winRate":0.6,"bot":false,"smartMoney":false,"copyTradeScore":0.556,"copyTradeGrade":"C"}],"errors":[]},"example":{"addresses":"HD1ryR3dYSXBVNGfJZydbpmnChiE1wrAQkupWWtHt4pM,suqh5sHtr8HyJ7q8scBimULPkPpA557prMG47xCHQfK"},"tags":["solana","wallet","x402"],"categories":["solana","wallet"],"accepts":[{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","amount":"15000","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"HD1ryR3dYSXBVNGfJZydbpmnChiE1wrAQkupWWtHt4pM","decimals":6},{"scheme":"exact","network":"eip155:8453","amount":"15000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0xa30f3C68f2F6067EE5b9d5f651426E44Ea8AdAE9","decimals":6}]}],"free":[{"method":"GET","path":"/wallet/preview","url":"https://solana-wallet-intel-phi.vercel.app/wallet/preview","description":"Free teaser. Call this before any paid wallet tool. Returns SOL balance, last active time, how many transactions landed in the last 24 hours, and a dormant or recently-active label. Does not spend USDC. Pass one base58 Solana address. Invalid addresses return an error and do not ask for payment. Upgrade to wallet_quick for a copy-trade screen, wallet_profile for priced holdings, or wallet_funding for the first SOL funder and cluster.","price":"$0","amount":"0","inputSchema":{"type":"object","properties":{"address":{"type":"string","description":"Solana wallet address in base58 (32 to 44 characters). Invalid addresses return HTTP 400. This route is free."}},"required":["address"]},"mcpTool":"wallet_preview"},{"method":"GET","path":"/token/trending/preview","url":"https://solana-wallet-intel-phi.vercel.app/token/trending/preview","description":"Free top 3 trending Solana tokens with a verdict, liquidity, market cap, age, and pump.fun status. No query. Shares the paid feed cache.","price":"$0","amount":"0"},{"method":"GET","path":"/demo/check","url":"https://solana-wallet-intel-phi.vercel.app/demo/check","description":"Free demo. Try free, then pay per call. Pass one Solana token mint and get a real rug-check: riskScore, riskLevel, a one-line verdict, the top risk flags, liquidity, market cap, age, and pump.fun status. Uses free public data only. Cached 60 seconds per mint and rate-limited to 20 calls a minute per client. The paid routes return every flag, the full on-chain checks, and wallet intelligence.","price":"$0","amount":"0","inputSchema":{"type":"object","properties":{"mint":{"type":"string","description":"Solana token mint in base58 (32 to 44 characters). Invalid mints return HTTP 400. This route is free."}},"required":["mint"]},"mcpTool":"token_check_demo","rateLimit":"20 per minute per client","tryFreeThenPay":true}],"mcp":{"transport":"streamable-http","url":"https://solana-wallet-intel-phi.vercel.app/mcp","instructions":"Try free, then pay per call: call token_check_demo (free rug-check for one mint) or wallet_preview (free wallet teaser) before a paid tool. Unpaid HTTP calls return 402 even when the query is missing or invalid. A signed request with a bad query returns 400 and is not charged. GET /mcp is not supported; POST JSON-RPC.","tools":[{"name":"ping","description":"Free health check. Does not spend USDC. Confirms the MCP server is up and does not read a wallet.","price":"$0","amount":"0"},{"name":"wallet_preview","description":"Free teaser. Call this before any paid wallet tool. Returns SOL balance, last active time, how many transactions landed in the last 24 hours, and a dormant or recently-active label. Does not spend USDC. Pass one base58 Solana address. Invalid addresses return an error and do not ask for payment. Upgrade to wallet_quick for a copy-trade screen, wallet_profile for priced holdings, or wallet_funding for the first SOL funder and cluster.","price":"$0","amount":"0","inputSchema":{"type":"object","properties":{"address":{"type":"string","description":"Solana wallet address in base58 (32 to 44 characters). Invalid addresses return HTTP 400. This route is free."}},"required":["address"]}},{"name":"token_check_demo","description":"Free demo. Try free, then pay per call. Pass one Solana token mint and get a real rug-check: riskScore, riskLevel, a one-line verdict, the top risk flags, liquidity, market cap, age, and pump.fun status. Uses free public data only. Cached 60 seconds per mint and rate-limited to 20 calls a minute per client. The paid routes return every flag, the full on-chain checks, and wallet intelligence.","price":"$0","amount":"0","inputSchema":{"type":"object","properties":{"mint":{"type":"string","description":"Solana token mint in base58 (32 to 44 characters). Invalid mints return HTTP 400. This route is free."}},"required":["mint"]}},{"name":"wallet_profile","description":"Use this when you need priced holdings and windowed PnL for one Solana wallet. Holdings valued in USD, a short plain-language summary, windowed realized and unrealized PnL, win rate, and evidence-backed labels such as active memecoin trader. Includes copyTradeScore and copyTradeGrade: copy-return after a 3s delay and a 3.6% round trip, win rate, sample-size shrinkage, and bot or insider penalties. The score is null when no close lasted at least 3 seconds. txLimit is an integer from 5 to 25 and defaults to 20. Call free wallet_preview first if you only need SOL balance and last-active time, or wallet_quick for a cheaper copy-trade screen. Costs $0.009 USDC (9000 base units) via x402. The same price is charged for HTTP GET /wallet/profile. An unpaid HTTP call returns 402 even when the query is missing or invalid. A signed call with invalid arguments is rejected before settlement and is not charged. A successful result can set cached, stale, and cacheAgeMs. stale true means a previous result was served while a refresh runs or the upstream failed. You are charged only when the tool result is not an error.","price":"$0.009","amount":"9000","inputSchema":{"type":"object","properties":{"address":{"type":"string","description":"Solana wallet address in base58 (32 to 44 characters). Unpaid requests return HTTP 402. A signed request with an invalid address returns HTTP 400 and is not charged."},"txLimit":{"type":"string","description":"Recent signatures to inspect, integer from 5 to 25. Defaults to 20. Unpaid requests return HTTP 402. A signed request with an out-of-range value returns HTTP 400 and is not charged."}},"required":["address"]}},{"name":"token_trending","description":"Call this when you need the Solana memecoins traders are watching and a rug-check before you buy, swap, or recommend one. The list includes liquidity, market cap, pair age, 5m/1h/24h price and volume, buy/sell ratio, pump.fun bonding or graduation, and links to pump.fun, DexScreener, and Solscan. Each token has a one-line verdict, riskScore (0 clean to 100), riskLevel (low, medium, high, or unknown), and a risk breakdown with evidence and confidence: top-10 share, mint and freeze authority, LP lock percent, and sniper or bundle share of early supply. riskLevel is unknown when the holder, authority, LP, and sniper checks are all unread, and maxRisk leaves those tokens out. Holder percent falls back to the public RugCheck report at medium confidence when the public RPC cannot list the largest accounts. A successful RPC holder read is kept. Holder-concentration change over 5m/1h/24h is filled when this process has seen the mint before. A check that cannot be read says so, uses low confidence, and is not flagged. On-chain safety flags are plain-English sentences that fire when the top 10 holders own 50% or more, mint or freeze authority is still active, LP is unlocked, or snipers and bundled wallets took 20% or more of early supply. Market flags are short codes: low_liquidity, thin_volume, newly_launched, extreme_move, wash_suspect, paid_boost. Thin, new, and wash-like books are ranked down. The summary block counts tokens by risk level and names the top movers. limit is an integer from 1 to 25 and defaults to 15. minLiquidity is an optional USD floor. maxRisk is low, medium, high, or an integer from 0 to 100. Costs $0.005 USDC (5000 base units) via x402. The same price is charged for HTTP GET /token/trending. An unpaid HTTP call returns 402 even when the query is missing or invalid. A signed call with invalid arguments is rejected before settlement and is not charged. A successful result can set cached, stale, and cacheAgeMs. stale true means a previous result was served while a refresh runs or the upstream failed. You are charged only when the tool result is not an error.","price":"$0.005","amount":"5000","inputSchema":{"type":"object","properties":{"limit":{"type":"string","description":"How many tokens to return, integer from 1 to 25. Defaults to 15. Unpaid requests return HTTP 402. A signed request with an out-of-range value returns HTTP 400 and is not charged. MCP also accepts a JSON integer."},"minLiquidity":{"type":"string","description":"Optional minimum pool liquidity in USD, a non-negative number such as 15000. Tokens with unknown liquidity are left out. Unpaid requests return HTTP 402. A signed request with a bad value returns HTTP 400 and is not charged. MCP also accepts a JSON number."},"maxRisk":{"type":"string","description":"Optional maximum risk. low, medium, or high keeps tokens at or below that level. An integer from 0 to 100 keeps tokens with riskScore at or below that number. Unknown risk is left out. Unpaid requests return HTTP 402. A signed request with a bad value returns HTTP 400 and is not charged."}},"required":[]}},{"name":"wallet_funding","description":"Use this when you need a wallet's first SOL funder and whether other wallets look like the same operator. Find a wallet's first SOL funder, flag wallets that share that funder or a CEX deposit address, and return a cluster id with plain-language sybil risk reasons. Labeled exchange hot wallets are not used as a cluster. Optional peers compares up to 8 other wallets. Costs $0.009 USDC (9000 base units) via x402. The same price is charged for HTTP GET /wallet/funding. An unpaid HTTP call returns 402 even when the query is missing or invalid. A signed call with invalid arguments is rejected before settlement and is not charged. A successful result can set cached, stale, and cacheAgeMs. stale true means a previous result was served while a refresh runs or the upstream failed. You are charged only when the tool result is not an error.","price":"$0.009","amount":"9000","inputSchema":{"type":"object","properties":{"address":{"type":"string","description":"Solana wallet address in base58 (32 to 44 characters). Unpaid requests return HTTP 402. A signed request with an invalid address returns HTTP 400 and is not charged."},"peers":{"type":"string","description":"Comma-separated peer wallets to compare, up to 8. Each must be base58. The primary address is rejected. Unpaid requests return HTTP 402. A signed request with invalid peers returns HTTP 400 and is not charged. Wallets that share a personal first funder or a CEX deposit address join one cluster."}},"required":["address"]}},{"name":"wallet_quick","description":"Use this for a cheap copy-trade screen before paying for a full profile. Cheap copy-trade screen for one wallet: windowed realized PnL, win rate, closed trades, last active time, bot, exchange, net-winner and dormant flags, plus copyTradeScore and copyTradeGrade (copy-return after a 3s delay and a 3.6% round trip, win rate, sample-size shrinkage, bot and insider penalties). Free teaser at /wallet/preview; full report at /wallet/profile. Costs $0.002 USDC (2000 base units) via x402. The same price is charged for HTTP GET /wallet/quick. An unpaid HTTP call returns 402 even when the query is missing or invalid. A signed call with invalid arguments is rejected before settlement and is not charged. A successful result can set cached, stale, and cacheAgeMs. stale true means a previous result was served while a refresh runs or the upstream failed. You are charged only when the tool result is not an error.","price":"$0.002","amount":"2000","inputSchema":{"type":"object","properties":{"address":{"type":"string","description":"Solana wallet address in base58 (32 to 44 characters). Unpaid requests return HTTP 402. A signed request with an invalid address returns HTTP 400 and is not charged."}},"required":["address"]}},{"name":"wallet_quick_batch","description":"Quick screen (windowed realized PnL, win rate, copyTradeScore, copyTradeGrade, bot, exchange, net-winner and dormant flags) for up to 10 Solana wallets in one paid call, ranked by realized PnL. Pass addresses comma-separated. Costs $0.015 USDC (15000 base units) via x402. The same price is charged for HTTP GET /wallet/quick/batch. An unpaid HTTP call returns 402 even when the query is missing or invalid. A signed call with invalid arguments is rejected before settlement and is not charged. A successful result can set cached, stale, and cacheAgeMs. stale true means a previous result was served while a refresh runs or the upstream failed. You are charged only when the tool result is not an error.","price":"$0.015","amount":"15000","inputSchema":{"type":"object","properties":{"addresses":{"type":"string","description":"1 to 10 comma-separated base58 Solana wallet addresses. Unpaid requests return HTTP 402. A signed request with a bad list returns HTTP 400 and is not charged."}},"required":["addresses"]}}]},"openapi":"https://solana-wallet-intel-phi.vercel.app/openapi.json","llms":"https://solana-wallet-intel-phi.vercel.app/llms.txt","llmsFull":"https://solana-wallet-intel-phi.vercel.app/llms-full.txt","agentCard":"https://solana-wallet-intel-phi.vercel.app/.well-known/agent.json","mcpManifest":"https://solana-wallet-intel-phi.vercel.app/.well-known/mcp.json","health":"https://solana-wallet-intel-phi.vercel.app/health","apiVersion":"1.1.0","sla":{"version":"1.1.0","windowMs":300000,"latency":{"p50Ms":1,"p95Ms":30,"samples":11},"upstream":{"status":"unknown","rateLimited":false,"http429":0,"lastLimitedAt":null,"sources":[]},"cache":{"entries":0,"ageMs":null,"newestAgeMs":null,"ttlMs":null}},"pricingNotes":[{"path":"/token/trending","price":"$0.005","amount":"5000","checks":["top-10 holder share","mint and freeze authority","LP lock or burn status","sniper and bundle share of early supply"],"note":"GET /token/trending costs $0.005 (5000 base units). That price includes holder concentration (top-10 share), mint and freeze authority, LP lock or burn status, and sniper or bundle share of early supply. Each risky result is a plain-English risk flag. The checks are read from free public Solana RPCs. When a check cannot be read, the response says so and does not call the token low risk. If every safety check is unread, riskLevel is unknown and maxRisk leaves it out. Holder percent falls back to the public RugCheck report when the RPC largest-accounts call is empty."}]}