moonpay-export-data
Export data
Goal
Save portfolio snapshots and transaction history to CSV or JSON files using mp output piped through jq. Useful for spreadsheets, tax reporting, and record-keeping.
Prerequisites
jqinstalled:which jq- Default output directory:
~/Documents/moonpay/(create if needed)
Portfolio to CSV
Export all token balances for a wallet on a specific chain:
mkdir -p ~/Documents/moonpay
# Header + data
echo "symbol,name,amount,usd_value,price" > ~/Documents/moonpay/portfolio-$(date +%Y%m%d).csv
mp --json token balance list --wallet <address> --chain solana \
| jq -r '.items[] | [.symbol, .name, .balance.amount, .balance.value, .balance.price] | @csv' \
>> ~/Documents/moonpay/portfolio-$(date +%Y%m%d).csv
Multi-chain portfolio
Loop over chains and append to one file:
FILE=~/Documents/moonpay/portfolio-$(date +%Y%m%d).csv
echo "chain,symbol,name,amount,usd_value,price" > "$FILE"
for CHAIN in solana ethereum base polygon arbitrum; do
mp --json token balance list --wallet <address> --chain "$CHAIN" \
| jq -r --arg chain "$CHAIN" '.items[] | [$chain, .symbol, .name, .balance.amount, .balance.value, .balance.price] | @csv' \
>> "$FILE" 2>/dev/null
done
Note: EVM wallets share one address across all EVM chains. Solana uses a different address.
Transaction history to CSV
Export swap and bridge history. These are transactions executed via the CLI and registered with swaps.xyz — not all on-chain activity.
echo "date,type,from_chain,from_token,from_amount,to_chain,to_token,to_amount,usd,status" \
> ~/Documents/moonpay/transactions-$(date +%Y%m%d).csv
mp --json transaction list --wallet <address> \
| jq -r '.items[] | [
.transactionId,
.type,
.from.chain, .from.token, .from.amount,
.to.chain, .to.token, .to.amount,
.usd,
.status
] | @csv' \
>> ~/Documents/moonpay/transactions-$(date +%Y%m%d).csv
Filter by chain
mp --json transaction list --wallet <address> --chain solana \
| jq -r '.items[] | ...' >> transactions.csv
Portfolio to JSON
For structured data or programmatic use:
mp --json token balance list --wallet <address> --chain solana \
| jq '.items | map({symbol, amount: .balance.amount, usd: .balance.value})' \
> ~/Documents/moonpay/portfolio-$(date +%Y%m%d).json
Open exported file
After writing the file, open it in the default app:
# macOS — opens in Numbers/Excel
open ~/Documents/moonpay/portfolio-$(date +%Y%m%d).csv
# Linux
xdg-open ~/Documents/moonpay/portfolio-$(date +%Y%m%d).csv
Tips
jq @csvhandles proper CSV escaping (quotes, commas in values)- Date-stamp filenames to keep a history:
portfolio-20260222.csv mp transaction listonly includes CLI-executed swaps/bridges registered via swaps.xyz, not all on-chain transactions- For a quick summary without exporting, use
mp token balance list --wallet <addr> --chain <chain>directly - EVM address is the same across ethereum, base, polygon, arbitrum, optimism, bnb, avalanche
Related skills
- moonpay-check-wallet — View balances interactively
- moonpay-block-explorer — Open exported transactions in block explorers
- moonpay-trading-automation — Combine with scheduled exports for daily snapshots
More from moonpay/skills
moonpay-trading-automation
Set up automated trading strategies — DCA, limit orders, and stop losses — by composing mp CLI commands with OS scheduling (cron/launchd).
38moonpay-prediction-market
Trade on prediction markets (Polymarket, Kalshi). Search markets, buy/sell positions, track PnL, and view trade history.
36moonpay-auth
Set up the MoonPay CLI, authenticate, and manage local wallets. Use when commands fail, for login, or to create/import wallets.
33moonpay-swap-tokens
Swap tokens on the same chain or bridge tokens across chains. Use when the user wants to swap, bridge, or move tokens.
33moonpay-price-alerts
Set up desktop price alerts that notify you when tokens hit target prices. Observe-only — no trading, just notifications.
33moonpay-check-wallet
Check wallet balances and holdings. Use for "what's in my wallet", portfolio breakdown, token balances, allocation percentages, and USD values.
32