> ## Documentation Index
> Fetch the complete documentation index at: https://docs.polygon.technology/llms.txt
> Use this file to discover all available pages before exploring further.

# Transfers

> Send native tokens or ERC-20s from the smart wallet. Dry-run by default; broadcast with --broadcast.

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

<div style={{border:"1px solid #C8CFE1",borderRadius:"12px",overflow:"hidden",marginBottom:"24px"}}>
  <div style={{background:"linear-gradient(180deg,#EAE4F5 0%,#F6F3FB 100%)",borderBottom:"1px solid #D5C4F2",padding:"10px 16px",fontSize:"11px",fontWeight:"700",color:"#670DE5",letterSpacing:"0.06em",textTransform:"uppercase"}}>Transfer flow</div>

  <div style={{borderBottom:"1px solid #EEF0F9",padding:"9px 16px",display:"flex",alignItems:"center",gap:"10px"}}>
    <span style={{color:"#929EBA",fontSize:"11px",fontWeight:"700",minWidth:"16px",textAlign:"right"}}>1</span>
    <span style={{background:"#EEF0F9",color:"#48526F",padding:"2px 8px",borderRadius:"4px",fontSize:"11px",fontWeight:"600",whiteSpace:"nowrap"}}>Operator</span>
    <span style={{color:"#670DE5",fontWeight:"700"}}>→</span>
    <span style={{background:"#EEF0F9",color:"#48526F",padding:"2px 8px",borderRadius:"4px",fontSize:"11px",fontWeight:"600",whiteSpace:"nowrap"}}>CLI</span>
    <span style={{fontFamily:"'Geist Mono',ui-monospace,monospace",fontSize:"12px",color:"#141635"}}>polygon-agent send-token ... (no --broadcast)</span>
  </div>

  <div style={{borderBottom:"1px solid #EEF0F9",padding:"9px 16px",display:"flex",alignItems:"center",gap:"10px"}}>
    <span style={{color:"#929EBA",fontSize:"11px",fontWeight:"700",minWidth:"16px",textAlign:"right"}}>2</span>
    <span style={{background:"#EAE4F5",color:"#670DE5",padding:"2px 8px",borderRadius:"4px",fontSize:"11px",fontWeight:"700",whiteSpace:"nowrap"}}>CLI</span>
    <span style={{fontSize:"13px",color:"#141635",marginLeft:"4px"}}>Prints dry-run summary: amount, symbol, recipient, fee</span>
  </div>

  <div style={{borderBottom:"1px solid #EEF0F9",padding:"9px 16px",display:"flex",alignItems:"center",gap:"10px"}}>
    <span style={{color:"#929EBA",fontSize:"11px",fontWeight:"700",minWidth:"16px",textAlign:"right"}}>3</span>
    <span style={{background:"#EEF0F9",color:"#48526F",padding:"2px 8px",borderRadius:"4px",fontSize:"11px",fontWeight:"600",whiteSpace:"nowrap"}}>Operator</span>
    <span style={{color:"#670DE5",fontWeight:"700"}}>→</span>
    <span style={{background:"#EEF0F9",color:"#48526F",padding:"2px 8px",borderRadius:"4px",fontSize:"11px",fontWeight:"600",whiteSpace:"nowrap"}}>CLI</span>
    <span style={{fontFamily:"'Geist Mono',ui-monospace,monospace",fontSize:"12px",color:"#141635"}}>Re-runs with --broadcast</span>
  </div>

  <div style={{borderBottom:"1px solid #EEF0F9",padding:"9px 16px",display:"flex",alignItems:"center",gap:"10px"}}>
    <span style={{color:"#929EBA",fontSize:"11px",fontWeight:"700",minWidth:"16px",textAlign:"right"}}>4</span>
    <span style={{background:"#EAE4F5",color:"#670DE5",padding:"2px 8px",borderRadius:"4px",fontSize:"11px",fontWeight:"700",whiteSpace:"nowrap"}}>Smart wallet</span>
    <span style={{color:"#670DE5",fontWeight:"700"}}>→</span>
    <span style={{background:"#EEF0F9",color:"#48526F",padding:"2px 8px",borderRadius:"4px",fontSize:"11px",fontWeight:"600",whiteSpace:"nowrap"}}>Polygon</span>
    <span style={{fontSize:"13px",color:"#141635"}}>Submits transaction</span>
  </div>

  <div style={{padding:"9px 16px",display:"flex",alignItems:"center",gap:"10px"}}>
    <span style={{color:"#929EBA",fontSize:"11px",fontWeight:"700",minWidth:"16px",textAlign:"right"}}>5</span>
    <span style={{background:"#EAE4F5",color:"#670DE5",padding:"2px 8px",borderRadius:"4px",fontSize:"11px",fontWeight:"700",whiteSpace:"nowrap"}}>CLI</span>
    <span style={{color:"#670DE5",fontWeight:"700"}}>→</span>
    <span style={{background:"#EEF0F9",color:"#48526F",padding:"2px 8px",borderRadius:"4px",fontSize:"11px",fontWeight:"600",whiteSpace:"nowrap"}}>Operator</span>
    <span style={{fontSize:"13px",color:"#141635"}}>Prints tx hash + explorer link</span>
  </div>
