# Basalt > Onchain data + execution for AI agents. 2097 pay-per-call endpoints across 80 EVM chains, plus a catalog of 100,000+ ready-to-call contract analyses. Every result is computed directly from raw chain state (eth_call / eth_getCode / Multicall3) — no GoPlus, no DefiLlama, no third-party data — auditable and reproducible. Settled in USDC over x402 on Base. No API keys, no signup. ## How to call (for agents) GET any endpoint below. With no payment you receive HTTP 402 carrying exact x402 terms (price, asset=USDC, network=Base mainnet, payTo) and an outputSchema for the JSON. Sign a USDC payment on Base and retry with the x402 payment header to get the result. Price: $0.01 USDC per call. Recommended client: x402-fetch (JS: wrapFetchWithPayment(fetch, account)) or any x402 client; the Coinbase CDP and xpay facilitators both work. Inspect /sample and /openapi.json for free first. ## Free discovery (no payment) - [GET /docs](https://getbasalt.xyz/docs): human-readable quickstart + copy-paste integration (curl, x402-fetch, Python). - [GET /playground](https://getbasalt.xyz/playground): try any endpoint live in the browser. - [GET /openapi.json](https://getbasalt.xyz/openapi.json): full machine-readable API — every endpoint, param, and schema. - [GET /.well-known/x402](https://getbasalt.xyz/.well-known/x402): x402 resource manifest (price/network/payTo per endpoint). - [GET /catalog](https://getbasalt.xyz/catalog?limit=50): paginated catalog of 100,000+ per-contract analyses; each item is a ready URL to a paid endpoint for a real, recently-active contract. - [GET /sample](https://getbasalt.xyz/sample): a complete example response. - [GET /stats](https://getbasalt.xyz/stats): live coverage, counts, and payout wallet. ## What you can call (each $0.01 USDC over x402) - GET /scan?token=0x… — Base ERC-20 honeypot/safety verdict (sellable, tax, owner, liquidity). - GET /balance — Native balance, nonce, and EOA/contract state for any address. - GET /block — Latest or specific block header (gas, base fee, tx count). - GET /tx — Full transaction details + receipt status by hash. - GET /fees — Current gas price + EIP-1559 fee estimate for any chain. - GET /erc165 — Detect which standard interfaces a contract implements (ERC-721/1155/royalty). - GET /call — Read-only eth_call to any view function on any contract. - GET /estimategas — Estimate gas for a transaction before submitting it. - GET /tokenbalances — ERC-20 balances for one address across many tokens at once. - GET /feehistory — Base-fee trend + priority-fee percentiles over recent blocks. - GET /blocktxs — List the transactions in a block (from/to/value). - GET /nativebalances — Native coin balances for many addresses at once. - GET /storagebatch — Read multiple raw storage slots of a contract at once. - GET /chaininfo — chainId, latest block, gas price, and native symbol for a chain. - GET /receipt — Full transaction receipt with event logs by hash. - GET /erc20meta — name / symbol / decimals / totalSupply for many tokens at once. - GET /erc1271 — Verify a signature against a smart-contract wallet (ERC-1271). - GET /price — Manipulation-resistant Uniswap v3 TWAP price of a Base token. - GET /decode — Decode raw EVM calldata (or a Base tx hash) into function + typed args. - GET /gas — Ready-to-sign EIP-1559 fees for fast/avg/slow + USD cost. - GET /token — ERC-20 metadata + supply + EOA/contract/proxy resolution. - GET /approvals — Find drainable ERC-20 allowances on a Base wallet. - GET /code — Proxy detection, dangerous opcodes, codehash for any contract. - GET /address — Know-Your-Address: balance, nonce, EOA/contract, holdings. - GET /batch — One-call honeypot/liquidity pre-check for up to 20 tokens. - GET /quote — Executable Uniswap v3 swap quote + price impact. - GET /txstatus — Did my tx land? status, gas, revert detection. - GET /simulate — Will this tx revert? + gas estimate, before signing. - GET /portfolio — Total USD value of a Base wallet across ETH + major tokens. - GET /pool — Per-fee-tier Uniswap v3 pool map for a token vs WETH. - GET /nft — ERC-721/1155 detection + collection + per-token owner/URI. - GET /basename — Basename/ENS name↔address resolution on Base. - GET /vault — ERC-4626 vault: asset, TVL, shares, price-per-share. - GET /safe — Gnosis Safe: owners, threshold, nonce, version, modules. - GET /permit — Does this token support gasless permit()? + fields to build one. - GET /storage — Read any raw contract storage slot, decoded as uint/address/bool. - GET /lending — Aave v3 collateral, debt & liquidation health factor for a wallet. - GET /position — Decode a Uniswap v3 LP NFT: pair, range, in-range status, fees owed. - GET /abi — Recover a contract's function selectors from bytecode + resolve names. - GET /spot — USD spot price for up to 15 Base tokens in one call. - GET /allowance — Check one allowance(owner,spender) + balance, exposure, Permit2. - GET /multicall — Run up to 20 arbitrary read-only calls in one eth_call. - GET /txcost — USD cost of a specific tx before sending (+ will-it-revert). ## Multichain The chain-agnostic endpoints (/token, /nft, /safe, /txstatus, /simulate, /abi, /code, /storage, /decode, /multicall, /balance, /block, /tx, /fees, /erc165, /call, /estimategas, /tokenbalances, /feehistory, /blocktxs, /nativebalances, /storagebatch, /chaininfo, /receipt, /erc20meta, /erc1271) are also served at /{chain}{path} for every supported chain: base, ethereum, optimism, arbitrum, polygon, bnb, avalanche, scroll, linea, celo, blast, mode, mantle, gnosis, moonbeam, moonriver, cronos, opbnb, kava, metis, polygonzkevm, arbitrumnova, sei, core, taiko, zora, fraxtal, manta, lisk, boba, unichain, aurora, astar, flare, kaia, sonic, berachain, ink, soneium, bob, worldchain, zeta, rootstock, harmony, immutable, gravity, morph, superseed, cyber, apechain, xai, b3, shape, hemi, abstract, fantom, fuse, dogechain, pulsechain, oasissapphire, conflux, bitlayer, wemix, etherlink, story, ronin, iotex, derive, metall2, nibiru, katana, plume, bsquared, funki, zircuit, telos, wanchain, zero, lumia, xlayer. Examples: https://getbasalt.xyz/arbitrum/token?token=0x…, https://getbasalt.xyz/optimism/code?address=0x…, https://getbasalt.xyz/polygon/safe?address=0x…. ## Payment x402 v2 · USDC on Base mainnet (chain 8453) · pay the payTo address from the 402 challenge. Agent wallet must hold USDC on Base.