# ERC20 batchTransfer functionality

**URL:** <https://forum.openzeppelin.com/t/erc20-batchtransfer-functionality/6978>\
**Category:** Support\
**Created:** [April 14, 2021, 3:14am UTC](https://forum.openzeppelin.com/t/erc20-batchtransfer-functionality/6978 "2021-04-14T03:14:04Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![maxareo](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/maxareo/32/11606_2.png) [@maxareo](https://forum.openzeppelin.com/u/maxareo)\
**Post date:** [April 19, 2021, 7:16am UTC](https://forum.openzeppelin.com/t/erc20-batchtransfer-functionality/6978/5 "2021-04-19T07:16:32Z")

</div>

I like this abstraction, however, would there be an example walking us through a use case?

```
function multicall(bytes[] calldata data) external returns (bytes[] memory results) {
    results = new bytes[](data.length);
    for (uint i = 0; i < data.length; i++) {
        results[i] = Address.functionDelegateCall(address(this), data[i]);
    }
    return results;
}

```

Like how someone can pass input parameters and what will be returned? No example can be better than a batchTransfer of ERC20 tokens. Thanks.

---

_[View the full topic](https://forum.openzeppelin.com/t/erc20-batchtransfer-functionality/6978)._
