Disperse ERC20 Tokens logo

Catalog action EVM Onchain wallet Gas disperse

Batch send ERC20 tokens (USDC, USDT, WETH, etc.) to multiple wallet addresses with source wallet privacy. Your funding wallet is unlinked from recipients - AnySpend's global address breaks the on-chain connection. Note: Recipients in the same batch ARE linked to each other (same disperse transaction). Use cases: (1) Token airdrops - distribute tokens without revealing your source wallet, (2) Payroll in stablecoins - pay team members in USDC/USDT privately, (3) Reward distributions - send token rewards to winners without linking to treasury, (4) Private token distribution - distribute tokens to investors/advisors discreetly. Supports cross-chain: pay with any token on any chain, disperse different tokens on destination chain.

This action can require a wallet connector, gas, token movement, or an external side effect. Test with simulation or a controlled amount before using it in a live workflow.

At a Glance

FieldValue
Action IDanyspend-disperse-erc20-token
CategoryEVM Onchain
Connectorwallet
Requires gasYes
Funds movementdisperse
Tagsanyspend, disperse, erc20, token, airdrop, batch-transfer, multi-send, usdc, usdt, stablecoin, payroll, distribution

Payload Schema

FieldTypeRequiredDescription
srcChainIdnumberYesSource chain ID where your funds are located. If different from dstChainId, AnySpend will handle the cross-chain transfer.
srcTokenAddressstringYesToken address to send from source chain. Use '0x0000000000000000000000000000000000000000' for native ETH, or any ERC20 token address. AnySpend will swap to the destination token if needed.
dstChainIdnumberYesDestination chain ID where tokens will be dispersed. Must have Disperse contract deployed. Supports Base (8453), Base Sepolia (84532), Arbitrum (42161).
dstTokenAddressstringYesContract address of the ERC20 token to disperse on destination chain. Common tokens on Base: USDC (0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913), USDbC (0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA). Common tokens on Arbitrum: USDC (0xaf88d065e77c8cC2239327C5EDb3A432268e5831).
recipientsarrayYesArray of wallet addresses to receive tokens. Each address will receive the corresponding amount from the amounts array. Addresses must be valid Ethereum addresses (0x + 40 hex chars).
amountsarrayYesArray of token amounts to send to each recipient, specified in the token's smallest unit. Must have the same length as recipients array. For USDC/USDT (6 decimals): '1000000' = 1 token. For 18-decimal tokens: '1000000000000000000' = 1 token.
partnerIdstringNoOptional partner ID for AnySpend attribution and analytics tracking.
clientReferenceIdstringNoOptional client reference ID for your own tracking purposes.

Result Schema

FieldTypeRequiredDescription
successbooleanYesWhether the disperse operation completed successfully.
orderobjectNoThe AnySpend order that processed the disperse.
disperseDetailsobjectNoDetails about the disperse distribution.
transactionobjectNoDetails of the funding transaction.
messagestringNoHuman-readable status message.

Examples

json
{ "type": "anyspend-disperse-erc20-token", "payload": { "srcChainId": 8453, "srcTokenAddress": "0x0000000000000000000000000000000000000000", "dstChainId": 8453, "dstTokenAddress": "0x0000000000000000000000000000000000000000", "recipients": "0x0000000000000000000000000000000000000000", "amounts": "1000000" }, "children": [], "connector": { "type": "wallet", "id": "conn_wallet" }}

Payload fields can use workflow expressions such as {{$trigger.body.amount}}, {{$nodes.fetch.result.price}}, and {{$props.asset}} when the value should come from a trigger, prior node, or reusable workflow prop.

Ask a question... ⌘I