MAD Synapse · Wallets & Risk
Pre-trade safety + wallets: Solana/EVM token risk, honeypots, counterparties, balances, txs, CVEs.
Should I use this
Quality & Safety
Findings (9)
- HIGHin vuln_check
- HIGH
- MEDIUMin token_risk
- MEDIUMin launch_scan
- MEDIUMin counterparty_check
- MEDIUMin price
- MEDIUMin erc20_info
- MEDIUMin solana_network
- MEDIUMin vuln_check
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"synapse-risk": {
"url": "https://agent.maddegen.art/hub/mcp/risk"
}
}
}Remote endpoints
https://agent.maddegen.art/hub/mcp/riskstreamable-httpWhat it can do
Tool inventory
Tools (15)
🟢token_risk(mint)
0-100 rug-risk score for any Solana token: mint/freeze authority, Token-2022 traps, holder concentration, liquidity depth — plus pump.fun curve flags. Contract state is read live from Solana (authorities, Token-2022 extensions such as transfer fees, hooks, permanent delegate, pausable), holders from the largest accounts, market from DexScreener. For pump.fun mints the curve forensics flags are merged in. When to use: For any Solana token, pump.fun or not. For pump.fun curve-stage detail use pump_token (on the MAD Synapse · Pump & LP server, https://agent.maddegen.art/hub/mcp/pump); for EVM tokens use evm_token_security. Price: $0.005 per call (10 free/day; after that a payment-required result lists x402 options). Errors: returns isError with a message for invalid input or an upstream failure (not charged).
Input Schema
{
"type": "object",
"properties": {
"mint": {
"type": "string",
"pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
"description": "token mint. Base58 Solana address, 32-44 chars."
}
},
"required": [
"mint"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"mint": {
"type": [
"string",
"null"
]
},
"found": {
"type": [
"boolean",
"null"
]
},
"name": {
"type": [
"string",
"null"
]
},
"symbol": {
"type": [
"string",
"null"
]
},
"price_usd": {
"type": [
"string",
"null"
]
},
"liquidity_usd": {
"type": [
"number",
"null"
]
},
"fdv_usd": {
"type": [
"number",
"null"
]
},
"volume_24h_usd": {
"type": [
"number",
"null"
]
},
"pair_age_hours": {
"type": [
"number",
"null"
]
},
"solana_pairs": {
"type": [
"number",
"null"
]
},
"dex": {
"type": [
"string",
"null"
]
},
"pair_url": {
"type": [
"string",
"null"
]
},
"txns_24h": {
"type": [
"object",
"null"
],
"properties": {
"buys": {
"type": [
"number",
"null"
]
},
"sells": {
"type": [
"number",
"null"
]
}
}
},
"score": {
"type": [
"number",
"null"
]
},
"grade": {
"type": [
"string",
"null"
]
},
"flags": {
"type": "array",
"items": {
"type": [
"object",
"null"
],
"properties": {
"severity": {
"type": [
"string",
"null"
]
},
"msg": {
"type": [
"string",
"null"
]
}
}
}
},
"swap_url": {
"type": [
"string",
"null"
]
},
"known_asset": {
"type": [
"object",
"null"
],
"properties": {
"symbol": {
"type": [
"string",
"null"
]
},
"kind": {
"type": [
"string",
"null"
]
}
}
},
"liquidity_total_usd": {
"type": [
"number",
"null"
]
},
"onchain": {
"type": [
"object",
"null"
],
"properties": {
"program": {
"type": [
"string",
"null"
]
},
"decimals": {
"type": [
"number",
"null"
]
},
"supply": {
"type": [
"number",
"null"
]
},
"mint_authority": {},
"freeze_authority": {},
"holders": {},
"token2022_extensions": {
"type": "array"
},
"metadata_mutable": {
"type": [
"boolean",
"null"
]
},
"pump_fun": {}
}
},
"onchain_error": {},
"disclaimer": {
"type": [
"string",
"null"
]
},
"generated_utc": {
"type": [
"string",
"null"
]
}
}
}🟢launch_scan(mint)
One call, one verdict on a pump.fun launch: 0-100 score with positives and risks, graduation odds, dev record, snipers, holders, flow. Runs pump_token + pump_dev + pump_odds together (cheaper than calling them separately) and folds them into a single score and verdict an agent can act on: strong / neutral / weak / avoid. When to use: The one-call verdict on a pump.fun launch; it combines pump_token (on the MAD Synapse · Pump & LP server, https://agent.maddegen.art/hub/mcp/pump), pump_dev (on the MAD Synapse · Pump & LP server, https://agent.maddegen.art/hub/mcp/pump), pump_odds (on the MAD Synapse · Pump & LP server, https://agent.maddegen.art/hub/mcp/pump) and token_risk signals. Price: $0.025 per call (10 free/day; after that a payment-required result lists x402 options). Errors: returns isError with a message for invalid input or an upstream failure (not charged).
Input Schema
{
"type": "object",
"properties": {
"mint": {
"type": "string",
"pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
"description": "pump.fun token mint. Base58 Solana address, 32-44 chars."
}
},
"required": [
"mint"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"mint": {
"type": [
"string",
"null"
]
},
"symbol": {
"type": [
"string",
"null"
]
},
"score": {
"type": [
"number",
"null"
]
},
"verdict": {
"type": [
"string",
"null"
]
},
"positives": {
"type": "array",
"items": {
"type": [
"string",
"null"
]
}
},
"risks": {
"type": "array",
"items": {
"type": [
"string",
"null"
]
}
},
"graduation": {
"type": [
"object",
"null"
],
"properties": {
"probability_pct": {
"type": [
"number",
"null"
]
},
"base_rate_pct": {
"type": [
"number",
"null"
]
},
"lift": {
"type": [
"number",
"null"
]
},
"comparable_launches": {
"type": [
"number",
"null"
]
},
"cell": {
"type": [
"string",
"null"
]
},
"bucket": {
"type": [
"object",
"null"
],
"properties": {
"unique_buyers_60s": {
"type": [
"string",
"null"
]
},
"buy_sol_60s": {
"type": [
"string",
"null"
]
},
"dev_buy_sol": {
"type": [
"string",
"null"
]
}
}
}
}
},
"curve": {
"type": [
"object",
"null"
],
"properties": {
"progress_pct": {
"type": [
"number",
"null"
]
},
"price_sol": {},
"real_sol_in_curve": {
"type": [
"number",
"null"
]
},
"graduated": {
"type": [
"boolean",
"null"
]
},
"graduated_at": {},
"mcap_sol": {},
"mcap_usd": {},
"peak": {
"type": [
"object",
"null"
],
"properties": {
"mcap_sol": {},
"mcap_usd": {}
}
}
}
},
"flow": {
"type": [
"object",
"null"
],
"properties": {
"trades": {
"type": [
"number",
"null"
]
},
"buys": {
"type": [
"number",
"null"
]
},
"sells": {
"type": [
"number",
"null"
]
},
"unique_wallets": {
"type": [
"number",
"null"
]
},
"buy_sol": {
"type": [
"number",
"null"
]
},
"sell_sol": {
"type": [
"number",
"null"
]
},
"net_sol": {
"type": [
"number",
"null"
]
},
"first_trade": {
"type": [
"string",
"null"
]
},
"last_trade": {
"type": [
"string",
"null"
]
}
}
},
"dev": {
"type": [
"object",
"null"
],
"properties": {
"bought_sol": {
"type": [
"number",
"null"
]
},
"sold_sol": {
"type": [
"number",
"null"
]
},
"holds_pct": {
"type": [
"number",
"null"
]
},
"launches": {
"type": [
"number",
"null"
]
},
"graduated": {
"type": [
"number",
"null"
]
},
"verdict": {
"type": "array",
"items": {
"type": [
"string",
"null"
]
}
}
}
},
"launch_snipers": {
"type": [
"object",
"null"
],
"properties": {
"wallets": {
"type": [
"number",
"null"
]
},
"bought_sol": {
"type": [
"number",
"null"
]
},
"still_hold_pct": {
"type": [
"number",
"null"
]
}
}
},
"top_curve_holders": {
"type": "array",
"items": {
"type": [
"object",
"null"
],
"properties": {
"wallet": {
"type": [
"string",
"null"
]
},
"pct": {
"type": [
"number",
"null"
]
},
"label": {}
}
}
},
"flags": {
"type": "array",
"items": {
"type": [
"string",
"null"
]
}
},
"note": {
"type": [
"string",
"null"
]
},
"swap_url": {}
}
}🟢counterparty_check(wallet)
One-call verdict on a Solana wallet before you deal with it: serial token launcher, fast dumper, trading bot, or clean. Combines the wallet's pump.fun launch history (graduation rate, how fast it sells its own launches) with its trading profile into a risk level and reasons. When to use: Before sending to or trading with a Solana wallet; for full trade stats use pump_wallet (on the MAD Synapse · Pump & LP server, https://agent.maddegen.art/hub/mcp/pump). Price: $0.005 per call (10 free/day; after that a payment-required result lists x402 options). Errors: returns isError with a message for invalid input or an upstream failure (not charged).
Input Schema
{
"type": "object",
"properties": {
"wallet": {
"type": "string",
"pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
"description": "wallet address. Base58 Solana address, 32-44 chars."
}
},
"required": [
"wallet"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"wallet": {
"type": [
"string",
"null"
]
},
"risk_score": {
"type": [
"number",
"null"
]
},
"level": {
"type": [
"string",
"null"
]
},
"reasons": {
"type": "array",
"items": {
"type": [
"string",
"null"
]
}
},
"launches": {
"type": [
"object",
"null"
],
"properties": {
"count": {
"type": [
"number",
"null"
]
},
"graduated": {
"type": [
"number",
"null"
]
},
"last": {
"type": [
"string",
"null"
]
}
}
},
"trading": {
"type": [
"object",
"null"
],
"properties": {
"classification": {
"type": [
"string",
"null"
]
},
"count": {
"type": [
"number",
"null"
]
},
"win_rate_pct": {
"type": [
"number",
"null"
]
},
"realized_pnl_sol": {
"type": [
"number",
"null"
]
},
"median_hold_s": {
"type": [
"number",
"null"
]
},
"best": {
"type": [
"number",
"null"
]
},
"worst": {
"type": [
"number",
"null"
]
}
}
},
"scope": {
"type": [
"string",
"null"
]
}
}
}🟢price(mints)
USD price, 24h change and liquidity for up to 100 Solana mints; flags illiquid (dead) tokens. Jupiter price data with a liquidity floor: anything under $1,000 of liquidity is flagged dead, because round-trip quotes on dead curves look fine and are not. When to use: For Solana mints by address; for majors or other chains by symbol use crypto_price (on the MAD Synapse · Chain server, https://agent.maddegen.art/hub/mcp/chain). Price: free. Errors: returns isError with a message for invalid input or an upstream failure (not charged).
Input Schema
{
"type": "object",
"properties": {
"mints": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
"description": "mint"
},
"minItems": 1,
"maxItems": 100,
"description": "Solana token mint addresses (base58) to price. 1-100 items."
}
},
"required": [
"mints"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"prices": {
"type": "array",
"items": {
"type": [
"object",
"null"
],
"properties": {
"mint": {
"type": [
"string",
"null"
]
},
"usd": {
"type": [
"number",
"null"
]
},
"change_24h_pct": {
"type": [
"number",
"null"
]
},
"liquidity_usd": {
"type": [
"number",
"null"
]
},
"dead": {
"type": [
"boolean",
"null"
]
}
}
}
},
"source": {
"type": [
"string",
"null"
]
}
}
}🟢wallet_holdings(wallet)
Everything a Solana wallet holds — SOL, SPL and Token-2022 tokens — valued in USD and sorted by value. Reads token accounts from both token programs and prices them in one pass. Empty accounts are counted as reclaimable rent. When to use: For Solana wallets; for EVM wallets use evm_address. Price: $0.003 per call (10 free/day; after that a payment-required result lists x402 options). Errors: returns isError with a message for invalid input or an upstream failure (not charged).
Input Schema
{
"type": "object",
"properties": {
"wallet": {
"type": "string",
"pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
"description": "wallet address. Base58 Solana address, 32-44 chars."
}
},
"required": [
"wallet"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"wallet": {
"type": [
"string",
"null"
]
},
"sol": {
"type": [
"number",
"null"
]
},
"sol_usd": {
"type": [
"number",
"null"
]
},
"tokens_usd": {
"type": [
"number",
"null"
]
},
"total_usd": {
"type": [
"number",
"null"
]
},
"tokens": {
"type": "array",
"items": {
"type": [
"object",
"null"
],
"properties": {
"mint": {
"type": [
"string",
"null"
]
},
"amount": {
"type": [
"number",
"null"
]
},
"decimals": {
"type": [
"number",
"null"
]
},
"program": {
"type": [
"string",
"null"
]
},
"usd_price": {
"type": [
"number",
"null"
]
},
"usd_value": {
"type": [
"number",
"null"
]
},
"dead": {
"type": [
"boolean",
"null"
]
}
}
}
},
"token_accounts": {
"type": [
"number",
"null"
]
},
"empty_accounts": {
"type": [
"object",
"null"
],
"properties": {
"count": {
"type": [
"number",
"null"
]
},
"reclaimable_sol": {
"type": [
"number",
"null"
]
}
}
}
}
}🟢tx_explain(signature)
Turns any Solana transaction signature into plain facts: status, fee, programs by name, SOL and token balance changes per owner, a one-line summary. Works for swaps, pump.fun trades, LP moves, transfers and failures (includes the error log lines). When to use: For Solana signatures; for 0x hashes use evm_tx. Price: $0.003 per call (10 free/day; after that a payment-required result lists x402 options). Errors: returns isError with a message for invalid input or an upstream failure (not charged).
Input Schema
{
"type": "object",
"properties": {
"signature": {
"type": "string",
"pattern": "^[1-9A-HJ-NP-Za-km-z]{64,90}$",
"description": "Solana transaction signature (base58, 64-90 chars)."
}
},
"required": [
"signature"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"found": {
"type": [
"boolean",
"null"
]
},
"signature": {
"type": [
"string",
"null"
]
},
"slot": {
"type": [
"number",
"null"
]
},
"time": {
"type": [
"string",
"null"
]
},
"status": {
"type": [
"string",
"null"
]
},
"error": {},
"fee_sol": {
"type": [
"number",
"null"
]
},
"compute_units": {
"type": [
"number",
"null"
]
},
"signers": {
"type": "array",
"items": {
"type": [
"string",
"null"
]
}
},
"programs": {
"type": "array",
"items": {
"type": [
"object",
"null"
],
"properties": {
"program": {
"type": [
"string",
"null"
]
},
"name": {
"type": [
"string",
"null"
]
},
"instructions": {
"type": [
"number",
"null"
]
}
}
}
},
"sol_changes": {
"type": "array",
"items": {
"type": [
"object",
"null"
],
"properties": {
"account": {
"type": [
"string",
"null"
]
},
"sol": {
"type": [
"number",
"null"
]
}
}
}
},
"token_changes": {
"type": "array"
},
"summary": {
"type": [
"string",
"null"
]
},
"error_logs": {}
}
}🟢evm_token_security(token, chain)
Honeypot and scam check for any ERC-20 on 15+ EVM chains: buy/sell tax, can the owner mint, pause, blacklist or change taxes, proxy, holder concentration, LP lock. GoPlus Security token analysis plus a plain verdict. Flags are the ones that actually drain buyers: honeypot (cannot sell), sell tax above 10%, hidden owner, owner can modify balances or taxes, trading cooldown, blacklist, self-destruct. Top holders and LP holders with lock status included. When to use: For ERC-20s; for Solana tokens use token_risk. Price: $0.005 per call (10 free/day; after that a payment-required result lists x402 options). Errors: returns isError with a message for invalid input or an upstream failure (not charged).
Input Schema
{
"type": "object",
"properties": {
"token": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "ERC-20 contract address (0x + 40 hex)."
},
"chain": {
"type": "string",
"enum": [
"ethereum",
"base",
"arbitrum",
"optimism",
"polygon",
"bsc",
"avalanche",
"linea",
"blast",
"scroll",
"gnosis",
"sonic",
"unichain",
"mantle",
"berachain",
"hyperevm",
"monad"
],
"default": "ethereum",
"description": "EVM chain: ethereum, base, arbitrum, optimism, polygon, bsc, avalanche, linea, blast, scroll, gnosis, sonic, unichain, mantle, berachain, hyperevm, monad. One of \"ethereum\", \"base\", \"arbitrum\", \"optimism\", \"polygon\", \"bsc\", \"avalanche\", \"linea\", \"blast\", \"scroll\", \"gnosis\", \"sonic\", \"unichain\", \"mantle\", \"berachain\", \"hyperevm\", \"monad\". Default \"ethereum\"."
}
},
"required": [
"token"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"found": {
"type": [
"boolean",
"null"
]
},
"chain": {
"type": [
"string",
"null"
]
},
"token": {
"type": [
"string",
"null"
]
},
"name": {
"type": [
"string",
"null"
]
},
"symbol": {
"type": [
"string",
"null"
]
},
"total_supply": {
"type": [
"string",
"null"
]
},
"holders": {
"type": [
"number",
"null"
]
},
"owner": {
"type": [
"string",
"null"
]
},
"creator": {
"type": [
"string",
"null"
]
},
"verdict": {
"type": [
"string",
"null"
]
},
"red_flags": {
"type": "array",
"items": {
"type": [
"string",
"null"
]
}
},
"flags": {
"type": [
"object",
"null"
],
"properties": {
"honeypot": {
"type": [
"boolean",
"null"
]
},
"cannot_sell_all": {},
"cannot_buy": {
"type": [
"boolean",
"null"
]
},
"buy_tax_pct": {
"type": [
"number",
"null"
]
},
"sell_tax_pct": {
"type": [
"number",
"null"
]
},
"transfer_tax_pct": {},
"open_source": {
"type": [
"boolean",
"null"
]
},
"proxy": {
"type": [
"boolean",
"null"
]
},
"mintable": {
"type": [
"boolean",
"null"
]
},
"owner_can_change_balance": {
"type": [
"boolean",
"null"
]
},
"hidden_owner": {
"type": [
"boolean",
"null"
]
},
"can_take_back_ownership": {
"type": [
"boolean",
"null"
]
},
"self_destruct": {
"type": [
"boolean",
"null"
]
},
"external_call": {
"type": [
"boolean",
"null"
]
},
"tax_modifiable": {
"type": [
"boolean",
"null"
]
},
"personal_tax_modifiable": {
"type": [
"boolean",
"null"
]
},
"trading_cooldown": {
"type": [
"boolean",
"null"
]
},
"transfer_pausable": {
"type": [
"boolean",
"null"
]
},
"blacklist": {
"type": [
"boolean",
"null"
]
},
"whitelist": {
"type": [
"boolean",
"null"
]
},
"anti_whale": {
"type": [
"boolean",
"null"
]
},
"airdrop_scam": {},
"fake_token": {},
"trust_list": {
"type": [
"boolean",
"null"
]
}
}
},
"top_holders": {
"type": "array",
"items": {
"type": [
"object",
"null"
],
"properties": {
"address": {
"type": [
"string",
"null"
]
},
"pct": {
"type": [
"number",
"null"
]
},
"is_contract": {
"type": [
"boolean",
"null"
]
},
"locked": {
"type": [
"boolean",
"null"
]
},
"tag": {}
}
}
},
"lp": {
"type": "array"
},
"lp_holders": {
"type": "array"
},
"source": {
"type": [
"string",
"null"
]
},
"explorer": {
"type": [
"string",
"null"
]
}
}
}🟢evm_address(address, chain)
Native balance (with USD), transaction count, contract or wallet, ENS name — for any address on 17 EVM chains at once or one chain. Reads straight from each chain's RPC. chain="all" checks every supported chain in parallel and returns only where the address has balance, transactions or code — the quick "where is this wallet active" answer. When to use: For EVM addresses; for Solana wallets use wallet_holdings. Price: $0.002 per call (10 free/day; after that a payment-required result lists x402 options). Errors: returns isError with a message for invalid input or an upstream failure (not charged).
Input Schema
{
"type": "object",
"properties": {
"address": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "EVM wallet or contract address (0x + 40 hex)."
},
"chain": {
"type": "string",
"enum": [
"all",
"ethereum",
"base",
"arbitrum",
"optimism",
"polygon",
"bsc",
"avalanche",
"linea",
"blast",
"scroll",
"gnosis",
"sonic",
"unichain",
"mantle",
"berachain",
"hyperevm",
"monad"
],
"default": "all",
"description": "Chain to read, or \"all\" to check every supported chain. One of \"all\", \"ethereum\", \"base\", \"arbitrum\", \"optimism\", \"polygon\", \"bsc\", \"avalanche\", \"linea\", \"blast\", \"scroll\", \"gnosis\", \"sonic\", \"unichain\", \"mantle\", \"berachain\", \"hyperevm\", \"monad\". Default \"all\"."
}
},
"required": [
"address"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"address": {
"type": [
"string",
"null"
]
},
"ens_name": {
"type": [
"string",
"null"
]
},
"total_native_usd": {
"type": [
"number",
"null"
]
},
"chains_checked": {
"type": [
"number",
"null"
]
},
"chains": {
"type": "array",
"items": {
"type": [
"object",
"null"
],
"properties": {
"chain": {
"type": [
"string",
"null"
]
},
"native_symbol": {
"type": [
"string",
"null"
]
},
"native_balance": {
"type": [
"number",
"null"
]
},
"usd": {
"type": [
"number",
"null"
]
},
"tx_count": {
"type": [
"number",
"null"
]
},
"kind": {
"type": [
"string",
"null"
]
},
"delegated_to": {
"type": [
"string",
"null"
]
},
"explorer": {
"type": [
"string",
"null"
]
}
}
}
}
}
}🟢erc20_info(token, wallet, chain)
Name, symbol, decimals, total supply and USD price of any ERC-20 — plus a wallet's balance of it — read on chain. Direct contract calls (name/symbol/decimals/totalSupply/balanceOf) on the chosen EVM chain, priced via DefiLlama. Works for any token, listed or not. When to use: For token facts; for scam/honeypot checks use evm_token_security. Price: $0.002 per call (10 free/day; after that a payment-required result lists x402 options). Errors: returns isError with a message for invalid input or an upstream failure (not charged).
Input Schema
{
"type": "object",
"properties": {
"token": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "ERC-20 contract address (0x + 40 hex)."
},
"wallet": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "optional holder. 0x + 40 hex chars."
},
"chain": {
"type": "string",
"enum": [
"ethereum",
"base",
"arbitrum",
"optimism",
"polygon",
"bsc",
"avalanche",
"linea",
"blast",
"scroll",
"gnosis",
"sonic",
"unichain",
"mantle",
"berachain",
"hyperevm",
"monad"
],
"default": "ethereum",
"description": "EVM chain: ethereum, base, arbitrum, optimism, polygon, bsc, avalanche, linea, blast, scroll, gnosis, sonic, unichain, mantle, berachain, hyperevm, monad. One of \"ethereum\", \"base\", \"arbitrum\", \"optimism\", \"polygon\", \"bsc\", \"avalanche\", \"linea\", \"blast\", \"scroll\", \"gnosis\", \"sonic\", \"unichain\", \"mantle\", \"berachain\", \"hyperevm\", \"monad\". Default \"ethereum\"."
}
},
"required": [
"token"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"found": {
"type": [
"boolean",
"null"
]
},
"chain": {
"type": [
"string",
"null"
]
},
"token": {
"type": [
"string",
"null"
]
},
"name": {
"type": [
"string",
"null"
]
},
"symbol": {
"type": [
"string",
"null"
]
},
"decimals": {
"type": [
"number",
"null"
]
},
"total_supply": {
"type": [
"number",
"null"
]
},
"price_usd": {
"type": [
"number",
"null"
]
},
"fdv_usd": {
"type": [
"number",
"null"
]
},
"wallet": {
"type": [
"string",
"null"
]
},
"balance": {
"type": [
"number",
"null"
]
},
"balance_usd": {
"type": [
"number",
"null"
]
},
"explorer": {
"type": [
"string",
"null"
]
}
}
}🟢evm_tx(hash, chain)
Any EVM transaction in plain terms: status, from/to, value, fee in native and USD, method called, every ERC-20 transfer decoded with symbols and amounts. Fetches the transaction and receipt from the chain, decodes ERC-20 Transfer events (token symbols/decimals read on chain), and prices the fee. When to use: For 0x hashes; for Solana signatures use tx_explain. Price: $0.003 per call (10 free/day; after that a payment-required result lists x402 options). Errors: returns isError with a message for invalid input or an upstream failure (not charged).
Input Schema
{
"type": "object",
"properties": {
"hash": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{64}$",
"description": "EVM transaction hash (0x + 64 hex)."
},
"chain": {
"type": "string",
"enum": [
"ethereum",
"base",
"arbitrum",
"optimism",
"polygon",
"bsc",
"avalanche",
"linea",
"blast",
"scroll",
"gnosis",
"sonic",
"unichain",
"mantle",
"berachain",
"hyperevm",
"monad"
],
"default": "ethereum",
"description": "EVM chain: ethereum, base, arbitrum, optimism, polygon, bsc, avalanche, linea, blast, scroll, gnosis, sonic, unichain, mantle, berachain, hyperevm, monad. One of \"ethereum\", \"base\", \"arbitrum\", \"optimism\", \"polygon\", \"bsc\", \"avalanche\", \"linea\", \"blast\", \"scroll\", \"gnosis\", \"sonic\", \"unichain\", \"mantle\", \"berachain\", \"hyperevm\", \"monad\". Default \"ethereum\"."
}
},
"required": [
"hash"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"found": {
"type": [
"boolean",
"null"
]
},
"chain": {
"type": [
"string",
"null"
]
},
"hash": {
"type": [
"string",
"null"
]
},
"status": {
"type": [
"string",
"null"
]
},
"block": {
"type": [
"number",
"null"
]
},
"time": {
"type": [
"string",
"null"
]
},
"from": {
"type": [
"string",
"null"
]
},
"to": {
"type": [
"string",
"null"
]
},
"contract_created": {},
"value": {
"type": [
"number",
"null"
]
},
"value_symbol": {
"type": [
"string",
"null"
]
},
"value_usd": {
"type": [
"number",
"null"
]
},
"method_selector": {
"type": [
"string",
"null"
]
},
"plain_transfer": {
"type": [
"boolean",
"null"
]
},
"gas_used": {
"type": [
"number",
"null"
]
},
"gas_price_gwei": {
"type": [
"number",
"null"
]
},
"fee_native": {
"type": [
"number",
"null"
]
},
"fee_usd": {
"type": [
"number",
"null"
]
},
"token_transfers": {
"type": "array"
},
"logs": {
"type": [
"number",
"null"
]
},
"explorer": {
"type": [
"string",
"null"
]
}
}
}🟢ens_resolve(query)
ENS name → address and address → primary name, with avatar, twitter, github, url and email text records. Reads ENS on Ethereum mainnet (forward resolution verified; reverse lookup confirmed by forward-resolving the name). Price: free. Errors: returns isError with a message for invalid input or an upstream failure (not charged).
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "vitalik.eth or 0x address"
}
},
"required": [
"query"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"found": {
"type": [
"boolean",
"null"
]
},
"name": {
"type": [
"string",
"null"
]
},
"address": {
"type": [
"string",
"null"
]
},
"records": {
"type": [
"object",
"null"
],
"properties": {
"avatar": {
"type": [
"string",
"null"
]
},
"url": {
"type": [
"string",
"null"
]
},
"com.twitter": {
"type": [
"string",
"null"
]
},
"com.github": {
"type": [
"string",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
}
}
},
"app": {
"type": [
"string",
"null"
]
}
}
}🟢solana_network
Solana right now: TPS (total and non-vote), slot and block height, epoch progress and ETA, priority-fee percentiles, cluster version. Read from mainnet RPC: recent performance samples, epoch info, prioritization fees. When to use: For Solana fees/TPS; for EVM and BTC fee costs use gas_now (on the MAD Synapse · Chain server, https://agent.maddegen.art/hub/mcp/chain). Price: free. Errors: returns isError with a message for invalid input or an upstream failure (not charged).
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"tps_total": {
"type": [
"number",
"null"
]
},
"tps_non_vote": {
"type": [
"number",
"null"
]
},
"avg_slot_ms": {
"type": [
"number",
"null"
]
},
"slot": {
"type": [
"number",
"null"
]
},
"block_height": {
"type": [
"number",
"null"
]
},
"epoch": {
"type": [
"number",
"null"
]
},
"epoch_progress_pct": {
"type": [
"number",
"null"
]
},
"epoch_ends_in_hours": {
"type": [
"number",
"null"
]
},
"priority_fee_micro_lamports_per_cu": {
"type": [
"object",
"null"
],
"properties": {
"p25": {
"type": [
"number",
"null"
]
},
"p50": {
"type": [
"number",
"null"
]
},
"p75": {
"type": [
"number",
"null"
]
},
"p90": {
"type": [
"number",
"null"
]
},
"slot_sampled": {
"type": [
"number",
"null"
]
},
"non_vote_txs_sampled": {
"type": [
"number",
"null"
]
},
"share_paying_no_priority_pct": {
"type": [
"number",
"null"
]
}
}
},
"version": {
"type": [
"string",
"null"
]
},
"window_minutes": {
"type": [
"number",
"null"
]
}
}
}🟢bitcoin_network
Bitcoin right now: fee rates, mempool size, block height, next difficulty adjustment (% and ETA), hashrate. From mempool.space public API. Price: free. Errors: returns isError with a message for invalid input or an upstream failure (not charged).
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"block_height": {
"type": [
"number",
"null"
]
},
"fees_sat_per_vb": {
"type": [
"object",
"null"
],
"properties": {
"fastestFee": {
"type": [
"number",
"null"
]
},
"halfHourFee": {
"type": [
"number",
"null"
]
},
"hourFee": {
"type": [
"number",
"null"
]
},
"economyFee": {
"type": [
"number",
"null"
]
},
"minimumFee": {
"type": [
"number",
"null"
]
}
}
},
"mempool": {
"type": [
"object",
"null"
],
"properties": {
"tx_count": {
"type": [
"number",
"null"
]
},
"vsize_mb": {
"type": [
"number",
"null"
]
},
"total_fee_btc": {
"type": [
"number",
"null"
]
}
}
},
"difficulty_adjustment": {
"type": [
"object",
"null"
],
"properties": {
"progress_pct": {
"type": [
"number",
"null"
]
},
"estimated_change_pct": {
"type": [
"number",
"null"
]
},
"remaining_blocks": {
"type": [
"number",
"null"
]
},
"eta": {
"type": [
"string",
"null"
]
}
}
},
"hashrate_eh_s": {
"type": [
"number",
"null"
]
},
"difficulty": {
"type": [
"number",
"null"
]
},
"source": {
"type": [
"string",
"null"
]
}
}
}🟢address_check(address)
Is this a valid address, and for which chain? EVM (with checksum fix), Solana (on-curve wallet vs PDA), Bitcoin (legacy/P2SH/SegWit/Taproot), Tron, Cosmos-style bech32. Pure checksum and format validation, no network calls. Catches the typo that would send funds to nowhere, and tells a Solana wallet (on curve) from a program-derived address. Price: free. Errors: returns isError with a message for invalid input or an upstream failure (not charged).
Input Schema
{
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "Any string that might be a crypto address (EVM, Solana, Bitcoin, Tron, etc.)."
}
},
"required": [
"address"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"address": {
"type": [
"string",
"null"
]
},
"matches": {
"type": "array",
"items": {
"type": [
"object",
"null"
],
"properties": {
"chain": {
"type": [
"string",
"null"
]
},
"valid": {
"type": [
"boolean",
"null"
]
},
"checksummed": {
"type": [
"string",
"null"
]
},
"checksum_was_valid": {
"type": [
"string",
"null"
]
},
"note": {
"type": [
"string",
"null"
]
}
}
}
},
"valid": {
"type": [
"boolean",
"null"
]
}
}
}🟢vuln_check(packages, name, version, ecosystem)
Known security vulnerabilities for a package version (npm, PyPI, crates, Go, Maven, NuGet, RubyGems, Packagist) with severity, CVE/GHSA ids, and the version that fixes each. Queries OSV.dev, the open vulnerability database that aggregates GitHub advisories, PyPA, RustSec, Go and more. Pass up to 50 packages at once as "ecosystem:name@version" to audit a lockfile. When to use: For CVEs in one package version; for general package facts use package_info (on the MAD Synapse · Web & Research server, https://agent.maddegen.art/hub/mcp/web). Price: $0.002 per call (10 free/day; after that a payment-required result lists x402 options). Errors: returns isError with a message for invalid input or an upstream failure (not charged).
Input Schema
{
"type": "object",
"properties": {
"packages": {
"type": "array",
"maxItems": 50,
"items": {
"type": "string"
},
"description": "e.g. [\"npm:[email protected]\",\"pypi:[email protected]\"]. 0-50 items."
},
"name": {
"type": "string",
"description": "Exact package name as published."
},
"version": {
"type": "string",
"description": "Exact version to check, e.g. \"4.17.1\"."
},
"ecosystem": {
"type": "string",
"default": "npm",
"description": "Package ecosystem: npm, PyPI, crates.io, Go, Maven, NuGet, RubyGems or Packagist. Default \"npm\"."
}
},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"source": {
"type": [
"string",
"null"
]
},
"checked": {
"type": [
"number",
"null"
]
},
"vulnerable": {
"type": [
"number",
"null"
]
},
"packages": {
"type": "array",
"items": {
"type": [
"object",
"null"
],
"properties": {
"package": {
"type": [
"string",
"null"
]
},
"version": {
"type": [
"string",
"null"
]
},
"vulnerable": {
"type": [
"boolean",
"null"
]
},
"count": {
"type": [
"number",
"null"
]
},
"upgrade_to": {
"type": [
"string",
"null"
]
},
"vulns": {
"type": "array"
}
}
}
}
}
}Community
Evidence