moonpay-swap-tokens
Swap or bridge tokens
Goal
Swap tokens on the same chain, or bridge tokens across chains. Two commands:
mp token swap— same chain, different tokensmp token bridge— cross chain
Both build via swaps.xyz, sign locally, broadcast, and register for tracking.
Commands
Swap (same chain)
mp token swap \
--wallet <wallet-name> \
--chain <chain> \
--from-token <token-address> \
--from-amount <amount> \
--to-token <token-address>
Supports exact-out: use --to-amount instead of --from-amount.
Bridge (cross chain)
mp token bridge \
--from-wallet <wallet-name> \
--from-chain <chain> \
--from-token <token-address> \
--from-amount <amount> \
--to-chain <chain> \
--to-token <token-address> \
--to-wallet <wallet-name> # optional, defaults to from-wallet
Supports exact-out: use --to-amount instead of --from-amount.
Examples
Same-chain swap (SOL → USDC on Solana)
mp token swap \
--wallet main --chain solana \
--from-token So11111111111111111111111111111111111111111 \
--from-amount 0.1 \
--to-token EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
Cross-chain bridge (ETH → USDC.e on Polygon)
mp token bridge \
--from-wallet funded --from-chain ethereum \
--from-token 0x0000000000000000000000000000000000000000 \
--from-amount 0.003 \
--to-chain polygon \
--to-token 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174
ERC20 swap (auto-approves if needed)
mp token swap \
--wallet funded --chain polygon \
--from-token 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174 \
--from-amount 5 \
--to-token 0x0000000000000000000000000000000000000000
Supported chains
solana, ethereum, base, polygon, arbitrum, optimism, bnb, avalanche, bitcoin (bridges only)
How it works
- Resolves wallet name → address
- Builds unsigned transaction via swaps.xyz (handles decimal conversion)
- If ERC20 token needs approval, sends an approve transaction first, then re-builds
- Signs locally — private key never leaves the machine
- Broadcasts to the network
- Registers for tracking
token swap calls token bridge under the hood with from-chain = to-chain.
Tips
- If the user provides token names/symbols, resolve to addresses with
mp token search --query "USDC" --chain solana - Check balances first with
mp token balance list --wallet <address> --chain <chain> - Native tokens use
0x0000000000000000000000000000000000000000(EVM) orSo11111111111111111111111111111111111111111(Solana)
Related skills
- moonpay-discover-tokens — Search for token addresses
- moonpay-check-wallet — Check balances before swapping
- moonpay-auth — Set up wallets for signing
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-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.
32moonpay-buy-crypto
Buy crypto with fiat via MoonPay. Returns a checkout URL to complete the purchase in a browser.
32