Skip to main content

Payroll

Distribute USDC or USDT to multiple recipients efficiently. Choose between single-transaction batch payments or privacy-enhanced distribution that fans out through independent routing.

Supported Assets

USDC

Batch up to 12 recipients

USDT

Batch up to 12 recipients

Execution Modes

Wallet Mode

Single transaction with multiple recipients. Enter up to 12 recipient addresses and amounts. Each row is validated independently. Single signature covers all transfers in the batch. One signed transaction, one Solscan link on success.
// Each recipient becomes an instruction
const instructions = recipients.map(recipient => [
  // Create ATA if needed (idempotent)
  createAssociatedTokenAccountIdempotentInstruction(...),
  // Transfer tokens
  createTransferCheckedInstruction(...)
]);

Private Mode

Independent private transfers to each recipient. Same interface as wallet mode, but each recipient gets independent privacy. Routing layer provides N ephemeral addresses for N recipients. You send the total amount, which gets distributed across ephemeral addresses. Each recipient’s transfer is tracked independently in the status stepper. Privacy Benefits:
  • Each recipient receives funds from a different routing address
  • No single transaction links you to all recipients
  • Recipients cannot see other recipients in the batch

Recipient Management

FieldValidationRequired
AddressValid Solana address
AmountPositive number
LabelOptional description

Batch Limits

ModeMax RecipientsTransaction Limit
Wallet Mode12Solana 1232-byte limit
Private ModeNo limitScales linearly
Wallet mode is capped at 12 recipients to stay within Solana’s transaction size limit.

CSV Import/Export

Upload a CSV file with recipient data:
address,amount,label
7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU,100.50,Alice
9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM,250.00,Bob

ATA Management

All payroll transactions include idempotent Associated Token Account (ATA) creation. Creates ATA only if it doesn’t exist. Recipients don’t need to pre-create token accounts.