</div>

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

```bash theme={null}
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.

| Flag          | Default  | Purpose                                       |
| ------------- | -------- | --------------------------------------------- |
| `--wallet`    | `main`   | Wallet name                                   |
| `--chain`     | none     | Chain (defaults to wallet's chain)            |
| `--to`        | required | Recipient address                             |
| `--amount`    | required | Amount to send                                |
| `--symbol`    | none     | Token symbol for ERC-20 (omit for native)     |
| `--token`     | none     | Token contract address (overrides `--symbol`) |
| `--decimals`  | none     | Token decimals (use with `--token`)           |
| `--broadcast` | `false`  | Execute the transaction                       |

### send-native

```bash theme={null}
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.

| Flag          | Default  | Purpose                 |
| ------------- | -------- | ----------------------- |
| `--wallet`    | `main`   | Wallet name             |
| `--chain`     | none     | Chain                   |
| `--to`        | required | Recipient address       |
| `--amount`    | required | Amount to send          |
| `--direct`    | `false`  | Bypass ValueForwarder   |
| `--broadcast` | `false`  | Execute the transaction |

### send-token

```bash theme={null}
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.

| Flag          | Default  | Purpose                            |
| ------------- | -------- | ---------------------------------- |
| `--wallet`    | `main`   | Wallet name                        |
| `--chain`     | none     | Chain                              |
| `--symbol`    | none     | Token symbol (e.g. `USDC`, `WETH`) |
| `--token`     | none     | Token contract address             |
| `--decimals`  | none     | Token decimals (with `--token`)    |
| `--to`        | required | Recipient address                  |
| `--amount`    | required | Amount to send                     |
| `--broadcast` | `false`  | Execute the transaction            |

***

## Worked example

```bash theme={null}
# 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

<CardGroup cols={2}>
  <Card title="CLI overview" icon="terminal" href="/payment-services/agentic-payments/cli/index">
    Topology and safety model.
  </Card>

  <Card title="Balances and funding" icon="wallet" href="/payment-services/agentic-payments/cli/balances-and-funding">
    Confirm balance before and after.
  </Card>

  <Card title="Swaps and yield" icon="arrow-right-arrow-left" href="/payment-services/agentic-payments/cli/swaps-and-yield">
    Cross-chain transfers, swaps, and yield positions.
  </Card>

  <Card title="Setup and wallets" icon="key" href="/payment-services/agentic-payments/cli/setup-and-wallets">
    Spending limits set the bounds on transfers.
  </Card>
</CardGroup>
