ERC1155Base
The ERC1155Base smart contract implements the ERC1155 NFT standard. It includes the following additions to standard ERC1155 logic: - Ability to mint NFTs via the provided mintTo and batchMintTo functions. - Contract metadata for royalty support on platforms such as OpenSea that use off-chain information to distribute royalties. - Ownership of the contract, with the ability to restrict certain functions to only be called by the contract's owner. - Multicall capability to perform multiple actions atomically - EIP 2981 compliance for royalty support on NFT marketplaces.
Methods
OPERATOR_FILTER_REGISTRY
function OPERATOR_FILTER_REGISTRY() external view returns (contract IOperatorFilterRegistry)
Returns
| Name | Type | Description | 
|---|
| _0 | contract IOperatorFilterRegistry | undefined | 
balanceOf
function balanceOf(address, uint256) external view returns (uint256)
Get the balance of an account's Tokens.
Parameters
| Name | Type | Description | 
|---|
| _0 | address | undefined | 
| _1 | uint256 | undefined | 
Returns
| Name | Type | Description | 
|---|
| _0 | uint256 | undefined | 
balanceOfBatch
function balanceOfBatch(address[] accounts, uint256[] ids) external view returns (uint256[])
Parameters
| Name | Type | Description | 
|---|
| accounts | address[] | undefined | 
| ids | uint256[] | undefined | 
Returns
| Name | Type | Description | 
|---|
| _0 | uint256[] | undefined | 
batchMintTo
function batchMintTo(address _to, uint256[] _tokenIds, uint256[] _amounts, string _baseURI) external nonpayable
Lets an authorized address mint multiple NEW NFTs at once to a recipient.
The logic in the _canMint function determines whether the caller is authorized to mint NFTs. If _tokenIds[i] == type(uint256).max a new NFT at tokenId nextTokenIdToMint is minted. If the given tokenIds[i] < nextTokenIdToMint, then additional supply of an existing NFT is minted. The metadata for each new NFT is stored at baseURI/{tokenID of NFT}
Parameters
| Name | Type | Description | 
|---|
| _to | address | The recipient of the NFT to mint. | 
| _tokenIds | uint256[] | The tokenIds of the NFTs to mint. | 
| _amounts | uint256[] | The amounts of each NFT to mint. | 
| _baseURI | string | The baseURI for the nnumber of NFTs minted. The metadata for each NFT isbaseURI/tokenId | 
burn
function burn(address _owner, uint256 _tokenId, uint256 _amount) external nonpayable
Lets an owner or approved operator burn NFTs of the given tokenId.
Parameters
| Name | Type | Description | 
|---|
| _owner | address | The owner of the NFT to burn. | 
| _tokenId | uint256 | The tokenId of the NFT to burn. | 
| _amount | uint256 | The amount of the NFT to burn. | 
burnBatch
function burnBatch(address _owner, uint256[] _tokenIds, uint256[] _amounts) external nonpayable
Lets an owner or approved operator burn NFTs of the given tokenIds.
Parameters
| Name | Type | Description | 
|---|
| _owner | address | The owner of the NFTs to burn. | 
| _tokenIds | uint256[] | The tokenIds of the NFTs to burn. | 
| _amounts | uint256[] | The amounts of the NFTs to burn. | 
contractURI
function contractURI() external view returns (string)
Returns the contract metadata URI.
Returns
| Name | Type | Description | 
|---|
| _0 | string | undefined | 
getBaseURICount
function getBaseURICount() external view returns (uint256)
Returns the count of batches of NFTs.
Each batch of tokens has an in ID and an associated baseURI. See {batchIds}.
Returns
| Name | Type | Description | 
|---|
| _0 | uint256 | undefined | 
getBatchIdAtIndex
function getBatchIdAtIndex(uint256 _index) external view returns (uint256)
Returns the ID for the batch of tokens the given tokenId belongs to.
See {getBaseURICount}.
Parameters
| Name | Type | Description | 
|---|
| _index | uint256 | ID of a token. | 
Returns
| Name | Type | Description | 
|---|
| _0 | uint256 | undefined | 
getDefaultRoyaltyInfo
function getDefaultRoyaltyInfo() external view returns (address, uint16)
Returns the default royalty recipient and BPS for this contract's NFTs.
Returns
| Name | Type | Description | 
|---|
| _0 | address | undefined | 
| _1 | uint16 | undefined | 
getRoyaltyInfoForToken
function getRoyaltyInfoForToken(uint256 _tokenId) external view returns (address, uint16)
View royalty info for a given token.
Returns royalty recipient and bps for _tokenId.
Parameters
| Name | Type | Description | 
|---|
| _tokenId | uint256 | The tokenID of the NFT for which to query royalty info. | 
Returns
| Name | Type | Description | 
|---|
| _0 | address | undefined | 
| _1 | uint16 | undefined | 
isApprovedForAll
function isApprovedForAll(address, address) external view returns (bool)
Queries the approval status of an operator for a given owner.
Parameters
| Name | Type | Description | 
|---|
| _0 | address | undefined | 
| _1 | address | undefined | 
Returns
| Name | Type | Description | 
|---|
| _0 | bool | undefined | 
mintTo
function mintTo(address _to, uint256 _tokenId, string _tokenURI, uint256 _amount) external nonpayable
Lets an authorized address mint NFTs to a recipient.
- The logic in the _canMint function determines whether the caller is authorized to mint NFTs. - If _tokenId == type(uint256).max a new NFT at tokenId nextTokenIdToMint is minted. If the given tokenId < nextTokenIdToMint, then additional supply of an existing NFT is being minted.
Parameters
| Name | Type | Description | 
|---|
| _to | address | The recipient of the NFTs to mint. | 
| _tokenId | uint256 | The tokenId of the NFT to mint. | 
| _tokenURI | string | The full metadata URI for the NFTs minted (if a new NFT is being minted). | 
| _amount | uint256 | The amount of the same NFT to mint. | 
multicall
function multicall(bytes[] data) external nonpayable returns (bytes[] results)
Receives and executes a batch of function calls on this contract.
Receives and executes a batch of function calls on this contract.
Parameters
| Name | Type | Description | 
|---|
| data | bytes[] | The bytes data that makes up the batch of function calls to execute. | 
Returns
| Name | Type | Description | 
|---|
| results | bytes[] | The bytes data that makes up the result of the batch of function calls executed. | 
name
function name() external view returns (string)
Returns
| Name | Type | Description | 
|---|
| _0 | string | undefined | 
nextTokenIdToMint
function nextTokenIdToMint() external view returns (uint256)
The tokenId assigned to the next new NFT to be minted.
Returns
| Name | Type | Description | 
|---|
| _0 | uint256 | undefined | 
operatorRestriction
function operatorRestriction() external view returns (bool)
Returns
| Name | Type | Description | 
|---|
| _0 | bool | undefined | 
owner
function owner() external view returns (address)
Returns the owner of the contract.
Returns
| Name | Type | Description | 
|---|
| _0 | address | undefined | 
royaltyInfo
function royaltyInfo(uint256 tokenId, uint256 salePrice) external view returns (address receiver, uint256 royaltyAmount)
View royalty info for a given token and sale price.
Returns royalty amount and recipient for tokenId and salePrice.
Parameters
| Name | Type | Description | 
|---|
| tokenId | uint256 | The tokenID of the NFT for which to query royalty info. | 
| salePrice | uint256 | Sale price of the token. | 
Returns
| Name | Type | Description | 
|---|
| receiver | address | Address of royalty recipient account. | 
| royaltyAmount | uint256 | Royalty amount calculated at current royaltyBps value. | 
safeBatchTransferFrom
function safeBatchTransferFrom(address from, address to, uint256[] ids, uint256[] amounts, bytes data) external nonpayable
See {IERC1155-safeBatchTransferFrom}.
Parameters
| Name | Type | Description | 
|---|
| from | address | undefined | 
| to | address | undefined | 
| ids | uint256[] | undefined | 
| amounts | uint256[] | undefined | 
| data | bytes | undefined | 
safeTransferFrom
function safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes data) external nonpayable
See {IERC1155-safeTransferFrom}.
Parameters
| Name | Type | Description | 
|---|
| from | address | undefined | 
| to | address | undefined | 
| id | uint256 | undefined | 
| amount | uint256 | undefined | 
| data | bytes | undefined | 
setApprovalForAll
function setApprovalForAll(address operator, bool approved) external nonpayable
See {ERC1155-setApprovalForAll}
Parameters
| Name | Type | Description | 
|---|
| operator | address | undefined | 
| approved | bool | undefined | 
setContractURI
function setContractURI(string _uri) external nonpayable
Lets a contract admin set the URI for contract-level metadata.
Caller should be authorized to setup contractURI, e.g. contract admin. See {_canSetContractURI}. Emits {ContractURIUpdated Event}.
Parameters
| Name | Type | Description | 
|---|
| _uri | string | keccak256 hash of the role. e.g. keccak256("TRANSFER_ROLE") | 
setDefaultRoyaltyInfo
function setDefaultRoyaltyInfo(address _royaltyRecipient, uint256 _royaltyBps) external nonpayable
Updates default royalty recipient and bps.
Caller should be authorized to set royalty info. See {_canSetRoyaltyInfo}. Emits {DefaultRoyalty Event}; See {_setupDefaultRoyaltyInfo}.
Parameters
| Name | Type | Description | 
|---|
| _royaltyRecipient | address | Address to be set as default royalty recipient. | 
| _royaltyBps | uint256 | Updated royalty bps. | 
setOperatorRestriction
function setOperatorRestriction(bool _restriction) external nonpayable
Parameters
| Name | Type | Description | 
|---|
| _restriction | bool | undefined | 
setOwner
function setOwner(address _newOwner) external nonpayable
Lets an authorized wallet set a new owner for the contract.
Parameters
| Name | Type | Description | 
|---|
| _newOwner | address | The address to set as the new owner of the contract. | 
setRoyaltyInfoForToken
function setRoyaltyInfoForToken(uint256 _tokenId, address _recipient, uint256 _bps) external nonpayable
Updates default royalty recipient and bps for a particular token.
Sets royalty info for _tokenId. Caller should be authorized to set royalty info. See {_canSetRoyaltyInfo}. Emits {RoyaltyForToken Event}; See {_setupRoyaltyInfoForToken}.
Parameters
| Name | Type | Description | 
|---|
| _tokenId | uint256 | undefined | 
| _recipient | address | Address to be set as royalty recipient for given token Id. | 
| _bps | uint256 | Updated royalty bps for the token Id. | 
supportsInterface
function supportsInterface(bytes4 interfaceId) external view returns (bool)
Returns whether this contract supports the given interface.
Parameters
| Name | Type | Description | 
|---|
| interfaceId | bytes4 | undefined | 
Returns
| Name | Type | Description | 
|---|
| _0 | bool | undefined | 
symbol
function symbol() external view returns (string)
Returns
| Name | Type | Description | 
|---|
| _0 | string | undefined | 
totalSupply
function totalSupply(uint256) external view returns (uint256)
Returns the total supply of NFTs of a given tokenId
Mapping from tokenId => total circulating supply of NFTs of that tokenId.
Parameters
| Name | Type | Description | 
|---|
| _0 | uint256 | undefined | 
Returns
| Name | Type | Description | 
|---|
| _0 | uint256 | undefined | 
uri
function uri(uint256 _tokenId) external view returns (string)
Returns the metadata URI for the given tokenId.
Parameters
| Name | Type | Description | 
|---|
| _tokenId | uint256 | undefined | 
Returns
| Name | Type | Description | 
|---|
| _0 | string | undefined | 
Events
ApprovalForAll
event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved)
Parameters
| Name | Type | Description | 
|---|
| _owner indexed | address | undefined | 
| _operator indexed | address | undefined | 
| _approved | bool | undefined | 
ContractURIUpdated
event ContractURIUpdated(string prevURI, string newURI)
Parameters
| Name | Type | Description | 
|---|
| prevURI | string | undefined | 
| newURI | string | undefined | 
DefaultRoyalty
event DefaultRoyalty(address indexed newRoyaltyRecipient, uint256 newRoyaltyBps)
Parameters
| Name | Type | Description | 
|---|
| newRoyaltyRecipient indexed | address | undefined | 
| newRoyaltyBps | uint256 | undefined | 
OperatorRestriction
event OperatorRestriction(bool restriction)
Parameters
| Name | Type | Description | 
|---|
| restriction | bool | undefined | 
OwnerUpdated
event OwnerUpdated(address indexed prevOwner, address indexed newOwner)
Parameters
| Name | Type | Description | 
|---|
| prevOwner indexed | address | undefined | 
| newOwner indexed | address | undefined | 
RoyaltyForToken
event RoyaltyForToken(uint256 indexed tokenId, address indexed royaltyRecipient, uint256 royaltyBps)
Parameters
| Name | Type | Description | 
|---|
| tokenId indexed | uint256 | undefined | 
| royaltyRecipient indexed | address | undefined | 
| royaltyBps | uint256 | undefined | 
TransferBatch
event TransferBatch(address indexed _operator, address indexed _from, address indexed _to, uint256[] _ids, uint256[] _values)
Parameters
| Name | Type | Description | 
|---|
| _operator indexed | address | undefined | 
| _from indexed | address | undefined | 
| _to indexed | address | undefined | 
| _ids | uint256[] | undefined | 
| _values | uint256[] | undefined | 
TransferSingle
event TransferSingle(address indexed _operator, address indexed _from, address indexed _to, uint256 _id, uint256 _value)
Parameters
| Name | Type | Description | 
|---|
| _operator indexed | address | undefined | 
| _from indexed | address | undefined | 
| _to indexed | address | undefined | 
| _id | uint256 | undefined | 
| _value | uint256 | undefined | 
URI
event URI(string _value, uint256 indexed _id)
Parameters
| Name | Type | Description | 
|---|
| _value | string | undefined | 
| _id indexed | uint256 | undefined | 
Errors
OperatorNotAllowed
error OperatorNotAllowed(address operator)
Parameters
| Name | Type | Description | 
|---|
| operator | address | undefined |