Skip to main content
Three commands cover transfers: send auto-detects between native and ERC-20 based on --symbol, send-native is the explicit native path, and send-token is for ERC-20s by symbol or contract address. Every transfer is dry-run by default, the CLI prints the planned transaction and exits without broadcasting. Add --broadcast only when the plan is correct. Use dry-run to review the recipient, amount, fee, and chain before any funds move. For batch payouts, run dry-runs across the entire batch first; broadcast the batch only after every dry-run passes.

How it works

Transfer flow
1OperatorCLIpolygon-agent send-token … (no —broadcast)
2CLIPrints dry-run summary: amount, symbol, recipient, fee
3OperatorCLIRe-runs with —broadcast
4Smart walletPolygonSubmits transaction
5CLIOperatorPrints tx hash + explorer link
The spending-limit caps set at wallet create time bound every transfer. A transfer that exceeds its cap fails at dry-run; no funds move and the wallet does not need to re-approve.

Commands

send

polygon-agent send --to 0xRecipient --amount 10 --symbol USDC
send is the convenience command: pass --symbol to send ERC-20s, omit it to send the native token.
FlagDefaultPurpose
--walletmainWallet name
--chainnoneChain (defaults to wallet’s chain)
--torequiredRecipient address
--amountrequiredAmount to send
--symbolnoneToken symbol for ERC-20 (omit for native)
--tokennoneToken contract address (overrides --symbol)
--decimalsnoneToken decimals (use with --token)
--broadcastfalseExecute the transaction

send-native

polygon-agent send-native --to 0xRecipient --amount 0.5
Explicit native-token transfer. The --direct flag bypasses the Sequence ValueForwarder for cases where the smart wallet needs to send native directly.
FlagDefaultPurpose
--walletmainWallet name
--chainnoneChain
--torequiredRecipient address
--amountrequiredAmount to send
--directfalseBypass ValueForwarder
--broadcastfalseExecute the transaction

send-token

polygon-agent send-token --symbol USDC --to 0xRecipient --amount 100
Explicit ERC-20 transfer. Use --symbol for known tokens or --token --decimals for arbitrary contracts.
FlagDefaultPurpose
--walletmainWallet name
--chainnoneChain
--symbolnoneToken symbol (e.g. USDC, WETH)
--tokennoneToken contract address
--decimalsnoneToken decimals (with --token)
--torequiredRecipient address
--amountrequiredAmount to send
--broadcastfalseExecute the transaction

Worked example

# Step 1: Dry-run to confirm the plan
polygon-agent send-token --symbol USDC --to 0xVendor --amount 25

# ⚡ Dry run
# Send 25.00 USDC to 0xVendor on polygon
# Fee: 0.0001 USDC
# Wallet balance after: 75.00 USDC

# Step 2: Broadcast once verified
polygon-agent send-token --symbol USDC --to 0xVendor --amount 25 --broadcast

# Sent 25.00 USDC to 0xVendor on polygon
# Tx: 0xabc... → https://polygonscan.com/tx/0xabc...

Implementation

CLI overview

Topology and safety model.

Balances and funding

Confirm balance before and after.

Swaps and yield

Cross-chain transfers, swaps, and yield positions.

Setup and wallets

Spending limits set the bounds on transfers.