ERC-20 honeypot and rug-pull check on Base and Ethereum, plus free swap route data.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
For agents and people without USDC: prepaid packs paid in EUR by card or Link (100 calls €5.00 · 500 calls €25.00 · 5,000 calls €199.00) — including Link's wallet for agents (one-time card, approved by the human). Returns checkout_url; after payment the success page (Accept: application/json) returns the bundle_token, and it is e-mailed. After: get_signals with bundle_token.
Where the token is sent (optional; Stripe asks otherwise).
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http base-token-audit https://angel.oroboros-design.com/mcp/base-token-audit
For agents and people without USDC: prepaid packs paid in EUR by card or Link (100 calls €5.00 · 500 calls €25.00 · 5,000 calls €199.00) — including Link's wallet for agents (one-time card, approved by the human). Returns checkout_url; after payment the success page (Accept: application/json) returns the bundle_token, and it is e-mailed. After: get_signals with bundle_token.
| Argument | Type | Description |
|---|---|---|
| calls | integer | |
| string | Where the token is sent (optional; Stripe asks otherwise). |
{
"type": "object",
"properties": {
"calls": {
"enum": [
100,
500,
5000
],
"type": "integer",
"default": 100
},
"email": {
"type": "string",
"format": "email",
"description": "Where the token is sent (optional; Stripe asks otherwise)."
}
},
"additionalProperties": false
}Free route data: the best swap route on Base (or Ethereum) for a token you already checked with token_risk — quote, minimum out, approval target and, with taker, the unsigned transaction you sign and send yourself. Technical data and risk-analysis service only: no custody, no order execution, no investment advice. Disclosed: the 0.5 % integrator fee is a technical API provisioning fee for computing the route data, deducted by the aggregator inside the swap and sent to Angel's wallet; buy_amount is already net of it. Run token_risk on buy_token first. After: approve the spender if approval is set, then send the transaction from your own wallet.
| Argument | Type | Description |
|---|---|---|
| chain | string | |
| taker | string | your wallet, to get the unsigned transaction |
| buy_token* | string | 0x address or USDC, WETH, ETH |
| sell_token* | string | 0x address or USDC, WETH, ETH |
| sell_amount* | string | integer in the token's smallest unit (1 USDC = 1000000) |
| slippage_bps | integer |
{
"type": "object",
"required": [
"sell_token",
"buy_token",
"sell_amount"
],
"properties": {
"chain": {
"enum": [
"base",
"ethereum"
],
"type": "string"
},
"taker": {
"type": "string",
"description": "your wallet, to get the unsigned transaction"
},
"buy_token": {
"type": "string",
"description": "0x address or USDC, WETH, ETH"
},
"sell_token": {
"type": "string",
"description": "0x address or USDC, WETH, ETH"
},
"sell_amount": {
"type": "string",
"description": "integer in the token's smallest unit (1 USDC = 1000000)"
},
"slippage_bps": {
"type": "integer",
"maximum": 500,
"minimum": 1
}
},
"additionalProperties": false
}Honeypot and rug-pull check for an ERC-20 on Base or Ethereum before a swap, approval or signature, read straight from the contract: upgradeable proxy (EIP-1967, beacon, clone), owner powers in the bytecode (mint, pause, blacklist, fee or max-tx setters, trading switch, burn from any address), owner renounced or active and the owner's share of supply; known issuers labeled. Risk low, medium or high with reasons. Signals, not investment advice. 0.99 USDC base (new payers 0.99, >10 payments 0.693; 20 pack calls). After: gas-window before you trade on that chain (the result's next field has the exact call).
| Argument | Type | Description |
|---|---|---|
| chain | string | |
| token* | string | |
| payment_tx | string | Hash of a USDC transfer on Base to payTo (≥ the price, ≤ 72 h old) instead of an x402 signature. |
| bundle_token | string | Token from buy_signal_pack, buy_subscription (pro/desk) or buy_enterprise instead of paying per call. |
| payer_address | string | Wallet you pay from: the payment-required error quotes your tier (0 payments base price (new-payer surcharge paused), 1-10 base, >10 -30 %) and, from the third payment, an upgrade with your own spend. |
{
"type": "object",
"required": [
"token"
],
"properties": {
"chain": {
"enum": [
"base",
"ethereum"
],
"type": "string"
},
"token": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$"
},
"payment_tx": {
"type": "string",
"description": "Hash of a USDC transfer on Base to payTo (≥ the price, ≤ 72 h old) instead of an x402 signature."
},
"bundle_token": {
"type": "string",
"description": "Token from buy_signal_pack, buy_subscription (pro/desk) or buy_enterprise instead of paying per call."
},
"payer_address": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "Wallet you pay from: the payment-required error quotes your tier (0 payments base price (new-payer surcharge paused), 1-10 base, >10 -30 %) and, from the third payment, an upgrade with your own spend."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 14, 2026.
Takes a password, API key or token as an argument, so the secret passes through the model's context and chat logs.
Fix: Read credentials from the server's own configuration (environment, OAuth) instead of a tool argument.