Batch Tranfers for Tokens
Batch-Transfer funcitonality is enabled automatically if you create the token from coinmaker at coin.defi.ao
Batch transfers are a feature in AO token contracts that let a process transfer tokens to multiple recipients in one message, instead of sending a separate message for each transfer. This is especially useful for large-scale distributions, like airdrops and rewards.
For developers you can run this script on your process (please review the batch transfer script before loading it):
This script is intended as a general-purpose extension. If your token has custom logic, you may need to replicate your custom logic inside the batch transfer handler to preserve expected behavior.
Use the provided code as a starting point, and modify as necessary to ensure compatibility with your process.
There are multiple ways to run this on the process:
aosinto process,.editor, paste the code,.doneaosinto process,.loadwith a path to a local file that contains the coderun local
aoconnectscript that sends anEvalmessage to the process, with theDatacontaining this code
This Batch-Transfer name and the CSV payload structure and the Cast tag are also planned to be included in the official token blueprint. Tokens that don't do batch transfers with this exact API will not work properly in the context of FLPs
Transfer with credit notices
{
"process": "TOKEN_PROCESS",
"data": "user1,amount1\nuser2,amount2",
"tags": [
{
"name": "Action",
"value": "Batch-Transfer"
}
]
}Transfer without credit notices
If you're handling large-scale distributions involving hundreds of transfers, we highly recommend using batch transfers without credit notices. Each credit notice generates a message that must be processed and paid for, and it also consumes process memory and compute resources. For large-scale distributions, we do not recommend including them.
Reading Batch-Transfers
The classic way to detect a transfer on AO is to monitor the DEBIT and CREDIT notices, which respectively acknowledge a token transfer.
However, since batch transfers can be configured to omit CREDIT notices, the correct way to acknowledge such transfers is to look for the BATCH-DEBIT-NOTICE. This will be followed by a corresponding transfer message that includes all recipient addresses and the total amounts.
Batch transfers are atomic—if there is a batch debit notice, it guarantees that all transfers in the batch have been executed.
Last updated
Was this helpful?