Version 1.2.1. Live Base (chain 8453) on-chain reads for AI agents, paid per call with x402 (USDC on Base). No API key.
GET to an endpoint with query parameters.PAYMENT-REQUIRED header (x402 v2, exact scheme, USDC 0x8335…2913, payee 0x50F806C7E473322484bc91FF628380a3b12366f9).PAYMENT-SIGNATURE header. Successful calls return JSON plus a PAYMENT-RESPONSE header with the settlement transaction.Base (chain 8453) address snapshot: EOA vs contract vs EIP-7702, ETH balance, nonce, code size and native USDC balance, at the latest block.
Inputs: address (required): 0x-prefixed Base address
Example: https://baselens-api.vercel.app/v1/address?address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
{
"chainId": 8453,
"block": 37000000,
"address": "0x8335…2913",
"type": "contract",
"ethBalance": "0",
"nonce": 1,
"usdcBalance": "12.5"
}ERC-20 balance of any address for any token on Base, with symbol and decimals already applied (raw and human-readable).
Inputs: token (required): ERC-20 token contract on Base; address (required): 0x-prefixed Base address
Example: https://baselens-api.vercel.app/v1/erc20-balance?token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&address=0x50F806C7E473322484bc91FF628380a3b12366f9
{
"token": "0x8335…2913",
"symbol": "USDC",
"decimals": 6,
"balanceRaw": "1000000",
"balance": "1"
}Token facts on Base: name, symbol, decimals, total supply, contract code size, owner() and EIP-1967 proxy implementation, plus plain-language notes (upgradeable? owner renounced?). Read-only facts, not advice.
Inputs: token (required): Token contract on Base
Example: https://baselens-api.vercel.app/v1/token?token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
{
"token": "0x8335…2913",
"name": "USD Coin",
"symbol": "USDC",
"decimals": 6,
"totalSupply": "4000000000",
"proxyImplementation": "0x…",
"notes": [
"Upgradeable proxy…"
]
}Human-readable summary of a Base transaction: status, block time, from/to, value, total fee (incl. L1 fee), and decoded ERC-20 Transfer events with token symbols and amounts. Handy to verify a payment landed.
Inputs: hash (required): 0x-prefixed transaction hash on Base
Example: https://baselens-api.vercel.app/v1/tx?hash=0x207205335a936d7954e8dcfb3a8896d4960d865814dd8b381da30daef427e94f
{
"status": "success",
"blockNumber": 37000000,
"timestamp": "2026-10-30T04:33:00.000Z",
"feeEth": "0.0000012",
"erc20Transfers": [
{
"symbol": "USDC",
"amount": "1",
"to": "0x4bF3…e4aa"
}
]
}Current Base gas: base fee, gas price, suggested EIP-1559 max fee and priority fee (gwei), block fullness, and cost of a plain ETH transfer.
Inputs: none
Example: https://baselens-api.vercel.app/v1/gas
{
"block": 37000000,
"baseFeeGwei": "0.005",
"maxFeePerGasGwei": "0.011",
"simpleTransferCostEth": "0.0000001"
}Resolve a Basename (name.base.eth) or ENS name to its Base/Ethereum address, or reverse-resolve an address to its primary ENS/Basename. Includes avatar record.
Inputs: name: ENS or Basename, e.g. jesse.base.eth or vitalik.eth; address: Alternative: 0x address to reverse-resolve
Example: https://baselens-api.vercel.app/v1/name?name=jesse.base.eth
{
"query": "jesse.base.eth",
"type": "forward",
"address": "0x2211d1D0020DAEA8039E46Cf1367962070d77DA9",
"baseAddress": "0x2211…7DA9",
"avatar": "https://…",
"resolved": true
}On-chain USDC price of any Base ERC-20: executable Uniswap v3 quote for 1 whole token (direct USDC pool or via WETH, best fee tier). No third-party price API.
Inputs: token (required): ERC-20 token contract on Base
Example: https://baselens-api.vercel.app/v1/price?token=0x4200000000000000000000000000000000000006
{
"token": "0x4200…0006",
"symbol": "WETH",
"priceUsdc": "2213.75",
"route": "uniswap-v3 WETH→USDC fee 500",
"priced": true
}Recent ERC-20 transfers in and out of an address on Base for up to 5 tokens (default USDC), newest first, over the last ~10k blocks (max 30k). Check incoming payments or wallet activity.
Inputs: address (required): 0x-prefixed Base address; tokens: Optional comma-separated token contracts (max 5). Default USDC.; blocks: Lookback in blocks, 100–30000 (default 10000); limit: Max transfers to return, ≤200 (default 50)
Example: https://baselens-api.vercel.app/v1/transfers?address=0x4b5c71082d027d16d2a146465d66f9eec11634f6&limit=5
{
"address": "0x4B5c…34F6",
"totalFound": 12,
"returned": 5,
"transfers": [
{
"block": 53290131,
"tx": "0x…",
"direction": "out",
"symbol": "USDC",
"amount": "23",
"to": "0xB706…82a3"
}
]
}Contract check on Base: is it a contract, code size, owner(), proxy implementation, and whether the source (and implementation) is verified on Sourcify, plus plain-language notes. Not an audit.
Inputs: address (required): 0x-prefixed Base address
Example: https://baselens-api.vercel.app/v1/contract?address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
{
"isContract": true,
"owner": "0x3ABd…6df7",
"proxyImplementation": "0x2Ce6…D779",
"sourcify": {
"verified": true,
"match": "exact_match",
"name": "FiatTokenProxy"
},
"notes": [
"Upgradeable proxy…"
]
}
GET /gw/v1/contract is identical to /v1/contract (same input, output and price) but pays 0x47B764e5f0BE6CDd3666825Db768316fb7add499, a self-custody wallet operated by Project Alpha that marketplaces such as Speedbot can verify by signature.
Free worked example (live): /example/contract.
Invalid input returns HTTP 400 {"error": "..."}. Unpaid requests return HTTP 402.
Remote MCP (Streamable HTTP) at https://baselens-api.vercel.app/mcp, same tools with x402-over-MCP payments.
/free/gas sample, /health, /version.
Home · Docs · Terms · llms.txt · OpenAPI · Source (MIT) · v1.2.1