> ## 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.

# Cross-corridor vendor payouts

> Pay vendors and contractors in their preferred chain and currency from a single USDC treasury. Bridging is one command per recipient.

A platform paying suppliers, contractors, or marketplace sellers across borders typically holds dozens of banking relationships and a half-dozen currency accounts. Each new corridor adds another set of operational dependencies. The Agent CLI collapses that to a single USDC treasury on Polygon plus one command per recipient. Same-chain payouts go through `send-token`; cross-chain payouts go through `swap --to-chain`. Recipients who want fiat get a Trails off-ramp URL.

Each disbursement carries dry-run + broadcast, so finance reviews the entire batch before any funds move. Each broadcast produces an onchain receipt that maps one-to-one with a row in your payout schedule.

**Who this is for:**

* AP managers running weekly or monthly multi-corridor disbursements
* Marketplaces paying international sellers in their local rails
* Gig and payroll platforms with contractors across regions
* Payouts networks settling to vendors on different chains

***

## 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"}}>Per-recipient payout</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"}}>AP</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={{fontSize:"13px",color:"#141635"}}>Loads schedule: recipient, address, chain, amount</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"}}>Dry-runs every row: send-token (same chain) or swap --to-chain (cross-chain)</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"}}>Finance</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"}}>AP</span>
    <span style={{fontSize:"13px",color:"#141635"}}>Reviews total variance, signs off on the batch</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:"#EAE4F5",color:"#670DE5",padding:"2px 8px",borderRadius:"4px",fontSize:"11px",fontWeight:"700",whiteSpace:"nowrap"}}>Trails</span>
    <span style={{fontSize:"13px",color:"#141635"}}>Broadcasts batch with `--broadcast`; routes cross-chain via Trails</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"}}>5</span>
    <span style={{background:"#EAE4F5",color:"#670DE5",padding:"2px 8px",borderRadius:"4px",fontSize:"11px",fontWeight:"700",whiteSpace:"nowrap"}}>Trails</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"}}>Recipient</span>
    <span style={{fontSize:"13px",color:"#141635"}}>USDC lands on the destination chain (or off-ramps to fiat)</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"}}>6</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"}}>AP</span>
    <span style={{fontSize:"13px",color:"#141635"}}>Returns per-recipient transaction hash for GL mapping</span>
  </div>
</div>

Each row in the schedule maps to one CLI command. Same-chain rows use `send-token`. Cross-chain rows use `swap --from USDC --to USDC --to-chain <chain>`. Recipients that want fiat receive a Trails widget URL via `polygon-agent fund --wallet <theirs>`; they complete the off-ramp themselves.

***

## Get started

Same-chain payouts use `send-token`. Cross-chain payouts use `swap --to-chain` to bridge through Trails. Recipients who want fiat receive a Trails widget URL via `fund`. Every command is dry-run by default; broadcast the batch only after finance signs off.

### Install

```bash theme={null}
npm install -g @polygonlabs/agent-cli
polygon-agent setup --name "ap-treasury"
polygon-agent wallet create --usdc-limit 100000
```

No extra flags are needed for transfers and cross-chain swaps. Size `--usdc-limit` to cover a typical disbursement batch.

### Drive it from an LLM

```text theme={null}
Read https://agentconnect.polygon.technology/SKILL.md and pay this week's vendor schedule: 500 USDC to 0xVendorA on Base, 250 USDC to 0xVendorB on Arbitrum, and 1000 USDC to 0xVendorC on Polygon. Dry-run the full batch first, then broadcast once I confirm. Report each transaction hash and the final balance on every chain.
```

### Run the commands directly

```bash theme={null}
# Same-chain payout
polygon-agent send-token --to 0xVendor --symbol USDC --amount 250
polygon-agent send-token --to 0xVendor --symbol USDC --amount 250 --broadcast

# Cross-chain payout (Polygon → Base)
polygon-agent swap --from USDC --to USDC --amount 500 \
  --chain polygon --to-chain base
polygon-agent swap --from USDC --to USDC --amount 500 \
  --chain polygon --to-chain base --broadcast

# Confirm balances across both chains
polygon-agent balances --chains polygon,base
```

Full reference: [Transfers](/payment-services/agentic-payments/cli/transfers) and [Swaps and yield](/payment-services/agentic-payments/cli/swaps-and-yield).

***

## Implementation

<CardGroup cols={2}>
  <Card title="Transfers" icon="paper-plane" href="/payment-services/agentic-payments/cli/transfers">
    `send-token` reference: flags, dry-run, broadcast.
  </Card>

  <Card title="Swaps and yield" icon="arrow-right-arrow-left" href="/payment-services/agentic-payments/cli/swaps-and-yield">
    `swap --to-chain` for cross-chain payouts.
  </Card>

  <Card title="Balances and funding" icon="wallet" href="/payment-services/agentic-payments/cli/balances-and-funding">
    Check balance before the batch; share `fund` URL with fiat-preferring recipients.
  </Card>

  <Card title="Trails" icon="route" href="/trails/index">
    The underlying cross-chain router.
  </Card>
</CardGroup>
