Download the OpenAPI contract
OpenAPI 3.0 for assets, wallet transactions, and prices.
indexer.url. Additional hosted endpoints are optional.
The SDK appends paths to your base URL and lowercases addresses. Each URL must serve one chain:
chainId 84532 for Base Sepolia or 8453 for Base. No chain query parameter is sent.
Return HTTP 200 JSON in the shapes below, without a { data: ... } envelope. Unknown wallets return empty results. Use 400 for invalid requests, 429 for rate limits, and 503 for temporary failures. Allow your app’s origin through CORS for GET/OPTIONS.
Custom headers/fetch are unsupported. For authenticated backends, use a same-origin proxy that supplies server credentials.
Asset response example:
type: "transfer", kind: "transfer", a 32-byte handle, sender/recipient addresses, and amount: null. Public flow rows use wrap/unwrap, base-unit amount strings, and handle: null. Exclude zero-address confidential mint/burn legs and public burn rows. Sort by descending block/log index, count after filtering, and return pages = Math.ceil(total / limit).
Price response example:
{ "items": [], "total": 0, "page": 1, "pages": 0, "limit": 10 }. Empty assets: []. Empty prices: { "chainId": 84532, "ttl": 60, "count": 0, "prices": {} }. Keep missing quotes absent from prices; zero is a real quote. count should equal the number of returned entries.
Follow the OpenAPI field types and nullability. Only Tx block_time and log_index may be omitted. Use 20-byte hex addresses, 32-byte hashes/handles, decimals 0–255, and decimal strings for amounts, blocks, and transaction timestamps. Return native JSON numbers for pagination and price values. Extra keys are ignored.
Validate all three SDK calls against your service, including empty results, pagination, missing quotes, 429 retries, aborts, malformed payloads, and chain mismatch.
HTTP failure policy
Network errors, 429, and 5xx receive up to three attempts. Other 4xx and invalid payloads fail immediately.Retry-After waits are capped at five seconds within the total timeout. Aborts preserve the caller’s reason; timeouts raise INDEXER_UNAVAILABLE.