Skip to content

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.

Final · 3Changes · 20

23 tools: 3 do something that can't be undone and 20 change things.

Scanned Oct 21, 2026

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/mcp

Findings

Matches of fixed checks, with the text they matched.

3 warn1 info
  • The server marks "base_transfers" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "base_transfers" says "transfer": a word for a change that another call does not undo.

    What this check looks for
  • The server marks "base_call" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "base_call" says "call": a word for a change.

    What this check looks for
  • The server marks "base_estimate_gas" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":true}; The input addresses people (input.to): what it sends cannot be taken back.

    What this check looks for
  • The input schema at properties.headers.description mentions "credential".

    Matched text

    inputSchema.properties.headers.description: "Non-credential headers the endpoint needs before its p..."

    What this check looks for

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".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "base_call" says "call": a word for a change.

      What this check looks for
    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".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":true}; The input addresses people (input.to): what it sends cannot be taken back.

      What this check looks for
    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".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "base_transfers" says "transfer": a word for a change that another call does not undo.

      What this check looks for
    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".

      Matched text

      inputSchema.properties.headers.description: "Non-credential headers the endpoint needs before its p..."

      What this check looks for
    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/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.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.