← Catalog · IP Geolocation

IP Geolocation Sandbox.

Test the IP geolocation integration on Base Sepolia. Five well-known public DNS resolvers, looked up against the live MaxMind data. Same JSON shape as production. Switch to production by removing /sandbox/ from the URL.

How it differs from production

Production endpoint
GET /v1/ip/:address
Sandbox endpoint
GET /v1/sandbox/ip/:address
Network
Base Sepolia testnet (eip155:84532)
Asset
Test USDC at 0x036CbD53842c5426634e7929541eC2318f3dCF7e
Faucet
alchemy.com/faucets/base-sepolia
Price
$0.002 in test USDC per request — same nominal as production
Dataset
5 public DNS resolvers (8.8.8.8, 1.1.1.1, etc) with live MaxMind data
Response
Identical schema to production. meta.sandbox: true tells you which side you're on.
Bazaar listing
None — only the production endpoint lists at agentic.market

Curated set

What you can ask for.

Anything else returns a 404 with the available list and a pointer to mainnet for the full dataset.

8.8.8.8
Google DNS · AS15169 (Google LLC), US
1.1.1.1
Cloudflare DNS · AS13335 (Cloudflare), AU
208.67.222.222
OpenDNS · AS36692 (Cisco), US
9.9.9.9
Quad9 · AS19281 (Quad9), CH
2606:4700:4700::1111
Cloudflare DNS over IPv6 · AS13335

Sandbox returns the live MaxMind data for these IPs (so values stay accurate). Anything else returns 404 — production handles any public IPv4 or IPv6.

Six steps

From zero to graduated.

  1. Get test USDC.

    Visit the Alchemy Base Sepolia faucet. Drip a few cents to your test wallet.

  2. Try the unpaid call.

    See the 402 challenge:

    curl -i https://apitoll.io/v1/sandbox/ip/8.8.8.8
    The response carries the network, asset, payTo, and amount.

  3. Sign an EIP-3009 authorization.

    Put the signed payload in the X-PAYMENT header (base64-encoded JSON). Most agent SDKs (@x402/axios, x402-fetch) handle this automatically.

  4. Retry with payment.

    You'll get the data back, plus an x-payment-response settlement receipt header.

  5. Iterate.

    Test against the curated set above until your integration is solid.

  6. Graduate.

    Remove /sandbox/ from the URL. Same response shape, real USDC settlement on Base mainnet, full dataset.

Why a sandbox exists

IP-data integrations frequently break on IPv6, on private ranges, or on the precise field-naming differences between providers. Iterate against five known-good IPs in sandbox before paying for unknowns.

The sandbox uses the same code path as production. If your agent works against https://apitoll.io/v1/sandbox/ip/8.8.8.8, removing /sandbox/ is the only change needed to graduate to https://apitoll.io/v1/ip/8.8.8.8.