PIP-39: Batch Transfer
Transfer Payload with Multiple Receivers
Authors | Pactus Development Team [info@pactus.org] |
---|---|
Discussion | View Discussion PIP-39 |
Category | Core |
Created | 2025-05-12 |
Table of Contents
Abstract
This proposal introduces support for a Batch Transfer payload, enabling a one-to-many scheme for transferring PAC.
Motivation
Batch transfers allow users to include multiple recipients in a single transfer payload, known as BatchTransfer
,
which is executed simultaneously.
This functionality is particularly advantageous for users who wish to send PAC to multiple accounts in one transaction.
Specifications
Currently, transactions in Pactus can include the following payloads:
- Transfer Payload
- Bond Payload
- Unbond Payload
- Withdraw Payload
- Sortition Payload
This PIP proposes the addition of a new payload type: Batch Transfer.
The BatchTransfer
payload will be structured as follows:
Field | Type | Size | Description |
---|---|---|---|
From | Address |
21 Bytes | Sender’s address |
NumberOfRecipients | Number |
Variant | Number of recipients |
Recipients[].To | Address |
21 Bytes | Receiver’s address (within each recipient) |
Recipients[].Amount | Amount |
Variant | Amount to transfer (within each recipient) |
The Batch Transfer payload will be encoded deterministically. The number of recipients will be used to decode the recipients.
Backwards Compatibility
Batch transfers are not backward-compatible.
This feature will be activated at block number 4,703,760
on the Mainnet.
Older versions of the software will not be able to decode or process Batch Transfers.
Security Considerations
The payload will only execute if all recipient addresses are valid and the total sum of the amounts does not exceed the sender’s available balance. The number of recipients is capped at 8 to prevent excessively large transactions that could strain network resources.
Copyright
Copyright and related rights waived via CC0.