BaseLens API docs

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.

How to call

  1. Send GET to an endpoint with query parameters.
  2. Receive HTTP 402 with a PAYMENT-REQUIRED header (x402 v2, exact scheme, USDC 0x8335…2913, payee 0x50F806C7E473322484bc91FF628380a3b12366f9).
  3. Sign the EIP-3009 authorization and retry with the PAYMENT-SIGNATURE header. Successful calls return JSON plus a PAYMENT-RESPONSE header with the settlement transaction.

Endpoints

GET /v1/address · $0.002 USDC

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

GET /v1/erc20-balance · $0.002 USDC

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

GET /v1/token · $0.003 USDC

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…"
  ]
}

GET /v1/tx · $0.003 USDC

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"
    }
  ]
}

GET /v1/gas · $0.001 USDC

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

GET /v1/name · $0.001 USDC

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
}

GET /v1/price · $0.003 USDC

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
}

GET /v1/transfers · $0.004 USDC

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"
    }
  ]
}

GET /v1/contract · $0.003 USDC

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…"
  ]
}

Marketplace gateway route

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.

Errors

Invalid input returns HTTP 400 {"error": "..."}. Unpaid requests return HTTP 402.

MCP

Remote MCP (Streamable HTTP) at https://baselens-api.vercel.app/mcp, same tools with x402-over-MCP payments.

Free

/free/gas sample, /health, /version.


Home · Docs · Terms · llms.txt · OpenAPI · Source (MIT) · v1.2.1