Aether: Base onchain data & token risk (x402)
by francosmit94-web · remote · no sign-in to list tools · v4.0.0 · published by GitHub user francosmit94-web
Base token risk (honeypot sim), prices, balances, Basenames, tx data. Pay-per-call in USDC via x402.
23 tools: 3 do something that can't be undone and 20 change things.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone3Claude Code: ask: see these tools
- Changes things20Claude Code: ask: see these tools
- Only reads0Claude Code: allow
4 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http aether https://aether-x402.vercel.app/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnbase_transfers
The server marks "base_transfers" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "base_transfers" says "transfer": a word for a change that another call does not undo.
- Warnbase_call
The server marks "base_call" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "base_call" says "call": a word for a change.
The server marks "base_estimate_gas" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The input addresses people (input.to): what it sends cannot be taken back.
The input schema at properties.headers.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.headers.description: "Non-credential headers the endpoint needs before its p..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
23 tools
Can't be undone 3Claude Code: ask
base_callSimulate a read-only contract call on Base (eth_call) without sending a transaction: returns the raw result or the revert reason.1 finding
Why it is in this group
- The name "base_call" says "call": a word for a change.
- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "base_call" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "base_call" says "call": a word for a change.
Description, as the server wrote it Simulate a read-only contract call on Base (eth_call) without sending a transaction: returns the raw result or the revert reason. Use it to dry-run a call before signing. Price: $0.01 USDC on Base via x402.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
base_estimate_gasEstimate the gas and the cost in ETH and USD of a Base transaction before signing it.1 finding
Why it is in this group
- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "base_estimate_gas" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The input addresses people (input.to): what it sends cannot be taken back.
Description, as the server wrote it Estimate the gas and the cost in ETH and USD of a Base transaction before signing it. Input: to, and optionally from, data and value. Price: $0.002 USDC on Base via x402.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
base_transfersRecent ERC-20 transfers on Base for a token, a wallet, or both: who sent how much to whom, across up to 2,000 recent blocks (100 results max).1 finding
Why it is in this group
- The name "base_transfers" says "transfer": a word for a change that another call does not undo.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "base_transfers" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "base_transfers" says "transfer": a word for a change that another call does not undo.
Description, as the server wrote it Recent ERC-20 transfers on Base for a token, a wallet, or both: who sent how much to whom, across up to 2,000 recent blocks (100 results max). Price: $0.01 USDC on Base via x402.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
Changes things 20Claude Code: ask
audit_evidenceDoes this write-up back up what it claims?No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Does this write-up back up what it claims? Send up to 40,000 characters of text; get the claims that cite no evidence, contradictions, missing evidence and documentation gaps, with fixes. Deterministic rules, no AI. Rejects text containing secrets. A documentation review, not legal or financial advice. Price: $0.01 USDC on Base via x402.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
audit_x402_payabilityx402 endpoint audit: can a paying agent actually pay this API?1 finding
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Info
The input schema at properties.headers.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.headers.description: "Non-credential headers the endpoint needs before its p..."
Description, as the server wrote it x402 endpoint audit: can a paying agent actually pay this API? Probes any x402 URL and validates its 402 payment requirements (CAIP-2 network, USDC asset, payTo checksum, amount, EIP-712 domain, resource URL, Bazaar discovery). Returns pass, warn or fail, a 0-100 score and a fix for every failure. Price: $0.01 USDC on Base via x402.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
base_allowanceERC-20 allowance check on Base: how much a spender is still approved to move from an owner's token balance, and whether the approval is unlimited.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it ERC-20 allowance check on Base: how much a spender is still approved to move from an owner's token balance, and whether the approval is unlimited. Run before a swap, an approve or a revoke. Input: token, owner, spender. Price: $0.002 USDC on Base via x402.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
base_balanceWallet balance on Base: the native ETH balance of any address, read live from the chain.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Wallet balance on Base: the native ETH balance of any address, read live from the chain. Input: address. Price: $0.001 USDC on Base via x402.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
base_basenameBasename lookup: resolve a Base name such as jesse.base.eth to its wallet address, with avatar and profile text records.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Basename lookup: resolve a Base name such as jesse.base.eth to its wallet address, with avatar and profile text records. Input: name. Price: $0.01 USDC on Base via x402.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
base_blockBase block lookup by number or tag (latest, safe, finalized): timestamp, gas and transaction count.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Base block lookup by number or tag (latest, safe, finalized): timestamp, gas and transaction count. Price: $0.01 USDC on Base via x402.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
base_contractWhat is this Base address?No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it What is this Base address? Wallet (EOA) or smart contract, code size, proxy implementation address, and whether it is an ERC-20, ERC-721 or ERC-1155 token. Price: $0.01 USDC on Base via x402.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
base_erc20_balanceERC-20 token balance of a wallet on Base (USDC or any other token), formatted with symbol and decimals.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it ERC-20 token balance of a wallet on Base (USDC or any other token), formatted with symbol and decimals. Input: wallet address and token address. Price: $0.002 USDC on Base via x402.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
base_gasCurrent gas price on Base in gwei: base fee, suggested priority fee and max fee per gas, read live from the chain.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Current gas price on Base in gwei: base fee, suggested priority fee and max fee per gas, read live from the chain. Price: $0.01 USDC on Base via x402.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
base_nft_metadataNFT metadata on Base for an ERC-721 or ERC-1155 token: token URI plus the name, image and attributes it points to, resolved from IPFS, Arweave, data URIs or https.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it NFT metadata on Base for an ERC-721 or ERC-1155 token: token URI plus the name, image and attributes it points to, resolved from IPFS, Arweave, data URIs or https. Price: $0.005 USDC on Base via x402.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
base_nft_ownerWho owns this NFT?No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Who owns this NFT? Current owner of an ERC-721 token on Base by contract address and token id (ownerOf). Price: $0.01 USDC on Base via x402.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
base_portfolioWallet portfolio value on Base: ETH plus major tokens (or up to 20 tokens you choose), each holding priced in USD from live DEX prices, with the total.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Wallet portfolio value on Base: ETH plus major tokens (or up to 20 tokens you choose), each holding priced in USD from live DEX prices, with the total. Input: wallet address. Price: $0.004 USDC on Base via x402.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
base_priceToken price on Base by contract address: live USD price and pool liquidity from Uniswap v2/v3 and Aerodrome.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Token price on Base by contract address: live USD price and pool liquidity from Uniswap v2/v3 and Aerodrome. Works for any token with a DEX pool, including newly launched ones. Price: $0.003 USDC on Base via x402.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
base_receiptBase transaction receipt by hash: success or reverted, gas used, and the decoded ERC-20 Transfer events showing which tokens moved between which addresses.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Base transaction receipt by hash: success or reverted, gas used, and the decoded ERC-20 Transfer events showing which tokens moved between which addresses. Price: $0.003 USDC on Base via x402.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
base_tokenToken info for any ERC-20 on Base by contract address: name, symbol, decimals and total supply.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Token info for any ERC-20 on Base by contract address: name, symbol, decimals and total supply. Price: $0.01 USDC on Base via x402.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
base_token_riskIs this Base token safe to buy, or a honeypot, rug pull or scam?No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Is this Base token safe to buy, or a honeypot, rug pull or scam? Simulates a real buy and sell to prove the token can be sold and to measure buy and sell tax, then checks mint, blacklist, pause and fee powers, proxy upgradeability, owner and DEX liquidity. Input: token address. Returns a verdict (low, caution, high, avoid), a 0-100 risk score and the evidence. Check before an agent trades a token. Try it free first: 3 calls a day at POST /v1/base/token/risk/trial. Price: $0.01 USDC on Base via x402.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
base_token_risk_trialFREE trial, no wallet or payment needed: is this Base token safe to buy, or a honeypot, rug pull or scam?No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it FREE trial, no wallet or payment needed: is this Base token safe to buy, or a honeypot, rug pull or scam? The same verdict as base_token_risk (real buy and sell simulation, tax, mint, blacklist and pause powers, owner, liquidity), limited to 3 calls per caller per day. Input: token address. After the trial, use base_token_risk ($0.01 via x402)
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
base_txBase transaction lookup by hash: sender, recipient, value, function selector, block, and whether it succeeded or reverted.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Base transaction lookup by hash: sender, recipient, value, function selector, block, and whether it succeeded or reverted. Price: $0.01 USDC on Base via x402.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
score_opportunityHow strong is this startup or deal on paper?No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it How strong is this startup or deal on paper? Scores an opportunity across seven pillars weighted by stage (pre-seed to series B+), applies red flags, and returns a 0 to 10 score with pass, investigate or fail. Deterministic: the same input always gives the same score. A screening aid, not investment advice. Price: $0.01 USDC on Base via x402.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
triage_invoiceWhich overdue invoice should be chased, and what is the next step?No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Which overdue invoice should be chased, and what is the next step? Send an invoice number, client reference, amount and days overdue; get its aging category and the next action to take. Deterministic rules, no AI: the same input always gives the same answer. Price: $0.01 USDC on Base via x402.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 4.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http aether https://aether-x402.vercel.app/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [],
"ask": [
"mcp__aether__base_token_risk_trial",
"mcp__aether__base_token_risk",
"mcp__aether__base_balance",
"mcp__aether__base_erc20_balance",
"mcp__aether__base_portfolio",
"mcp__aether__base_allowance",
"mcp__aether__base_basename",
"mcp__aether__base_tx",
"mcp__aether__base_receipt",
"mcp__aether__base_contract",
"mcp__aether__base_gas",
"mcp__aether__base_block",
"mcp__aether__base_token",
"mcp__aether__base_price",
"mcp__aether__base_transfers",
"mcp__aether__base_nft_owner",
"mcp__aether__base_nft_metadata",
"mcp__aether__base_call",
"mcp__aether__base_estimate_gas",
"mcp__aether__audit_x402_payability",
"mcp__aether__score_opportunity",
"mcp__aether__triage_invoice",
"mcp__aether__audit_evidence"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as aether. Review it before you use it.
