dev.workers.dolerite.base-onchain-tools/base-onchain-tools
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Base mainnet analysis: contract audits, transfer simulation, token pricing. Paid via x402.
| Author | dev.workers.dolerite.base-onchain-tools |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 1770 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"base-onchain-tools": {
"url": "https://base-onchain-tools.dolerite.workers.dev/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (12)
base_demoFree. Returns a complete, live contract audit of Base USDC — the same output shape as the paid audit tool, with the address fixed. Call this first to see what the paid tools return before spending anything.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
base_address_checkPre-flight check on a Base mainnet address before you pay it: contract vs EOA, ETH and USDC balances, outbound tx count, and warnings about whether funds sent there can actually be moved. Costs $0.002 per call, paid in USDC over x402 on Base. Calling this tool returns the payment requirements; failed calls are never billed.
Parameters:
address(required) — string — Base mainnet address (0x-prefixed, 20 bytes)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
base_tx_checkConfirm a Base mainnet transaction: success or reverted, block, confirmations and finality, gas used, and every ERC-20 transfer it moved with USDC amounts decoded. Costs $0.002 per call, paid in USDC over x402 on Base. Calling this tool returns the payment requirements; failed calls are never billed.
Parameters:
hash(required) — string — Base mainnet transaction hash (0x-prefixed, 32 bytes)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
base_tokenERC-20 token metadata on Base mainnet: name, symbol, decimals and total supply, read straight from the contract. Costs $0.001 per call, paid in USDC over x402 on Base. Calling this tool returns the payment requirements; failed calls are never billed.
Parameters:
address(required) — string — ERC-20 contract address on Base mainnet
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
base_gasLive Base mainnet gas oracle: current gas price, base fee, recent base fee trend, priority fee percentiles, and the estimated cost of a plain ERC-20 transfer in ETH. Costs $0.001 per call, paid in USDC over x402 on Base. Calling this tool returns the payment requirements; failed calls are never billed.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
base_priceETH/USD and BTC/USD read live from Chainlink's on-chain price feeds on Base, with the feed's own description, decimals, update timestamp, age in seconds and a staleness flag. Costs $0.001 per call, paid in USDC over x402 on Base. Calling this tool returns the payment requirements; failed calls are never billed.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
base_contract_typeIdentify what a Base contract actually is: ERC-20, ERC-721 or ERC-1155 via ERC-165, plus proxy detection across EIP-1967, EIP-1822 and the legacy ZeppelinOS slot with the current implementation address. Costs $0.002 per call, paid in USDC over x402 on Base. Calling this tool returns the payment requirements; failed calls are never billed.
Parameters:
address(required) — string — Contract address on Base mainnet
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
base_allowanceERC-20 allowance on Base: how much a spender may pull from an owner, whether it is an unlimited approval, the owner balance, and how much is actually spendable right now. Defaults to USDC. Costs $0.001 per call, paid in USDC over x402 on Base. Calling this tool returns the payment requirements; failed calls are never billed.
Parameters:
owner(required) — string — Token holder addressspender(required) — string — Address allowed to spendtoken— string — Optional ERC-20 contract, defaults to USDC on Base
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
base_token_priceUSD price for ANY token on Base, not just the two assets Chainlink covers. Discovers every Uniswap V3 pool against WETH and USDC across all four fee tiers, reads sqrtPriceX96 and does the Q96 fixed-point maths, prices off the deepest pool, ignores deployed-but-never-traded pools, and cross-checks the remaining ones to flag thin or manipulated liquidity. Costs $0.006 per call, paid in USDC over x402 on Base. Calling this tool returns the payment requirements; failed calls are never billed.
Parameters:
address(required) — string — ERC-20 token address on Base mainnet
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
base_simulate_transferWill this token payment actually go through, and if not exactly why. Simulates the transfer without spending gas, decodes the real revert reason (Error(string), Panic codes translated to English, or a custom error selector), and separately reports balance and allowance blockers. Understands that a caller with no ETH is fine for gasless EIP-3009 or a sponsored relayer. Costs $0.008 per call, paid in USDC over x402 on Base. Calling this tool returns the payment requirements; failed calls are never billed.
Parameters:
from(required) — string — Address the tokens leaveto(required) — string — Recipient addressamount(required) — string — Amount in atomic units (for USDC, 1000000 = $1)token— string — Optional ERC-20 contract, defaults to USDC on Basespender— string — Optional: simulate transferFrom pulled by this spender instead of a direct transfer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
base_contract_auditWhat an UNVERIFIED Base contract can actually do — the case where block explorers show you nothing. Disassembles the deployed bytecode with a PUSH-aware opcode walk (a naive byte scan reports SELFDESTRUCT on contracts that cannot self-destruct), strips the Solidity metadata trailer, recovers the function selectors from the dispatch table and names them against a keccak-derived signature database, then reports admin powers (mint, blacklist, freeze, pause, trading switches, adjustable fees, upgrade hooks), dangerous opcodes (DELEGATECALL, SELFDESTRUCT, CALLCODE, CREATE2), which token standards it really implements, and whether it supports EIP-3009 so it can be paid gaslessly over x402 at all. Proxies are detected and followed, because a forwarder's own bytecode tells you nothing. Costs $0.04 per call, paid in USDC over x402 on Base. Calling this tool returns the payment requirements; failed calls are never billed.
Parameters:
address(required) — string — Contract address on Base mainnetfollow_proxy— string — Optional, default true. Set to false to audit the proxy's own bytecode instead of its implementation.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
base_portfolioETH and USDC balances for up to 20 Base addresses in a single call, with per-address funded flags and totals. One request instead of forty RPC round trips. Costs $0.003 per call, paid in USDC over x402 on Base. Calling this tool returns the payment requirements; failed calls are never billed.
Parameters:
addresses(required) — string — Comma-separated Base addresses, max 20
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.