Zerion Wallet Data
Goal
Query interpreted wallet data — portfolios, token positions, DeFi positions, PnL, transactions, NFTs, and chain/token metadata — via x402 pay-per-request on Base or API key auth. All data is pre-enriched with protocol labels, token names, and USD values.
Prerequisites
- Wallet with USDC on Base:
mp token balance list --wallet main --chain base
- Small ETH on Base for gas
- If no USDC: bridge from Ethereum or swap via
mp token swap --chain base
Core command
mp x402 request \
--method GET \
--url "https://api.zerion.io/v1/<endpoint>" \
--wallet main \
--chain base
All endpoints are GET requests. Cost is $0.01 USDC per request on Base.
Endpoint Reference
Wallet Endpoints
| Endpoint |
Cost |
Description |
/v1/wallets/{address}/portfolio |
$0.01 |
Aggregated portfolio value with total USD balance |
/v1/wallets/{address}/positions/ |
$0.01 |
Token balances and DeFi positions (staked, deposited, etc.) |
/v1/wallets/{address}/transactions/ |
$0.01 |
Interpreted transaction history with labels and types |
/v1/wallets/{address}/pnl |
$0.01 |
Profit and Loss — unrealized PnL, realized PnL, net invested |
/v1/wallets/{address}/charts/{period} |
$0.01 |
Portfolio balance chart over time (1d, 1w, 1m, 3m, 1y, max) |
/v1/wallets/{address}/nft-positions/ |
$0.01 |
NFTs held by the wallet |
/v1/wallets/{address}/nft-collections/ |
$0.01 |
NFT collections with floor prices |
/v1/wallets/{address}/nft-portfolio |
$0.01 |
Aggregated NFT portfolio value |
Token (Fungible) Endpoints
| Endpoint |
Cost |
Description |
/v1/fungibles/ |
$0.01 |
Search and list tokens |
/v1/fungibles/{id} |
$0.01 |
Token details — price, market cap, volume, implementations |
/v1/fungibles/{id}/charts/{period} |
$0.01 |
Token price chart |
/v1/fungibles/by-implementation |
$0.01 |
Look up token by chain:address pair |
/v1/fungibles/by-implementation/charts/{period} |
$0.01 |
Price chart by implementation |
Chain Endpoints
| Endpoint |
Cost |
Description |
/v1/chains/ |
$0.01 |
List all supported chains (40+ EVM + Solana) |
/v1/chains/{id} |
$0.01 |
Chain details — RPC, explorer, native token |
Swap Endpoints
| Endpoint |
Cost |
Description |
/v1/swap/fungibles/ |
$0.01 |
List swappable tokens |
/v1/swap/offers/ |
$0.01 |
Get swap/bridge quotes |
Gas Endpoints
| Endpoint |
Cost |
Description |
/v1/gas-prices/ |
$0.01 |
Current gas prices by chain |
NFT Endpoints
| Endpoint |
Cost |
Description |
/v1/nfts/ |
$0.01 |
Search NFTs |
/v1/nfts/{id} |
$0.01 |
NFT details with metadata and traits |
DApp Endpoints
| Endpoint |
Cost |
Description |
/v1/dapps |
$0.01 |
List DeFi protocols |
/v1/dapps/{id} |
$0.01 |
Protocol details — TVL, chains, categories |
Common query parameters
| Parameter |
Values |
Purpose |
currency |
usd, eur, eth, btc |
Fiat/crypto currency for values |
filter[chain_ids] |
ethereum, base, solana |
Filter by chain (comma-separated) |
filter[positions] |
only_simple, only_complex, no_filter |
only_simple = wallet tokens, only_complex = DeFi, no_filter = both |
filter[trash] |
only_non_trash, only_trash, no_filter |
Filter spam tokens |
sort |
value, -value |
Sort by USD value |
page[size] |
integer |
Results per page (max 100) |
page[after] |
string |
Cursor for next page |
Example: Full wallet analysis
mp x402 request \
--method GET \
--url "https://api.zerion.io/v1/wallets/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045/portfolio?currency=usd" \
--wallet main \
--chain base
Example: DeFi positions
mp x402 request \
--method GET \
--url "https://api.zerion.io/v1/wallets/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045/positions/?filter[positions]=only_complex¤cy=usd" \
--wallet main \
--chain base
Example: Profit and loss
mp x402 request \
--method GET \
--url "https://api.zerion.io/v1/wallets/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045/pnl?currency=usd" \
--wallet main \
--chain base
Example: Token lookup by contract address
mp x402 request \
--method GET \
--url "https://api.zerion.io/v1/fungibles/by-implementation?filter[implementation_address]=0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48&filter[implementation_chain_id]=ethereum" \
--wallet main \
--chain base
Example: Recent transactions
mp x402 request \
--method GET \
--url "https://api.zerion.io/v1/wallets/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045/transactions/?currency=usd&page[size]=10" \
--wallet main \
--chain base
Discover all endpoints
mp x402 request \
--method GET \
--url "https://api.zerion.io/.well-known/x402" \
--wallet main \
--chain base
Alternative: Zerion CLI
You can also query Zerion data directly via the Zerion CLI:
npm install -g zerion-cli
zerion-cli wallet portfolio <address>
zerion-cli wallet positions <address> --positions all
zerion-cli wallet transactions <address>
zerion-cli wallet pnl <address>
zerion-cli chains list
Auth via API key (ZERION_API_KEY env var) or x402 pay-per-call (ZERION_X402=true env var, or --x402 flag). Get an API key at dashboard.zerion.io.
Notes
- Payments are in USDC on Base Mainnet (
--chain base)
- If the request fails (status >= 400), payment is not settled — you don't pay for errors
- ETH on Base is needed for gas (~$0.001 per tx)
- All responses follow JSON:API format with
data, links, and relationships
- Data is pre-interpreted: protocol names, token symbols, USD values included — no ABI decoding needed
- Supports 40+ EVM chains and Solana in a single query
Related skills
- moonpay-auth — Create or import a local wallet
- moonpay-check-wallet — Check USDC balance on Base before spending
- moonpay-x402 — Learn how x402 pay-per-request works