Query DeFi portfolios, token holdings, NFTs, transactions, and prices via Zapper API. Supports 50+ chains. Use when user asks about wallet balances, DeFi positions, NFT collections, token prices, or transaction history.
Query DeFi portfolios, NFTs, and transactions across 50+ chains using Zapper's GraphQL API.
~/.config/zapper/addresses.json:
{
"apiKey": "your-api-key",
"wallets": [
{"label": "Main", "address": "0x..."},
{"label": "DeFi", "address": "0x..."}
]
}
Or set environment variable: export ZAPPER_API_KEY="your-api-key"
| Command | Description | Example |
|---|---|---|
portfolio <address> | Token + DeFi totals | zapper.py portfolio 0x123... |
tokens <address> | Detailed token holdings | zapper.py tokens 0x123... |
apps <address> | DeFi positions (LPs, lending, staking) | zapper.py apps 0x123... |
nfts <address> | NFT holdings by value | zapper.py nfts 0x123... |
tx <address> | Recent transactions (30 days) | zapper.py tx 0x123... |
price <symbol> | Token price lookup | zapper.py price ETH |
claimables <address> | Unclaimed rewards | zapper.py claimables 0x123... |
config | Show configuration | zapper.py config |
| Flag | Commands | Description |
|---|---|---|
--24h | portfolio, tokens | Show 24h price changes |
--short | portfolio | Output only total value |
--per-wallet | portfolio | Show each configured wallet separately |
--json | all | Output raw JSON |
--limit N | most | Max items to display |
# Portfolio summary
python3 scripts/zapper.py portfolio 0xADDRESS
# With 24h price changes
python3 scripts/zapper.py portfolio 0xADDRESS --24h
# Just total value
python3 scripts/zapper.py portfolio 0xADDRESS --short
# Per-wallet breakdown
python3 scripts/zapper.py portfolio --per-wallet
# Token holdings with prices
python3 scripts/zapper.py tokens 0xADDRESS --24h
# DeFi positions
python3 scripts/zapper.py apps 0xADDRESS
# NFT holdings
python3 scripts/zapper.py nfts 0xADDRESS
# Recent transactions
python3 scripts/zapper.py tx 0xADDRESS
# Token price
python3 scripts/zapper.py price ETH
# Unclaimed rewards
python3 scripts/zapper.py claimables 0xADDRESS
# JSON output
python3 scripts/zapper.py portfolio 0xADDRESS --json
Use configured wallet labels instead of addresses:
python3 scripts/zapper.py portfolio "Main"
python3 scripts/zapper.py tokens "DeFi"
ETH, WETH, USDC, USDT, DAI, WBTC, LINK, UNI, AAVE, MKR
Ethereum, Base, Arbitrum, Optimism, Polygon, Solana, BNB Chain, Avalanche, zkSync, Linea, Scroll, Blast, and 40+ more.