Skip to main content

How to send a batch payment?

What is the batch payment?

Batch payment in MPCVault allows you to send cryptocurrency to multiple addresses in a single transaction, which is both time-efficient and cost-effective. You can send cryptocurrency to up to 254 recipients per request, with the option to send different or equal amounts. You can also clone a previous payment or upload a CSV file to create a new batch payment. All the payment entries will be visible in your transaction history for easy tracking and management.

Supported assets

NetworkAssets
EthereumETH, ERC-20
Ethereum(Goerli Testnet)ETH, ERC-20
PolygonMATIC, ERC-20
BNB Smart ChainBNB, BEP-20
ArbitrumETH, ERC-20
OptimismETH, ERC-20
Avalanche C-ChainAVAX, ERC-20
BaseETH, ERC-20
BitcoinBTC (Only supports BTC)

How to set up a batch payment?

If this is your first time using batch payment, please follow the steps below:

  1. Select a vault, and from the vault's details page, click the "Batch payment" tab on the side menu, then click "New batch payment".

    Docusaurus Plushie

  2. Select the wallet and asset you want to use. Then, fill in the recipient's address and the amount you want to send. Alternatively, you can use our CSV file upload feature to quickly import a list of prepared addresses and amounts. To upload a CSV or Excel file, click on the "Upload CSV/Excel" button, but be sure to review the notes in the pop-up window before uploading the file.

    Docusaurus Plushie

  3. Click "Continue" and then confirm the payment details. After verifying that everything is correct, click "Confirm" to successfully create a batch payment event.

    Docusaurus Plushie

  4. Initiate the transaction

    4.1. When the asset of the transaction is the native cryptocurrency of that blockchain, click "Create batch transaction" to initiate a transaction for a batch payment.

    Docusaurus Plushie

    4.2. When the asset of the transaction is an ERC-20 token, it is necessary to first authorize the contract so that the token contract can record the amount and address of tokens you have authorized. Only after obtaining sufficient authorization can you initiate the transaction. Therefore, the following two steps are required:

    • Click "Create approval transaction" and sign on the MPCVault app to authorize the contract.

    • Click "Create batch transaction" to initiate the transaction.

      Docusaurus Plushie

Attention📣

Batch payment of ERC-20 token requires two steps: Approval and Send. When making multiple batch payments of the same ERC-20 token, please process the two signing requests (Approval and Send) of one payment in order before processing to the next. This is to prevent transaction failures due to a mismatch between the send amount and the approved allowance.

For example, you initiate two batch payments of USDC on Polygon network, the first for 300 USDC and the second for 200 USDC:

  • Signing order: Batch tx - approval (300 USDC) --> Batch tx - send (300 USDC)--> Batch tx - approval (200 USDC)--> Batch tx - send (200 USDC) ✅
    • Like this is no problem!
  • Signing order: Batch tx - approval (300 USDC) --> Batch tx - approval (200 USDC) --> Batch tx - send (300 USDC) --> Batch tx - send (200 USDC) ❌
    • Like this, the transaction for the 300 USDC batch send will fail.

Why does the authorization transaction fail? (e.g. USDT)

When attempting to perform batch payments with USDT tokens on the Ethereum blockchain, you may encounter exceptions during the smart contract authorization process. This is because certain tokens may have insufficient allowance to cover your current transaction, requiring you to revoke the existing approval for that token. It is recommended to perform the revocation through a blockchain explorer. This action is performed on-chain and will incur gas fees. For tokens with non-standard approvals, if you fail to revoke the existing approval, the new authorization will be unsuccessful. USDT and CRV are two tokens that follow this non-standard approval process.

How to revoke a token approval?

Taking USDT on the Ethereum network as an example, follow these steps to reset the authorization amount and initiate the transaction again:

  1. Open the etherscan and navigate to the USDT contract.
  2. Click on the " Connect to Web3 " button to connect to your wallet. Please note that only the owner of the address can revoke the smart contract's authorization.
  3. Locate the "approve " function. Parameter settings are as follows:
    _spender (address): 0xa4994144a9217e3779bDa588798EfF546b69DEfB
    _value (uint256): 0
    Then click on the "Write" button.
  4. Go back to the MPCVault App, agree and sign this signing request.

After completing these steps, you can retry the batch payment.

MPCVault batch contract

NetworkChain IDBlock explorerBatch contract address
Ethereum1etherscan0xa4994144a9217e3779bda588798eff546b69defb
Ethereum(Goerli Testnet)5goerli.etherscan0x88558f3d326e33dc5bfbcddf9033237a731720bb
Polygon137polygonscan0x6569189b6f3c9107abf61383a8f7bbe30263ecde
BNB Smart Chain56bscscan0xa4994144a9217e3779bda588798eff546b69defb
Arbitrum42161arbiscan0x09ef519886ff608c7965d7d8dc4fbed62c083b6e
Optimism10optimistic0xa4994144a9217e3779bda588798eff546b69defb
Avalanche C-Chain43114snowtrace0x09ef519886ff608c7965d7d8dc4fbed62c083b6e
Base8453basescan0x09ef519886ff608c7965d7d8dc4fbed62c083b6e