MAD Synapse · Bundle Forensics
Who is behind a launch: bundles, insiders, airdrops, serial devs. Solana pump.fun + 18 EVM chains.
Should I use this
Quality & Safety
Findings (5)
- HIGH
- MEDIUMin bundle_forensics
- MEDIUMin bundler_profile
- MEDIUMin creator_launches
- MEDIUMin evm_bundle_forensics
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-forensics": {
"url": "https://agent.maddegen.art/hub/mcp/forensics"
}
}
}Remote endpoints
https://agent.maddegen.art/hub/mcp/forensicsstreamable-httpWhat it can do
Tool inventory
Tools (4)
🟢bundle_forensics(mint)
Who bundled a Solana pump.fun launch: every block-0 wallet labelled sniper bot / bundle / dev-linked, supply bought and still held, holders who got tokens by transfer, serial-dev check, top-10 concentration, RugCheck — plus a back-tested skip/pass verdict. The rug guard MAD snipers use before every buy. Skip rules were tested on 2,221 real caller calls (held-out: stop-outs 10%→5%, rugs 16%→11%): creator launched another coin in the prior 24 h; top-10 wallets >35%; block-0 wallets that also bundled this creator's earlier launches; block-0 buys >20% of supply. Extra flags: RugCheck danger risks, insider wallets >15%, and >10% held by wallets that never bought on the curve (tokens moved in by transfer, the layered-bundle pattern of launch tools like Proxima). "ok:true" means no red flags were found, not that the coin is safe. When to use: To see WHO bundled a launch and get the skip/pass rug guard MAD snipers use; for a scored launch verdict use launch_scan (on the MAD Synapse · Wallets & Risk server, https://agent.maddegen.art/hub/mcp/risk). 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": {
"mint": {
"type": "string",
"pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
"description": "Solana token mint (pump.fun launches get the full bundle view) Base58 Solana address, 32-44 chars."
}
},
"required": [
"mint"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"verdict": {
"type": [
"string",
"null"
]
},
"mint": {
"type": [
"string",
"null"
]
},
"ok": {
"type": [
"boolean",
"null"
]
},
"reasons": {
"type": "array",
"items": {
"type": [
"string",
"null"
]
}
},
"warn": {
"type": "array"
},
"dev": {
"type": [
"object",
"null"
],
"properties": {
"wallet": {
"type": [
"string",
"null"
]
},
"launches24h": {
"type": [
"number",
"null"
]
},
"launches7d": {
"type": [
"number",
"null"
]
},
"sold": {
"type": [
"boolean",
"null"
]
},
"boughtPct": {
"type": [
"number",
"null"
]
},
"heldPct": {
"type": [
"number",
"null"
]
},
"graduated": {
"type": [
"boolean",
"null"
]
},
"age": {
"type": [
"number",
"null"
]
}
}
},
"bundle": {
"type": [
"object",
"null"
],
"properties": {
"known": {
"type": [
"boolean",
"null"
]
},
"wallets": {
"type": [
"number",
"null"
]
},
"pct": {
"type": [
"number",
"null"
]
},
"heldPct": {
"type": [
"number",
"null"
]
},
"bundlePct": {
"type": [
"number",
"null"
]
},
"bundleHeldPct": {
"type": [
"number",
"null"
]
},
"devLinked": {
"type": [
"number",
"null"
]
},
"bots": {
"type": [
"number",
"null"
]
},
"list": {
"type": "array"
}
}
},
"holders": {
"type": [
"object",
"null"
],
"properties": {
"top10": {
"type": [
"number",
"null"
]
},
"top": {
"type": "array",
"items": {
"type": [
"object",
"null"
],
"properties": {}
}
},
"source": {
"type": [
"string",
"null"
]
}
}
},
"rugcheck": {
"type": [
"object",
"null"
],
"properties": {
"score": {
"type": [
"number",
"null"
]
},
"risks": {
"type": "array",
"items": {
"type": [
"object",
"null"
],
"properties": {}
}
},
"insiderNetworks": {
"type": [
"number",
"null"
]
},
"insiderPct": {
"type": [
"number",
"null"
]
},
"transferHolderPct": {
"type": [
"number",
"null"
]
},
"transferHolders": {
"type": "array",
"items": {
"type": [
"object",
"null"
],
"properties": {}
}
},
"creatorTokens": {
"type": [
"number",
"null"
]
},
"top10": {
"type": [
"number",
"null"
]
}
}
},
"ms": {
"type": [
"number",
"null"
]
},
"swap_url": {}
}
}🟢bundler_profile(wallet, limit)
Is this Solana wallet a bundler? Every pump.fun launch it bought in the first 2 slots over the last 10 days, which creators it keeps bundling for, and whether it is a mass sniper bot or a dev's private bundle wallet. From our block-0 registry of every pump.fun launch (non-creator buys in slots 0–1 after creation). kind: "sniper bot" (≥50 launches in 7 days, buys everything), "dev wallet" (most of its block-0 buys are on one or two creators' coins — a private bundle wallet), "bundler", or "not seen". Use it on wallets bundle_forensics lists, or on any wallet you are about to copy. When to use: To check one wallet from bundle_forensics (sniper bot vs a dev's private bundle wallet); for trading performance use pump_wallet (on the MAD Synapse · Pump & LP server, https://agent.maddegen.art/hub/mcp/pump). 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": {
"wallet": {
"type": "string",
"pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
"description": "Solana wallet. Base58 Solana address, 32-44 chars."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 25,
"description": "Range 1-100. Default 25."
}
},
"required": [
"wallet"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"wallet": {
"type": [
"string",
"null"
]
},
"kind": {
"type": [
"string",
"null"
]
},
"block0_launches_10d": {
"type": [
"number",
"null"
]
},
"block0_launches_7d": {
"type": [
"number",
"null"
]
},
"distinct_creators": {
"type": [
"number",
"null"
]
},
"own_launches_10d": {
"type": [
"number",
"null"
]
},
"top_creators": {
"type": "array"
},
"sol_spent_10d": {
"type": [
"number",
"null"
]
},
"recent": {
"type": "array"
},
"window": {
"type": [
"string",
"null"
]
}
}
}🟢creator_launches(creator, limit)
Every pump.fun coin a Solana wallet created in the last 10 days, how many graduated, and the wallets that bundle its launches again and again (its private bundle crew). Serial launchers (more than one coin a day) are the strongest rug signal in our tests: calls on coins whose creator launched another coin in the prior 24 h averaged −11% vs −5% after costs. Repeat block-0 wallets across a creator's launches are its own bundle wallets. When to use: For a dev's launch count and its repeat bundle crew; for graduation stats use pump_dev (on the MAD Synapse · Pump & LP server, https://agent.maddegen.art/hub/mcp/pump). 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": {
"creator": {
"type": "string",
"pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
"description": "creator (dev) wallet. Base58 Solana address, 32-44 chars."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 25,
"description": "Range 1-100. Default 25."
}
},
"required": [
"creator"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"creator": {
"type": [
"string",
"null"
]
},
"launches_10d": {
"type": [
"number",
"null"
]
},
"launches_24h": {
"type": [
"number",
"null"
]
},
"graduated": {
"type": [
"number",
"null"
]
},
"serial": {
"type": [
"boolean",
"null"
]
},
"verdict": {
"type": [
"string",
"null"
]
},
"bundle_crew": {
"type": "array",
"items": {
"type": [
"object",
"null"
],
"properties": {
"wallet": {
"type": [
"string",
"null"
]
},
"launches_bundled": {
"type": [
"number",
"null"
]
},
"kind": {
"type": [
"string",
"null"
]
}
}
}
},
"launches": {
"type": "array",
"items": {
"type": [
"object",
"null"
],
"properties": {
"mint": {
"type": [
"string",
"null"
]
},
"launched": {
"type": [
"string",
"null"
]
},
"graduated": {
"type": [
"boolean",
"null"
]
}
}
}
}
}
}🟢evm_bundle_forensics(chain, token)
Who bundled an EVM token launch (Base, BSC, Ethereum, Arbitrum, Robinhood and 13 more): creation-tx airdrops to fake holders, first-seconds buys, scripted fixed-cadence buying, fresh-wallet and transfer-only holders, dev holdings, exchange-labelled holders, GoPlus contract flags — plus a skip/pass verdict. Replays every ERC-20 Transfer of the token from its first mint on the public RPC, so for young tokens (Base ~4 days, BSC ~6 h of history in budget) holder balances, buys and wallet-to-wallet hand-offs are exact. Launchpads (Four.meme, Uniswap v4 PoolManager, v2/v3 pairs from Dexscreener) are detected; vault/locker contracts that never bought are kept out of the wallet rules, while contracts that DID buy (smart wallets, bundler contracts) count as wallets. Older tokens fall back to GoPlus holders with 527 exchange wallets named. Skip rules: GoPlus honeypot/tax>10%/owner powers; top-10 wallets >35%; first ~2 s of buys >20%; >10% held by wallets that never bought; creation tx airdropping ≥10 wallets or >10%; scripted buying (≥5 buys ≥1% at a regular cadence taking ≥15%); fresh wallets / buyer contracts >15%. Heuristic on EVM (mirrors the back-tested Solana guard); "pass" is not a safety promise. When to use: Bundles and who holds an EVM token launch (Base/BSC first-class); for contract-only flags use evm_token_security (on the MAD Synapse · Wallets & Risk server, https://agent.maddegen.art/hub/mcp/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": {
"chain": {
"type": "string",
"enum": [
"ethereum",
"base",
"arbitrum",
"optimism",
"polygon",
"bsc",
"avalanche",
"linea",
"blast",
"scroll",
"gnosis",
"sonic",
"unichain",
"mantle",
"berachain",
"hyperevm",
"monad",
"robinhood"
],
"default": "base",
"description": "EVM chain: ethereum, base, arbitrum, optimism, polygon, bsc, avalanche, linea, blast, scroll, gnosis, sonic, unichain, mantle, berachain, hyperevm, monad, robinhood. One of \"ethereum\", \"base\", \"arbitrum\", \"optimism\", \"polygon\", \"bsc\", \"avalanche\", \"linea\", \"blast\", \"scroll\", \"gnosis\", \"sonic\", \"unichain\", \"mantle\", \"berachain\", \"hyperevm\", \"monad\", \"robinhood\". Default \"base\"."
},
"token": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "ERC-20 token contract address. 0x + 40 hex chars."
}
},
"required": [
"chain",
"token"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"chain": {
"type": [
"string",
"null"
]
},
"token": {
"type": [
"string",
"null"
]
},
"symbol": {
"type": [
"string",
"null"
]
},
"ok": {
"type": [
"boolean",
"null"
]
},
"verdict": {
"type": [
"string",
"null"
]
},
"reasons": {
"type": "array",
"items": {
"type": [
"string",
"null"
]
}
},
"warn": {
"type": "array"
},
"launch": {
"type": [
"object",
"null"
],
"properties": {
"mint_block": {
"type": [
"number",
"null"
]
},
"open_block": {
"type": [
"number",
"null"
]
},
"block_time_s": {
"type": [
"number",
"null"
]
},
"age_min": {
"type": [
"number",
"null"
]
},
"dev": {
"type": [
"string",
"null"
]
},
"minter": {
"type": [
"string",
"null"
]
},
"launchpad": {
"type": [
"string",
"null"
]
}
}
},
"supply": {
"type": [
"object",
"null"
],
"properties": {
"total": {
"type": [
"string",
"null"
]
},
"decimals": {
"type": [
"number",
"null"
]
},
"dev_held_pct": {
"type": [
"number",
"null"
]
}
}
},
"holders": {
"type": [
"object",
"null"
],
"properties": {
"exact": {
"type": [
"boolean",
"null"
]
},
"contract_held_pct": {
"type": [
"number",
"null"
]
},
"count": {
"type": [
"number",
"null"
]
},
"top10_pct": {
"type": [
"number",
"null"
]
},
"transfer_held_pct": {
"type": [
"number",
"null"
]
},
"fresh_wallet_held_pct": {
"type": [
"number",
"null"
]
},
"top": {
"type": "array",
"items": {
"type": [
"object",
"null"
],
"properties": {}
}
}
}
},
"bundle": {
"type": [
"object",
"null"
],
"properties": {
"first_seconds": {
"type": [
"number",
"null"
]
},
"wallets": {
"type": [
"number",
"null"
]
},
"bought_pct": {
"type": [
"number",
"null"
]
},
"still_held_pct": {
"type": [
"number",
"null"
]
},
"list": {
"type": "array",
"items": {
"type": [
"object",
"null"
],
"properties": {}
}
},
"creation_airdrop": {
"type": [
"object",
"null"
],
"properties": {
"wallets": {
"type": [
"number",
"null"
]
},
"contracts": {
"type": [
"number",
"null"
]
},
"pct": {
"type": [
"number",
"null"
]
}
}
},
"scripted": {}
}
},
"contract": {
"type": [
"object",
"null"
],
"properties": {
"flags": {
"type": "array"
},
"owner": {},
"creator": {},
"buy_tax": {
"type": [
"string",
"null"
]
},
"sell_tax": {
"type": [
"string",
"null"
]
},
"open_source": {
"type": [
"boolean",
"null"
]
}
}
},
"pools": {
"type": "array",
"items": {
"type": [
"object",
"null"
],
"properties": {
"dex": {
"type": [
"string",
"null"
]
},
"pair": {
"type": [
"string",
"null"
]
},
"liquidity_usd": {
"type": [
"number",
"null"
]
},
"created": {
"type": [
"string",
"null"
]
}
}
}
},
"transfers_replayed": {
"type": [
"number",
"null"
]
},
"ms": {
"type": [
"number",
"null"
]
},
"note": {
"type": [
"string",
"null"
]
}
}
}Community
Evidence