what is the use of data in parameter function of ERC1155
bytes memory data

function _mint(
    address to,
    uint256 id,
    uint256 amount,
    bytes memory data
) internal virtual {
    require(to != address(0), "ERC1155: mint to the zero address");

    address operator = _msgSender();
    uint256[] memory ids = _asSingletonArray(id);
    uint256[] memory amounts = _asSingletonArray(amount);

    _beforeTokenTransfer(operator, address(0), to, ids, amounts, data);

    _balances[id][to] += amount;
    emit TransferSingle(operator, address(0), to, id, amount);

    _afterTokenTransfer(operator, address(0), to, ids, amounts, data);

    _doSafeTransferAcceptanceCheck(operator, address(0), to, id, amount, data);
  • What's the question?
    – Ismael
    Sep 28, 2022 at 4:04
  • @Ismael Updated question I want to know what is the user of data which is using in mint function Sep 28, 2022 at 4:47

1 Answer 1


It is used to pass additional data as an argument. In any case, you want to pass extra information such as signature to it, you can pass it here with no specified format. I hope this helps :)

  • Could you please give a example of it. like in which cases we have to pass signature Sep 28, 2022 at 6:57
  • Signatures are used at that places in which you provide users signatures at off-chain, and it can have utility like minting in which user would have to pay gas fees not admin. Also, it can have utility in gaming likewise you reward user a coupon after winning and they can claim it using signature on-chain. Oct 7, 2022 at 5:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.