Skip to main content

What it is

Nanopayment is one of two ways to pay for Arrays data — the other is a subscription. Instead of a plan and an API key, your code or AI agent calls our API and pays per request in stablecoins using the x402 HTTP standard (v2). Two settlement rails are live:
  • Base — USDC via Circle Gateway (Nanopayments)
  • BNB Chain — USDC, USDT, USD1, or United Stables via EIP-3009 or Permit2
It works across both integration methods: call it directly from the REST API, or let an agent using Skills pay as it goes. No subscription. No API key. No procurement.

Base URL

Nanopayment runs on a dedicated host:
Same paths, same responses as the API-key host — but on this host a plain GET to any priced endpoint returns 402 Payment Required instead of 401, which is what standard x402 clients expect.
The API-key host data-tools.prd.arrays.org also speaks x402 if you add the request header Accept-Payment: x402. Without that header it returns 401 — stock x402 SDKs send a bare GET, so point them at the x402 host above.

How it works

1

Your client calls an Arrays endpoint on the x402 host

Plain GET, no auth header needed.
2

The server returns HTTP 402 Payment Required

The PAYMENT-REQUIRED response header carries a base64 x402 v2 payload: { x402Version: 2, accepts: [...], resource }. Each accepts entry is one payment option (network, asset, amount, payTo). The same JSON is echoed in the body.
3

Your wallet signs an authorization

EIP-3009 TransferWithAuthorization (Base via Circle Gateway, or BNB Chain) or a Permit2 signature (BNB Chain). Off-chain signature — no gas, no transaction broadcast.
4

Client retries with the signature

Send the signed payload in the PAYMENT-SIGNATURE header. Arrays settles with the facilitator and returns the data; the settlement result is in the PAYMENT-RESPONSE header.
Verify the 402 challenge without a wallet:

Supported chains & assets

Amounts in the 402 are in the asset’s smallest unit: 6 decimals on Base USDC (8000 = $0.008), 18 decimals on BNB Chain (8000000000000000 = $0.008). Read them from the response — don’t hard-code prices. Deposits for the Base rail go through Circle Gateway, which pools USDC from 11 EVM chains into one balance.

Pricing (today)

Nanopayment currently covers 15 crypto endpoints. Stocks, ETF, macro, and options are planned for the next two quarters.
Any other route called with x402 headers returns 404 X402_NOT_SUPPORTED. On the x402 host, these 15 routes always return 402 — an X-API-Key header is ignored there; use the API-key host for subscription access.

When to use it

✅ Perfect for

  • Autonomous AI agents that pay for their own data
  • Burst / low-volume usage where a subscription is overkill
  • On-chain native projects already holding USDC or BNB Chain stablecoins
  • Prototyping without account creation

❌ Not ideal for

  • Stock / ETF / macro queries (not yet supported)
  • High-volume usage where Pro subscription is cheaper
  • Teams that need a dashboard, usage analytics, or SLAs

Next step

Build your first paid call

TypeScript end-to-end example in under 30 lines.