Zapper Api
Scanned@zivhm
npx machina-cli add skill @zivhm/openclaw-zapper-api --openclawZapper API
Query DeFi portfolios, NFTs, and transactions across 50+ chains using Zapper's GraphQL API.
Setup
- Get API key from Zapper Dashboard (free tier available)
- Configure in
~/.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"
Commands
| 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 |
Options
| 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 |
Usage
# 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
Wallet Labels
Use configured wallet labels instead of addresses:
python3 scripts/zapper.py portfolio "Main"
python3 scripts/zapper.py tokens "DeFi"
Supported Tokens (price command)
ETH, WETH, USDC, USDT, DAI, WBTC, LINK, UNI, AAVE, MKR
Supported Chains
Ethereum, Base, Arbitrum, Optimism, Polygon, Solana, BNB Chain, Avalanche, zkSync, Linea, Scroll, Blast, and 40+ more.
Notes
- Free tier API key available at zapper.xyz/developers
- Rate limits apply - avoid rapid repeated requests
- NFT valuations based on floor prices
- Transaction history limited to 30 days
References
- API.md - GraphQL query examples
- Zapper Docs - Official API documentation
Overview
Fetch DeFi portfolios, token holdings, NFTs, and transaction history across 50+ chains using Zapper's GraphQL API. It helps answer questions about wallet balances, DeFi positions, NFT collections, token prices, and activity trends for analysis and reporting.
How This Skill Works
Obtain a Zapper API key from the dashboard and configure access via ~/.config/zapper/addresses.json or the ZAPPER_API_KEY environment variable. Use the Zapper CLI commands (portfolio, tokens, apps, nfts, tx, price, claimables) or GraphQL endpoints to retrieve data, with options like --24h, --short, and --json for tailored outputs.
When to Use It
- To check wallet balances and DeFi exposure across 50+ chains
- When analyzing DeFi positions such as LPs, lending, or staking
- To review NFT holdings and valuations by collection or value
- When fetching token prices and 24h price changes
- To pull recent transactions or 30-day activity history
Quick Start
- Step 1: Obtain a Zapper API key from the Zapper dashboard
- Step 2: Configure addresses.json or export ZAPPER_API_KEY in your environment
- Step 3: Run a command like 'zapper.py portfolio 0xADDRESS' to fetch data
Best Practices
- Securely store and manage your API key; prefer environment variables for automation
- Configure per-wallet labels to simplify multi-wallet workflows
- Use --json for machine-readable output when integrating with apps
- Be mindful of 30-day transaction history limits and rate limits
- Verify chain coverage and token support before multi-chain requests
Example Use Cases
- Retrieve a portfolio total and per-wallet breakdown for a user
- List all NFT holdings and their estimated floor-based values
- Check 24h price changes for ETH, USDC, and popular tokens
- Inspect recent transactions for a given address within 30 days
- Query DeFi positions (LPs, lending, staking) across Ethereum and Polygon