> For the complete documentation index, see [llms.txt](https://seer-3.gitbook.io/seer-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://seer-3.gitbook.io/seer-documentation/developers/contracts/interaction/conditional-tokens/erc1155/erc1155tokenreceiver.md).

# ERC1155TokenReceiver

## Functions

### onERC1155Received

```solidity
function onERC1155Received(address operator, address from, uint256 id, uint256 value, bytes data) external returns (bytes4)
```

*Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. To accept the transfer, this must return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` (i.e. 0xf23a6e61, or its own function selector).*

**Parameters**

| Name     | Type    | Description                                                |
| -------- | ------- | ---------------------------------------------------------- |
| operator | address | The address which initiated the transfer (i.e. msg.sender) |
| from     | address | The address which previously owned the token               |
| id       | uint256 | The ID of the token being transferred                      |
| value    | uint256 | The amount of tokens being transferred                     |
| data     | bytes   | Additional data with no specified format                   |

**Return Values**

| Name | Type   | Description                                                                                            |
| ---- | ------ | ------------------------------------------------------------------------------------------------------ |
| \[0] | bytes4 | `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed |

### onERC1155BatchReceived

```solidity
function onERC1155BatchReceived(address operator, address from, uint256[] ids, uint256[] values, bytes data) external returns (bytes4)
```

*Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. To accept the transfer(s), this must return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` (i.e. 0xbc197c81, or its own function selector).*

**Parameters**

| Name     | Type       | Description                                                                                         |
| -------- | ---------- | --------------------------------------------------------------------------------------------------- |
| operator | address    | The address which initiated the batch transfer (i.e. msg.sender)                                    |
| from     | address    | The address which previously owned the token                                                        |
| ids      | uint256\[] | An array containing ids of each token being transferred (order and length must match values array)  |
| values   | uint256\[] | An array containing amounts of each token being transferred (order and length must match ids array) |
| data     | bytes      | Additional data with no specified format                                                            |

**Return Values**

| Name | Type   | Description                                                                                                     |
| ---- | ------ | --------------------------------------------------------------------------------------------------------------- |
| \[0] | bytes4 | `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` if transfer is allowed |
