{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_wc83t7w3qfq5","handle":"swapchan","url":"https://wellknown.network/agents/swapchan","links":{"self":"https://wellknown.network/agents/swapchan/record.json","html":"https://wellknown.network/agents/swapchan","markdown":"https://wellknown.network/agents/swapchan/record.md","api":"https://wellknown.network/api/v1/agents/swapchan","status":"https://wellknown.network/api/v1/agents/swapchan/status","claim":"https://wellknown.network/agents/swapchan/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/swapchan/claim.json","badge":"https://wellknown.network/agents/swapchan/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/swapchan/history","tools":"https://wellknown.network/api/v1/agents/swapchan/tools"},"ard":{"identifier":"urn:air:mcp.swapchan.com:server:swapchan","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"SwapChan","summary":"Best-price same-chain and cross-chain EVM swap quotes and unsigned swap transactions.","description":"Best-price same-chain and cross-chain EVM swap quotes and unsigned swap transactions.","publisher":{"name":"TSavo","url":null},"homepage":"https://swapchan.com","repository":"https://github.com/TSavo/SwapCha.in","version":"0.1.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://mcp.swapchan.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-22T04:58:09.222252Z","publishedAt":"2026-10-22T04:58:09.222252Z","registryName":"io.github.TSavo/swapchan"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"commerce.pricing","name":"Pricing & Quotes","confidence":1,"provenance":"derived"},{"slug":"finance.markets","name":"Markets & Trading","confidence":1,"provenance":"derived"},{"slug":"documents.contracts","name":"Contracts & Legal","confidence":0.525,"provenance":"derived"},{"slug":"content.social","name":"Social Media","confidence":0.51,"provenance":"derived"},{"slug":"automation.workflows","name":"Workflow Automation","confidence":0.51,"provenance":"derived"}],"categories":["automation","commerce","content","documents","finance"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 3h ago.","lastOkAt":"2026-10-23T21:26:02.881Z","lastProbedAt":"2026-10-23T21:26:02.881Z","statusComputedAt":"2026-10-23T21:28:24.245Z","reliability30d":{"probes":5,"successRate":1,"p50Ms":496,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":5,"ok":5,"authBoundaryOk":0,"serviceOk":5,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-23T21:26:02.881Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":186,"error":null,"detail":{"tools":[{"name":"get_supported_chains","description":"List the chains SwapChan routes on, each with its chain-chan mascot. Swap-chan says: pick your departure gate! Result includes `display` markdown with chan imag"},{"name":"get_supported_tokens","description":"List tokens SwapChan knows (address, symbol, decimals), optionally for one chain or filtered by symbol/name. Swap-chan keeps the coin purse tidy. Result include"},{"name":"get_quote","description":"Get SwapChan's single best quote (most value landing in the wallet after gas and fees) for a same-chain or cross-chain swap. Read-only, no transaction. Swap-cha"},{"name":"compare_routes","description":"Compare every route SwapChan found, ranked best-first by net USD received, across aggregators and bridges. Pass extra destination chains in alsoToChainIds to co"},{"name":"build_swap_tx","description":"Build the UNSIGNED transaction for the best (or chosen) route, plus any ERC-20 approval needed first and an eth_call simulation when an RPC is configured. Never"},{"name":"get_route_status","description":"Track a submitted swap or cross-chain transfer by source tx hash: pending, done, failed or not_found, plus the destination tx hash once it lands. Swap-chan wave"},{"name":"build_limit_order","description":"Build a gasless CoW Protocol limit order (sell an ERC-20 for at least a target amount, valid until expiry). Returns EIP-712 typed data for the user's wallet to "},{"name":"list_limit_orders","description":"List a wallet's CoW limit orders on one chain with status (open, fulfilled, cancelled, expired), amounts filled and an explorer link. Result includes `display` "},{"name":"cancel_limit_order","description":"Get the EIP-712 OrderCancellations typed data to cancel a CoW limit order off-chain (gasless). The owner signs it; POST {chainId, orderUids:[uid], signature} to"},{"name":"scan_new_tokens","description":"Newest token pairs (GeckoTerminal new pools + DexScreener latest profiles), youngest first. Each token has price, liquidity, volume, price change, age, a quick "},{"name":"scan_trending","description":"Trending tokens (GeckoTerminal trending pools + DexScreener top boosts), most boosted/traded first. Each token has price, liquidity, volume, price change, age, "},{"name":"scan_movers","description":"Tokens with the biggest absolute price change over `window` among new and trending pairs. Each token has price, liquidity, volume, price change, age, a quick ri"},{"name":"token_risk","description":"Deep automated risk check for one token. Solana: Jupiter audit (mint/freeze authority, top-holder concentration, organic score, verified) + RugCheck report (LP "},{"name":"get_wallet_balances","description":"Portfolio for any address, free and keyless. EVM address: native + SwapChan-listed tokens on all 9 EVM chains (or the chains you pass). Solana: SOL + every SPL/"},{"name":"check_approvals","description":"List live ERC-20 allowances an EVM wallet has granted, on one EVM chain. Sources: GoPlus approval index (all chains) + full Approval-log history on Ethereum/Ava"},{"name":"build_revoke_tx","description":"Unsigned transaction that sets an ERC-20 allowance to 0 (approve(spender, 0)) on an EVM chain. The user's wallet signs and sends it; SwapChan never signs. Use a"},{"name":"explain_transaction","description":"Plain-English explanation of any transaction on SwapChan's chains: EVM (decoded token transfers, approvals, method name, fee in USD, swap detection), Solana (si"},{"name":"get_gas","description":"Current network fees on all SwapChan chains: EVM gas price, Solana priority fee, Bitcoin sat/vB, Tron energy fee, each converted to the USD cost of a typical sw"},{"name":"token_info","description":"Everything about one token on an EVM chain or Solana: name/symbol/decimals/supply (on-chain), USD price and FDV, holder count and top holders, creator/owner, mi"},{"name":"resolve_name","description":"Resolve a name to an address or an address to its name: ENS (vitalik.eth, with avatar and twitter), Basenames (jesse.base.eth) and Solana Name Service (toly.sol"},{"name":"watch_token","description":"Add tokens to a price watchlist stored by SwapChan under your watchId. Triggers: upPct/downPct from the price when added (default ±10%), absolute above/below US"},{"name":"list_watches","description":"Show everything on a watchlist (thresholds, prices when added, last check). Result includes `display` markdown with chan images: show it to the user."},{"name":"check_watches","description":"Check every watched token now: current price, % change since added, which thresholds triggered, and better-route alerts for watched swaps. Each item has a swapU"},{"name":"unwatch_token","description":"Remove one item (itemId from list_watches) or, without itemId, the whole watchlist."},{"name":"get_yields","description":"Top yields on SwapChan's chains from DefiLlama: filter by asset (USDC, ETH, SOL...), chain, min TVL (default $1M). Stablecoin pools only by default when no asse"},{"name":"find_money","description":"HEADLINE TOOL. \"Give me your wallet address and I'll find you money.\" Scans one wallet (address, ENS, Basename or SNS) and returns RANKED actions with estimated"},{"name":"build_swap_link","description":"Build a SwapChan deep link that opens swapchan.com with the swap card prefilled and auto-quoted, plus a permanent short link (swapchan.com/s/<id>, never expires"},{"name":"simulate_swap","description":"Dry-run a transaction on a fork of the live chain (eth_simulateV1 with traceTransfers on EVM, simulateTransaction on Solana) and report exact balance changes, g"},{"name":"wallet_history","description":"Recent swaps for a wallet with USD values at swap time (DefiLlama historical prices). EVM: ERC-20 transfers grouped by tx on Ethereum/Base/Arbitrum/Optimism (Bl"},{"name":"wallet_pnl","description":"Per-token realized and unrealized PnL (average-cost basis) from the wallet's visible swap history, priced at swap time. An estimate: transfers/airdrops aren't c"},{"name":"token_pools","description":"All DEX pools for a token (DexScreener): liquidity, 24h volume, buys/sells, pool age, estimated price impact for $1k/$10k/$100k, and LP lock/burn status (GoPlus"},{"name":"whale_watch","description":"Large recent transfers of a token (EVM public-RPC logs, last ~10k blocks), labeled buy/sell against its DEX pools, plus deployer/owner and a dev-selling alert. "},{"name":"contract_reader","description":"Plain-English read of a token/contract: verified source (Sourcify, Routescan), proxy/upgradeability (EIP-1967 slots), owner and whether ownership is renounced, "},{"name":"airdrop_check","description":"Unclaimed rewards and claimables for a wallet: Merkl incentive rewards on 9 EVM chains, legacy contracts (PoWH3D, Fomo3D, EtherDelta, Liquity surplus) with allo"},{"name":"market_context","description":"Crypto market snapshot from free sources: Fear & Greed (30-day history), BTC/ETH/SOL funding rates (Hyperliquid, OKX), stablecoin supply and per-chain stablecoi"},{"name":"rebalance_plan","description":"Given a wallet and target weights (e.g. 50% ETH on Ethereum, 50% USDC on Base), compute the swaps needed from its current holdings, each with a LIVE SwapChan qu"},{"name":"bridge_doctor","description":"Diagnose a bridge/cross-chain transfer by source tx hash: checks LI.FI, Across (needs fromChainId), Relay, deBridge DLN and THORChain in parallel, plus the orig"},{"name":"best_time_to_swap","description":"Gas history for an EVM chain: base fee now vs the last ~1024 blocks (p10/median/p90 + series), a cheap/normal/expensive signal, and the historically cheapest ho"}],"toolCount":38,"toolsHash":"f4009ebfcf2bf4be39967a060523502f371838d2cad9959c94946058609905bd","serverName":"swapchan","capabilities":["tools"],"serverVersion":"0.3.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T15:30:09.053Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":555,"error":null,"detail":{"tools":[{"name":"get_supported_chains","description":"List the chains SwapChan routes on, each with its chain-chan mascot. Swap-chan says: pick your departure gate! Result includes `display` markdown with chan imag"},{"name":"get_supported_tokens","description":"List tokens SwapChan knows (address, symbol, decimals), optionally for one chain or filtered by symbol/name. Swap-chan keeps the coin purse tidy. Result include"},{"name":"get_quote","description":"Get SwapChan's single best quote (most value landing in the wallet after gas and fees) for a same-chain or cross-chain swap. Read-only, no transaction. Swap-cha"},{"name":"compare_routes","description":"Compare every route SwapChan found, ranked best-first by net USD received, across aggregators and bridges. Pass extra destination chains in alsoToChainIds to co"},{"name":"build_swap_tx","description":"Build the UNSIGNED transaction for the best (or chosen) route, plus any ERC-20 approval needed first and an eth_call simulation when an RPC is configured. Never"},{"name":"get_route_status","description":"Track a submitted swap or cross-chain transfer by source tx hash: pending, done, failed or not_found, plus the destination tx hash once it lands. Swap-chan wave"},{"name":"build_limit_order","description":"Build a gasless CoW Protocol limit order (sell an ERC-20 for at least a target amount, valid until expiry). Returns EIP-712 typed data for the user's wallet to "},{"name":"list_limit_orders","description":"List a wallet's CoW limit orders on one chain with status (open, fulfilled, cancelled, expired), amounts filled and an explorer link. Result includes `display` "},{"name":"cancel_limit_order","description":"Get the EIP-712 OrderCancellations typed data to cancel a CoW limit order off-chain (gasless). The owner signs it; POST {chainId, orderUids:[uid], signature} to"},{"name":"scan_new_tokens","description":"Newest token pairs (GeckoTerminal new pools + DexScreener latest profiles), youngest first. Each token has price, liquidity, volume, price change, age, a quick "},{"name":"scan_trending","description":"Trending tokens (GeckoTerminal trending pools + DexScreener top boosts), most boosted/traded first. Each token has price, liquidity, volume, price change, age, "},{"name":"scan_movers","description":"Tokens with the biggest absolute price change over `window` among new and trending pairs. Each token has price, liquidity, volume, price change, age, a quick ri"},{"name":"token_risk","description":"Deep automated risk check for one token. Solana: Jupiter audit (mint/freeze authority, top-holder concentration, organic score, verified) + RugCheck report (LP "},{"name":"get_wallet_balances","description":"Portfolio for any address, free and keyless. EVM address: native + SwapChan-listed tokens on all 9 EVM chains (or the chains you pass). Solana: SOL + every SPL/"},{"name":"check_approvals","description":"List live ERC-20 allowances an EVM wallet has granted, on one EVM chain. Sources: GoPlus approval index (all chains) + full Approval-log history on Ethereum/Ava"},{"name":"build_revoke_tx","description":"Unsigned transaction that sets an ERC-20 allowance to 0 (approve(spender, 0)) on an EVM chain. The user's wallet signs and sends it; SwapChan never signs. Use a"},{"name":"explain_transaction","description":"Plain-English explanation of any transaction on SwapChan's chains: EVM (decoded token transfers, approvals, method name, fee in USD, swap detection), Solana (si"},{"name":"get_gas","description":"Current network fees on all SwapChan chains: EVM gas price, Solana priority fee, Bitcoin sat/vB, Tron energy fee, each converted to the USD cost of a typical sw"},{"name":"token_info","description":"Everything about one token on an EVM chain or Solana: name/symbol/decimals/supply (on-chain), USD price and FDV, holder count and top holders, creator/owner, mi"},{"name":"resolve_name","description":"Resolve a name to an address or an address to its name: ENS (vitalik.eth, with avatar and twitter), Basenames (jesse.base.eth) and Solana Name Service (toly.sol"},{"name":"watch_token","description":"Add tokens to a price watchlist stored by SwapChan under your watchId. Triggers: upPct/downPct from the price when added (default ±10%), absolute above/below US"},{"name":"list_watches","description":"Show everything on a watchlist (thresholds, prices when added, last check). Result includes `display` markdown with chan images: show it to the user."},{"name":"check_watches","description":"Check every watched token now: current price, % change since added, which thresholds triggered, and better-route alerts for watched swaps. Each item has a swapU"},{"name":"unwatch_token","description":"Remove one item (itemId from list_watches) or, without itemId, the whole watchlist."},{"name":"get_yields","description":"Top yields on SwapChan's chains from DefiLlama: filter by asset (USDC, ETH, SOL...), chain, min TVL (default $1M). Stablecoin pools only by default when no asse"}],"toolCount":25,"toolsHash":"abafd1fc791b4838c2279d6fc83d2621a2a93f4e79922938a8e63c95d1687150","serverName":"swapchan","capabilities":["tools"],"serverVersion":"0.2.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T08:31:00.202Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":524,"error":null,"detail":{"tools":[{"name":"get_supported_chains","description":"List the chains SwapChan routes on, each with its chain-chan mascot. Swap-chan says: pick your departure gate! Result includes `display` markdown with chan imag"},{"name":"get_supported_tokens","description":"List tokens SwapChan knows (address, symbol, decimals), optionally for one chain or filtered by symbol/name. Swap-chan keeps the coin purse tidy. Result include"},{"name":"get_quote","description":"Get SwapChan's single best quote (most value landing in the wallet after gas and fees) for a same-chain or cross-chain swap. Read-only, no transaction. Swap-cha"},{"name":"compare_routes","description":"Compare every route SwapChan found, ranked best-first by net USD received, across aggregators and bridges. Pass extra destination chains in alsoToChainIds to co"},{"name":"build_swap_tx","description":"Build the UNSIGNED transaction for the best (or chosen) route, plus any ERC-20 approval needed first and an eth_call simulation when an RPC is configured. Never"},{"name":"get_route_status","description":"Track a submitted swap or cross-chain transfer by source tx hash: pending, done, failed or not_found, plus the destination tx hash once it lands. Swap-chan wave"},{"name":"build_limit_order","description":"Build a gasless CoW Protocol limit order (sell an ERC-20 for at least a target amount, valid until expiry). Returns EIP-712 typed data for the user's wallet to "},{"name":"list_limit_orders","description":"List a wallet's CoW limit orders on one chain with status (open, fulfilled, cancelled, expired), amounts filled and an explorer link. Result includes `display` "},{"name":"cancel_limit_order","description":"Get the EIP-712 OrderCancellations typed data to cancel a CoW limit order off-chain (gasless). The owner signs it; POST {chainId, orderUids:[uid], signature} to"},{"name":"scan_new_tokens","description":"Newest token pairs (GeckoTerminal new pools + DexScreener latest profiles), youngest first. Each token has price, liquidity, volume, price change, age, a quick "},{"name":"scan_trending","description":"Trending tokens (GeckoTerminal trending pools + DexScreener top boosts), most boosted/traded first. Each token has price, liquidity, volume, price change, age, "},{"name":"scan_movers","description":"Tokens with the biggest absolute price change over `window` among new and trending pairs. Each token has price, liquidity, volume, price change, age, a quick ri"},{"name":"token_risk","description":"Deep automated risk check for one token. Solana: Jupiter audit (mint/freeze authority, top-holder concentration, organic score, verified) + RugCheck report (LP "},{"name":"get_wallet_balances","description":"Portfolio for any address, free and keyless. EVM address: native + SwapChan-listed tokens on all 9 EVM chains (or the chains you pass). Solana: SOL + every SPL/"},{"name":"check_approvals","description":"List live ERC-20 allowances an EVM wallet has granted, on one EVM chain. Sources: GoPlus approval index (all chains) + full Approval-log history on Ethereum/Ava"},{"name":"build_revoke_tx","description":"Unsigned transaction that sets an ERC-20 allowance to 0 (approve(spender, 0)) on an EVM chain. The user's wallet signs and sends it; SwapChan never signs. Use a"},{"name":"explain_transaction","description":"Plain-English explanation of any transaction on SwapChan's chains: EVM (decoded token transfers, approvals, method name, fee in USD, swap detection), Solana (si"},{"name":"get_gas","description":"Current network fees on all SwapChan chains: EVM gas price, Solana priority fee, Bitcoin sat/vB, Tron energy fee, each converted to the USD cost of a typical sw"},{"name":"token_info","description":"Everything about one token on an EVM chain or Solana: name/symbol/decimals/supply (on-chain), USD price and FDV, holder count and top holders, creator/owner, mi"},{"name":"resolve_name","description":"Resolve a name to an address or an address to its name: ENS (vitalik.eth, with avatar and twitter), Basenames (jesse.base.eth) and Solana Name Service (toly.sol"},{"name":"watch_token","description":"Add tokens to a price watchlist stored by SwapChan under your watchId. Triggers: upPct/downPct from the price when added (default ±10%), absolute above/below US"},{"name":"list_watches","description":"Show everything on a watchlist (thresholds, prices when added, last check). Result includes `display` markdown with chan images: show it to the user."},{"name":"check_watches","description":"Check every watched token now: current price, % change since added, which thresholds triggered, and better-route alerts for watched swaps. Each item has a swapU"},{"name":"unwatch_token","description":"Remove one item (itemId from list_watches) or, without itemId, the whole watchlist."},{"name":"get_yields","description":"Top yields on SwapChan's chains from DefiLlama: filter by asset (USDC, ETH, SOL...), chain, min TVL (default $1M). Stablecoin pools only by default when no asse"}],"toolCount":25,"toolsHash":"abafd1fc791b4838c2279d6fc83d2621a2a93f4e79922938a8e63c95d1687150","serverName":"swapchan","capabilities":["tools"],"serverVersion":"0.2.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T02:25:25.786Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":1239,"error":null,"detail":{"tools":[{"name":"get_supported_chains","description":"List the chains SwapChan routes on, each with its chain-chan mascot. Swap-chan says: pick your departure gate! Result includes `display` markdown with chan imag"},{"name":"get_supported_tokens","description":"List tokens SwapChan knows (address, symbol, decimals), optionally for one chain or filtered by symbol/name. Swap-chan keeps the coin purse tidy. Result include"},{"name":"get_quote","description":"Get SwapChan's single best quote (most value landing in the wallet after gas and fees) for a same-chain or cross-chain swap. Read-only, no transaction. Swap-cha"},{"name":"compare_routes","description":"Compare every route SwapChan found, ranked best-first by net USD received, across aggregators and bridges. Pass extra destination chains in alsoToChainIds to co"},{"name":"build_swap_tx","description":"Build the UNSIGNED transaction for the best (or chosen) route, plus any ERC-20 approval needed first and an eth_call simulation when an RPC is configured. Never"},{"name":"get_route_status","description":"Track a submitted swap or cross-chain transfer by source tx hash: pending, done, failed or not_found, plus the destination tx hash once it lands. Swap-chan wave"},{"name":"build_limit_order","description":"Build a gasless CoW Protocol limit order (sell an ERC-20 for at least a target amount, valid until expiry). Returns EIP-712 typed data for the user's wallet to "},{"name":"list_limit_orders","description":"List a wallet's CoW limit orders on one chain with status (open, fulfilled, cancelled, expired), amounts filled and an explorer link. Result includes `display` "},{"name":"cancel_limit_order","description":"Get the EIP-712 OrderCancellations typed data to cancel a CoW limit order off-chain (gasless). The owner signs it; POST {chainId, orderUids:[uid], signature} to"},{"name":"scan_new_tokens","description":"Newest token pairs (GeckoTerminal new pools + DexScreener latest profiles), youngest first. Each token has price, liquidity, volume, price change, age, a quick "},{"name":"scan_trending","description":"Trending tokens (GeckoTerminal trending pools + DexScreener top boosts), most boosted/traded first. Each token has price, liquidity, volume, price change, age, "},{"name":"scan_movers","description":"Tokens with the biggest absolute price change over `window` among new and trending pairs. Each token has price, liquidity, volume, price change, age, a quick ri"},{"name":"token_risk","description":"Deep automated risk check for one token. Solana: Jupiter audit (mint/freeze authority, top-holder concentration, organic score, verified) + RugCheck report (LP "}],"toolCount":13,"toolsHash":"41f259e97f7c433d7ed90079a1cade21cc810e1f7ab3b9275ef1079d0b918197","serverName":"swapchan","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T20:26:42.822Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":451,"error":null,"detail":{"tools":[{"name":"get_supported_chains","description":"List the chains SwapChan routes on, each with its chain-chan mascot. Swap-chan says: pick your departure gate! Result includes `display` markdown with chan imag"},{"name":"get_supported_tokens","description":"List tokens SwapChan knows (address, symbol, decimals), optionally for one chain or filtered by symbol/name. Swap-chan keeps the coin purse tidy. Result include"},{"name":"get_quote","description":"Get SwapChan's single best quote (most value landing in the wallet after gas and fees) for a same-chain or cross-chain swap. Read-only, no transaction. Swap-cha"},{"name":"compare_routes","description":"Compare every route SwapChan found, ranked best-first by net USD received, across aggregators and bridges. Pass extra destination chains in alsoToChainIds to co"},{"name":"build_swap_tx","description":"Build the UNSIGNED transaction for the best (or chosen) route, plus any ERC-20 approval needed first and an eth_call simulation when an RPC is configured. Never"},{"name":"get_route_status","description":"Track a submitted swap or cross-chain transfer by source tx hash: pending, done, failed or not_found, plus the destination tx hash once it lands. Swap-chan wave"},{"name":"build_limit_order","description":"Build a gasless CoW Protocol limit order (sell an ERC-20 for at least a target amount, valid until expiry). Returns EIP-712 typed data for the user's wallet to "},{"name":"list_limit_orders","description":"List a wallet's CoW limit orders on one chain with status (open, fulfilled, cancelled, expired), amounts filled and an explorer link. Result includes `display` "},{"name":"cancel_limit_order","description":"Get the EIP-712 OrderCancellations typed data to cancel a CoW limit order off-chain (gasless). The owner signs it; POST {chainId, orderUids:[uid], signature} to"},{"name":"scan_new_tokens","description":"Newest token pairs (GeckoTerminal new pools + DexScreener latest profiles), youngest first. Each token has price, liquidity, volume, price change, age, a quick "},{"name":"scan_trending","description":"Trending tokens (GeckoTerminal trending pools + DexScreener top boosts), most boosted/traded first. Each token has price, liquidity, volume, price change, age, "},{"name":"scan_movers","description":"Tokens with the biggest absolute price change over `window` among new and trending pairs. Each token has price, liquidity, volume, price change, age, a quick ri"},{"name":"token_risk","description":"Deep automated risk check for one token. Solana: Jupiter audit (mint/freeze authority, top-holder concentration, organic score, verified) + RugCheck report (LP "}],"toolCount":13,"toolsHash":"41f259e97f7c433d7ed90079a1cade21cc810e1f7ab3b9275ef1079d0b918197","serverName":"swapchan","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"get_supported_chains","description":"List the chains SwapChan routes on, each with its chain-chan mascot. Swap-chan says: pick your departure gate! Result includes `display` markdown with chan imag"},{"name":"get_supported_tokens","description":"List tokens SwapChan knows (address, symbol, decimals), optionally for one chain or filtered by symbol/name. Swap-chan keeps the coin purse tidy. Result include"},{"name":"get_quote","description":"Get SwapChan's single best quote (most value landing in the wallet after gas and fees) for a same-chain or cross-chain swap. Read-only, no transaction. Swap-cha"},{"name":"compare_routes","description":"Compare every route SwapChan found, ranked best-first by net USD received, across aggregators and bridges. Pass extra destination chains in alsoToChainIds to co"},{"name":"build_swap_tx","description":"Build the UNSIGNED transaction for the best (or chosen) route, plus any ERC-20 approval needed first and an eth_call simulation when an RPC is configured. Never"},{"name":"get_route_status","description":"Track a submitted swap or cross-chain transfer by source tx hash: pending, done, failed or not_found, plus the destination tx hash once it lands. Swap-chan wave"},{"name":"build_limit_order","description":"Build a gasless CoW Protocol limit order (sell an ERC-20 for at least a target amount, valid until expiry). Returns EIP-712 typed data for the user's wallet to "},{"name":"list_limit_orders","description":"List a wallet's CoW limit orders on one chain with status (open, fulfilled, cancelled, expired), amounts filled and an explorer link. Result includes `display` "},{"name":"cancel_limit_order","description":"Get the EIP-712 OrderCancellations typed data to cancel a CoW limit order off-chain (gasless). The owner signs it; POST {chainId, orderUids:[uid], signature} to"},{"name":"scan_new_tokens","description":"Newest token pairs (GeckoTerminal new pools + DexScreener latest profiles), youngest first. Each token has price, liquidity, volume, price change, age, a quick "},{"name":"scan_trending","description":"Trending tokens (GeckoTerminal trending pools + DexScreener top boosts), most boosted/traded first. Each token has price, liquidity, volume, price change, age, "},{"name":"scan_movers","description":"Tokens with the biggest absolute price change over `window` among new and trending pairs. Each token has price, liquidity, volume, price change, age, a quick ri"},{"name":"token_risk","description":"Deep automated risk check for one token. Solana: Jupiter audit (mint/freeze authority, top-holder concentration, organic score, verified) + RugCheck report (LP "},{"name":"get_wallet_balances","description":"Portfolio for any address, free and keyless. EVM address: native + SwapChan-listed tokens on all 9 EVM chains (or the chains you pass). Solana: SOL + every SPL/"},{"name":"check_approvals","description":"List live ERC-20 allowances an EVM wallet has granted, on one EVM chain. Sources: GoPlus approval index (all chains) + full Approval-log history on Ethereum/Ava"},{"name":"build_revoke_tx","description":"Unsigned transaction that sets an ERC-20 allowance to 0 (approve(spender, 0)) on an EVM chain. The user's wallet signs and sends it; SwapChan never signs. Use a"},{"name":"explain_transaction","description":"Plain-English explanation of any transaction on SwapChan's chains: EVM (decoded token transfers, approvals, method name, fee in USD, swap detection), Solana (si"},{"name":"get_gas","description":"Current network fees on all SwapChan chains: EVM gas price, Solana priority fee, Bitcoin sat/vB, Tron energy fee, each converted to the USD cost of a typical sw"},{"name":"token_info","description":"Everything about one token on an EVM chain or Solana: name/symbol/decimals/supply (on-chain), USD price and FDV, holder count and top holders, creator/owner, mi"},{"name":"resolve_name","description":"Resolve a name to an address or an address to its name: ENS (vitalik.eth, with avatar and twitter), Basenames (jesse.base.eth) and Solana Name Service (toly.sol"},{"name":"watch_token","description":"Add tokens to a price watchlist stored by SwapChan under your watchId. Triggers: upPct/downPct from the price when added (default ±10%), absolute above/below US"},{"name":"list_watches","description":"Show everything on a watchlist (thresholds, prices when added, last check). Result includes `display` markdown with chan images: show it to the user."},{"name":"check_watches","description":"Check every watched token now: current price, % change since added, which thresholds triggered, and better-route alerts for watched swaps. Each item has a swapU"},{"name":"unwatch_token","description":"Remove one item (itemId from list_watches) or, without itemId, the whole watchlist."},{"name":"get_yields","description":"Top yields on SwapChan's chains from DefiLlama: filter by asset (USDC, ETH, SOL...), chain, min TVL (default $1M). Stablecoin pools only by default when no asse"},{"name":"find_money","description":"HEADLINE TOOL. \"Give me your wallet address and I'll find you money.\" Scans one wallet (address, ENS, Basename or SNS) and returns RANKED actions with estimated"},{"name":"build_swap_link","description":"Build a SwapChan deep link that opens swapchan.com with the swap card prefilled and auto-quoted, plus a permanent short link (swapchan.com/s/<id>, never expires"},{"name":"simulate_swap","description":"Dry-run a transaction on a fork of the live chain (eth_simulateV1 with traceTransfers on EVM, simulateTransaction on Solana) and report exact balance changes, g"},{"name":"wallet_history","description":"Recent swaps for a wallet with USD values at swap time (DefiLlama historical prices). EVM: ERC-20 transfers grouped by tx on Ethereum/Base/Arbitrum/Optimism (Bl"},{"name":"wallet_pnl","description":"Per-token realized and unrealized PnL (average-cost basis) from the wallet's visible swap history, priced at swap time. An estimate: transfers/airdrops aren't c"},{"name":"token_pools","description":"All DEX pools for a token (DexScreener): liquidity, 24h volume, buys/sells, pool age, estimated price impact for $1k/$10k/$100k, and LP lock/burn status (GoPlus"},{"name":"whale_watch","description":"Large recent transfers of a token (EVM public-RPC logs, last ~10k blocks), labeled buy/sell against its DEX pools, plus deployer/owner and a dev-selling alert. "},{"name":"contract_reader","description":"Plain-English read of a token/contract: verified source (Sourcify, Routescan), proxy/upgradeability (EIP-1967 slots), owner and whether ownership is renounced, "},{"name":"airdrop_check","description":"Unclaimed rewards and claimables for a wallet: Merkl incentive rewards on 9 EVM chains, legacy contracts (PoWH3D, Fomo3D, EtherDelta, Liquity surplus) with allo"},{"name":"market_context","description":"Crypto market snapshot from free sources: Fear & Greed (30-day history), BTC/ETH/SOL funding rates (Hyperliquid, OKX), stablecoin supply and per-chain stablecoi"},{"name":"rebalance_plan","description":"Given a wallet and target weights (e.g. 50% ETH on Ethereum, 50% USDC on Base), compute the swaps needed from its current holdings, each with a LIVE SwapChan qu"},{"name":"bridge_doctor","description":"Diagnose a bridge/cross-chain transfer by source tx hash: checks LI.FI, Across (needs fromChainId), Relay, deBridge DLN and THORChain in parallel, plus the orig"},{"name":"best_time_to_swap","description":"Gas history for an EVM chain: base fee now vs the last ~1024 blocks (p10/median/p90 + series), a cheap/normal/expensive signal, and the historically cheapest ho"}],"package":null,"toolSurface":{"id":"ts_8c782ttr92x2","endpointId":"ep_9xxnqhd3pr6b","hash":"f4009ebfcf2bf4be39967a060523502f371838d2cad9959c94946058609905bd","toolCount":38,"serverName":"swapchan","serverVersion":"0.3.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-23T21:26:02.886Z","lastSeenAt":"2026-10-23T21:26:02.886Z","observations":1,"toolNames":["get_supported_chains","get_supported_tokens","get_quote","compare_routes","build_swap_tx","get_route_status","build_limit_order","list_limit_orders","cancel_limit_order","scan_new_tokens","scan_trending","scan_movers","token_risk","get_wallet_balances","check_approvals","build_revoke_tx","explain_transaction","get_gas","token_info","resolve_name","watch_token","list_watches","check_watches","unwatch_token","get_yields","find_money","build_swap_link","simulate_swap","wallet_history","wallet_pnl","token_pools","whale_watch","contract_reader","airdrop_check","market_context","rebalance_plan","bridge_doctor","best_time_to_swap"],"distinctSurfaces":3},"endpointFacts":[{"id":"ep_9xxnqhd3pr6b","url":"https://mcp.swapchan.com/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-22T20:26:42.866Z","auth":{"observedAt":"2026-10-22T20:26:43.037Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-22T20:26:43.067Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"swapchan.com","issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validFrom":"2026-10-22T00:37:55.000Z","validTo":"2027-01-20T00:37:54.000Z","daysToExpiry":88,"sanCount":2,"fingerprint256":"10:50:90:D5:4B:93:0D:CA:1E:24:34:F6:DF:0C:EC:60:30:6B:C1:E0:E7:C9:1D:E0:37:A6:C1:C4:C2:2E:17:3B"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.github.TSavo/swapchan","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.TSavo%2Fswapchan","firstSeenAt":"2026-10-22T19:22:43.136Z","fetchedAt":"2026-10-22T19:22:43.136Z","normalizedAt":"2026-10-22T19:22:43.136Z"}]},"firstSeenAt":"2026-10-22T19:22:43.136Z","updatedAt":"2026-10-23T21:30:06.115Z"}