https://api.zerion.io and require authentication via HTTP Basic Auth. Responses follow the JSON:API specification.
Endpoint categories
Wallets Portfolio, DeFi positions, transactions, PnL and NFTs for any address.Fungibles Search and list tokens, with metadata, prices and charts.Chains Every supported chain, with IDs and metadata.NFTs Single or batch NFT lookups by reference or ID.Swap & bridge Swap and bridge quotes routed across DEXs and bridges.Gas prices Current gas price estimates on every chain.DApps Protocol names, icons and categories.Subscriptions (Webhooks) Webhooks on wallet activity. Pick the wallets and chains to watch.
All positions and transactions come with icons, labels, links, metadata, and relationships. Everything is ready to use immediately in interfaces without additional interpretation or enrichment.
Response structure
Every response follows a consistent JSON:API format:Resource IDs
Every resource carries anid. Treat these as opaque strings: match them, store them, pass them back, but don’t parse them or derive meaning from their shape. Some are hashes, some are chain slugs, some are composite. The format of any of them may change without that being a breaking change.
- Don’t reconstruct an ID client-side. To find a token by chain and contract address, call get fungible asset by implementation rather than assembling an ID yourself.
- Don’t use an ID as a stable primary key across resources. Position IDs in particular are derived from wallet, chain, and protocol context, so the same token held in two places has two different position IDs.
filter[chain_ids] and read from the chains endpoint.