Send ERC20 Token
Send ERC20 tokens (USDC, USDT, DAI, WETH, etc.) to another wallet address. Validates balance before transfer. Works on any EVM chain. Ideal for: payments, automated payouts, DCA distribution, portfolio rebalancing.
Catalog action EVM Onchain wallet Gas send
Send ERC20 tokens (USDC, USDT, DAI, WETH, etc.) to another wallet address. Validates balance before transfer. Works on any EVM chain. Ideal for: payments, automated payouts, DCA distribution, portfolio rebalancing.
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
| Field | Value |
|---|---|
| Action ID | send-erc20-token |
| Category | EVM Onchain |
| Connector | wallet |
| Requires gas | Yes |
| Funds movement | send |
| Tags | blockchain, evm, erc20, token, transfer, send, payment, write |
Payload Schema
| Field | Type | Required | Description |
|---|---|---|---|
tokenAddress | string | Yes | The ERC20 token contract address |
recipientAddress | string | Yes | The recipient address |
amount | string | Yes | Amount to send in smallest unit (wei) as string (e.g., "1000000" for 1 USDC). Must be a positive integer. |
chainId | number | Yes | Chain ID (1=Ethereum, 137=Polygon, 56=BSC, 8453=Base, etc.) |
gasLimit | string | No | Optional gas limit as a positive integer string (e.g., "21000") |
Result Schema
| Field | Type | Required | Description |
|---|---|---|---|
status | string | Yes | - |
transactionHash | string | Yes | - |
blockNumber | number | No | Block number where the transaction was confirmed |
tokenAddress | string | No | Token contract address |
recipientAddress | string | No | Recipient wallet address |
amount | string | No | Amount transferred in smallest unit (wei) |
amountFormatted | string | No | Human-readable amount with decimals (e.g., '1.5' instead of '1500000') |
tokenSymbol | string | No | Token symbol (e.g., USDC, USDT) |
chainId | number | No | Chain ID where the transaction was executed |
Examples
json{ "type": "send-erc20-token", "payload": { "tokenAddress": "0x0000000000000000000000000000000000000000", "recipientAddress": "0x0000000000000000000000000000000000000000", "amount": "1000000", "chainId": 8453 }, "children": [], "connector": { "type": "wallet", "id": "conn_wallet" }}
bashcurl -X POST "https://api.b3os.org/v1/actions/send-erc20-token/test" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "inputs": { "tokenAddress": "0x0000000000000000000000000000000000000000", "recipientAddress": "0x0000000000000000000000000000000000000000", "amount": "1000000", "chainId": 8453 }}'
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.
