Skip to main content

Payouts

Pay multiple recipients USDC in a single on-chain transaction. Two modes:

  • batch — every recipient can have a different amount (e.g. contributor payroll).
  • split — a total divided equally between recipients. The API does not do this division for you — compute the equal share yourself and send the same amount_usdc for every recipient, with kind: "split".

Every recipient address is screened against the OFAC sanctions list server-side before anything is recorded. If any recipient is sanctioned, the whole payout is refused — nothing is created, nothing is partially executed.

List your payouts​

GET /api/v1/payouts

Scope: read. Priced as a read call.

Create a payout​

POST /api/v1/payouts

Scope: write. Priced as payout_create ($0.01 once your monthly quota is used up).

FieldTypeRequiredNotes
recipientsarrayyes1–500 items — { address, amount_usdc, label? }
kind"batch" | "split"noDefaults to "batch"
labelstringnoMax 120 chars
curl -X POST https://veltro.online/api/v1/payouts \
-H "Authorization: Bearer vltro_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"label": "March contributor split",
"kind": "split",
"recipients": [
{ "address": "0xRecipient1...", "amount_usdc": 100 },
{ "address": "0xRecipient2...", "amount_usdc": 100 },
{ "address": "0xRecipient3...", "amount_usdc": 100 }
]
}'

The response is calldata to sign, not a completed payout — Veltro never signs on your behalf:

{
"data": {
"id": "...",
"totalUsdc": 300,
"feeUsdc": 0.9,
"approve_tx": {
"to": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"spender": "0x...",
"amount": "300900000",
"chainId": 8453
},
"execute_tx": {
"to": "0x...",
"data": "0x...",
"value": "0",
"chainId": 8453
}
}
}

Sign approve_tx first (USDC → the batch payout contract, for totalUsdc + feeUsdc), then execute_tx (pays every recipient in one call). The flat fee is 0.3% on the payout total, shown up front — see pricing.

You can also review and sign a payout from Dashboard → Payouts, or ask the Veltro agent to create one in natural language — all three surfaces share the exact same OFAC screening and payout logic.