BotX402 Base Address Balance API

The Base Address Balance API from BotX402 — 1 operation(s) for base address balance.

Operations 1

POST /base-address-balance Base wallet balances #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/botx402-io:botx402-io-base-address-balance-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

botx402-io-base-address-balance-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: hello@botx402.io
    name: botx402
    url: https://botx402.io/agents
  description: botx402 sells paid lookups and one-shot reports to AI agents and the people they work for, with no account or API key. Each catalog resource (a path with an x-payment-info price) is paid per call over x402 v2 (USDC on Base) or, where listed, MPP (tempo charge, USDC.e on Tempo). GET /api/v1/agent/bots lists the bots on offer (the list can be empty); each bot is paid per run over x402 v2, or by card through the MCP server at /mcp.
  license:
    name: Proprietary
  title: botx402 Base Address Balance API
  version: 0.1.0
  x-category: Data
  x-guidance: 'Catalog resources (each path below with an x-payment-info price) are paid per call: the first request returns 402 with an x402 v2 PAYMENT-REQUIRED header (USDC on Base) and, where listed, an MPP WWW-Authenticate: Payment challenge (tempo charge, USDC.e on Tempo); pay either and retry with PAYMENT-SIGNATURE or Authorization: Payment. Bots: POST https://api.botx402.io/api/v1/agent/<slug>/run with {"inputs": {...}} (each bot''s schema is in its requestBody). The first call returns 402 with a PAYMENT-REQUIRED header (x402 v2, USDC on Base); sign an EIP-3009 authorization for accepts[0] and retry with PAYMENT-SIGNATURE. The 200 response has receipt_id and access_token; poll /api/v1/agent/runs/<receipt_id> with X-Access-Token until completed. Assistants can use the MCP server at https://api.botx402.io/mcp instead (card checkout a person pays).'
  x-logo:
    altText: botx402
    url: https://botx402.io/icon-512.png
servers:
- url: https://botx402.io
tags:
- name: Base Address Balance
paths:
  /base-address-balance:
    post:
      description: 'Returns the native ETH balance and ERC-20 token balances of one Base wallet address, read live from Base mainnet at the latest block: USDC, WETH and the rest of the top 200 Base tokens by market cap, plus up to 50 token contract addresses named in the request. Each row carries the token symbol, name, decimals, raw amount and human-readable amount. Suited to checking a wallet''s current holdings before a payment, transfer or swap; returns no labels, identities, USD values or portfolio valuation.'
      operationId: base_address_balance
      requestBody:
        content:
          application/json:
            schema:
              $schema: https://json-schema.org/draft/2020-12/schema
              additionalProperties: false
              description: One Base wallet address, and optionally ERC-20 token contract addresses to read beyond the fixed list. The request shape of Nansen's profiler/address/current-balance.
              properties:
                address:
                  description: The Base wallet address (0x and 40 hex characters) whose token balances are read.
                  pattern: ^0x[0-9a-fA-F]{40}$
                  type: string
                chain:
                  description: The chain to read. Only "base" is served; any other value returns 400.
                  type: string
                filters:
                  description: Accepted only when empty.
                  maxProperties: 0
                  type: object
                hide_spam_token:
                  description: Accepted for compatibility. Holdings come from a fixed list of tokens, so there is no spam to hide.
                  type: boolean
                order_by:
                  description: Accepted only when empty. Rows come native token first, then by the token list's rank.
                  maxItems: 0
                  type: array
                pagination:
                  additionalProperties: false
                  properties:
                    page:
                      minimum: 1
                      type: integer
                    per_page:
                      maximum: 250
                      minimum: 1
                      type: integer
                  type: object
                token_addresses:
                  description: ERC-20 token contract addresses to read beyond the fixed list of the top 200 Base tokens.
                  items:
                    pattern: ^0x[0-9a-fA-F]{40}$
                    type: string
                  maxItems: 50
                  type: array
                  uniqueItems: true
              required:
              - chain
              - address
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                properties:
                  block_number:
                    description: The Base block every balance was read at.
                    type: integer
                  data:
                    description: 'Non-zero balances: native ETH first (token_address is the zero address), then tokens by the list''s rank, then caller-supplied tokens.'
                    items:
                      properties:
                        address:
                          type: string
                        chain:
                          type: string
                        token_address:
                          type: string
                        token_amount:
                          type: number
                        token_amount_raw:
                          description: The exact balance in the token's smallest unit.
                          type: string
                        token_decimals:
                          type: integer
                        token_name:
                          type: string
                        token_symbol:
                          type: string
                      required:
                      - chain
                      - address
                      - token_address
                      - token_symbol
                      - token_amount
                      - token_amount_raw
                      type: object
                    type: array
                  pagination:
                    properties:
                      is_last_page:
                        type: boolean
                      page:
                        type: integer
                      per_page:
                        type: integer
                    required:
                    - page
                    - per_page
                    - is_last_page
                    type: object
                required:
                - block_number
                - pagination
                - data
                type: object
          description: The answer.
        '400':
          description: The input doesn't match the schema. Nothing is charged.
        '402':
          description: 'Payment required: x402 v2 in PAYMENT-REQUIRED and, where offered, MPP in WWW-Authenticate: Payment.'
          headers:
            PAYMENT-REQUIRED:
              description: base64(JSON x402 v2 PaymentRequired)
              schema:
                type: string
            WWW-Authenticate:
              description: 'An MPP challenge: Payment id, realm, method, intent, request, expires'
              schema:
                type: string
      summary: Base wallet balances
      x-payment-info:
        offers:
        - amount: '10000'
          currency: '0x20c000000000000000000000b9537d11c60e8b50'
          description: 'Returns the native ETH balance and ERC-20 token balances of one Base wallet address, read live from Base mainnet at the latest block: USDC, WETH and the rest of the top 200 Base tokens by market cap, plus up to 50 token contract addresses named in the request. Each row carries the token symbol, name, decimals, raw amount and human-readable amount. Suited to checking a wallet''s current holdings before a payment, transfer or swap; returns no labels, identities, USD values or portfolio valuation.'
          intent: charge
          method: tempo
        price:
          amount: '0.010000'
          currency: USD
          mode: fixed
        protocols:
        - x402: {}
        - mpp:
            currency: '0x20c000000000000000000000b9537d11c60e8b50'
            intent: charge
            method: tempo
      tags:
      - Base Address Balance