Skip to main content

ERC1155SignatureMint

BASE: ERC1155Base EXTENSION: SignatureMintERC1155 The ERC1155SignatureMint contract uses the ERC1155Base contract, along with the SignatureMintERC1155 extension. The 'signature minting' mechanism in the SignatureMintERC1155 extension uses EIP 712, and is a way for a contract admin to authorize an external party's request to mint tokens on the admin's contract. At a high level, this means you can authorize some external party to mint tokens on your contract, and specify what exactly will be minted by that external party.

Methods​

OPERATOR_FILTER_REGISTRY​

function OPERATOR_FILTER_REGISTRY() external view returns (contract IOperatorFilterRegistry)

Returns​

NameTypeDescription
_0contract IOperatorFilterRegistryundefined

balanceOf​

function balanceOf(address, uint256) external view returns (uint256)

Get the balance of an account's Tokens.

Parameters​

NameTypeDescription
_0addressundefined
_1uint256undefined

Returns​

NameTypeDescription
_0uint256undefined

balanceOfBatch​

function balanceOfBatch(address[] accounts, uint256[] ids) external view returns (uint256[])

Parameters​

NameTypeDescription
accountsaddress[]undefined
idsuint256[]undefined

Returns​

NameTypeDescription
_0uint256[]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​

NameTypeDescription
_toaddressThe recipient of the NFT to mint.
_tokenIdsuint256[]The tokenIds of the NFTs to mint.
_amountsuint256[]The amounts of each NFT to mint.
_baseURIstringThe baseURI for the n number of NFTs minted. The metadata for each NFT is baseURI/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​

NameTypeDescription
_owneraddressThe owner of the NFT to burn.
_tokenIduint256The tokenId of the NFT to burn.
_amountuint256The 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​

NameTypeDescription
_owneraddressThe owner of the NFTs to burn.
_tokenIdsuint256[]The tokenIds of the NFTs to burn.
_amountsuint256[]The amounts of the NFTs to burn.

contractURI​

function contractURI() external view returns (string)

Returns the contract metadata URI.

Returns​

NameTypeDescription
_0stringundefined

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​

NameTypeDescription
_0uint256undefined

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​

NameTypeDescription
_indexuint256ID of a token.

Returns​

NameTypeDescription
_0uint256undefined

getDefaultRoyaltyInfo​

function getDefaultRoyaltyInfo() external view returns (address, uint16)

Returns the default royalty recipient and BPS for this contract's NFTs.

Returns​

NameTypeDescription
_0addressundefined
_1uint16undefined

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​

NameTypeDescription
_tokenIduint256The tokenID of the NFT for which to query royalty info.

Returns​

NameTypeDescription
_0addressundefined
_1uint16undefined

isApprovedForAll​

function isApprovedForAll(address, address) external view returns (bool)

Queries the approval status of an operator for a given owner.

Parameters​

NameTypeDescription
_0addressundefined
_1addressundefined

Returns​

NameTypeDescription
_0boolundefined

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​

NameTypeDescription
_toaddressThe recipient of the NFTs to mint.
_tokenIduint256The tokenId of the NFT to mint.
_tokenURIstringThe full metadata URI for the NFTs minted (if a new NFT is being minted).
_amountuint256The amount of the same NFT to mint.

mintWithSignature​

function mintWithSignature(ISignatureMintERC1155.MintRequest _req, bytes _signature) external payable returns (address signer)

Parameters​

NameTypeDescription
_reqISignatureMintERC1155.MintRequestundefined
_signaturebytesundefined

Returns​

NameTypeDescription
signeraddressundefined

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​

NameTypeDescription
databytes[]The bytes data that makes up the batch of function calls to execute.

Returns​

NameTypeDescription
resultsbytes[]The bytes data that makes up the result of the batch of function calls executed.

name​

function name() external view returns (string)

Returns​

NameTypeDescription
_0stringundefined

nextTokenIdToMint​

function nextTokenIdToMint() external view returns (uint256)

The tokenId assigned to the next new NFT to be minted.

Returns​

NameTypeDescription
_0uint256undefined

operatorRestriction​

function operatorRestriction() external view returns (bool)

Returns​

NameTypeDescription
_0boolundefined

owner​

function owner() external view returns (address)

Returns the owner of the contract.

Returns​

NameTypeDescription
_0addressundefined

primarySaleRecipient​

function primarySaleRecipient() external view returns (address)

Returns primary sale recipient address.

Returns​

NameTypeDescription
_0addressundefined

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​

NameTypeDescription
tokenIduint256The tokenID of the NFT for which to query royalty info.
salePriceuint256Sale price of the token.

Returns​

NameTypeDescription
receiveraddressAddress of royalty recipient account.
royaltyAmountuint256Royalty 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​

NameTypeDescription
fromaddressundefined
toaddressundefined
idsuint256[]undefined
amountsuint256[]undefined
databytesundefined

safeTransferFrom​

function safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes data) external nonpayable

See {IERC1155-safeTransferFrom}.

Parameters​

NameTypeDescription
fromaddressundefined
toaddressundefined
iduint256undefined
amountuint256undefined
databytesundefined

setApprovalForAll​

function setApprovalForAll(address operator, bool approved) external nonpayable

See {ERC1155-setApprovalForAll}

Parameters​

NameTypeDescription
operatoraddressundefined
approvedboolundefined

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​

NameTypeDescription
_uristringkeccak256 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​

NameTypeDescription
_royaltyRecipientaddressAddress to be set as default royalty recipient.
_royaltyBpsuint256Updated royalty bps.

setOperatorRestriction​

function setOperatorRestriction(bool _restriction) external nonpayable

Parameters​

NameTypeDescription
_restrictionboolundefined

setOwner​

function setOwner(address _newOwner) external nonpayable

Lets an authorized wallet set a new owner for the contract.

Parameters​

NameTypeDescription
_newOwneraddressThe address to set as the new owner of the contract.

setPrimarySaleRecipient​

function setPrimarySaleRecipient(address _saleRecipient) external nonpayable

Updates primary sale recipient.

Caller should be authorized to set primary sales info. See {_canSetPrimarySaleRecipient}. Emits {PrimarySaleRecipientUpdated Event}; See {_setupPrimarySaleRecipient}.

Parameters​

NameTypeDescription
_saleRecipientaddressAddress to be set as new recipient of primary sales.

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​

NameTypeDescription
_tokenIduint256undefined
_recipientaddressAddress to be set as royalty recipient for given token Id.
_bpsuint256Updated royalty bps for the token Id.

supportsInterface​

function supportsInterface(bytes4 interfaceId) external view returns (bool)

Returns whether this contract supports the given interface.

Parameters​

NameTypeDescription
interfaceIdbytes4undefined

Returns​

NameTypeDescription
_0boolundefined

symbol​

function symbol() external view returns (string)

Returns​

NameTypeDescription
_0stringundefined

totalSupply​

function totalSupply(uint256) external view returns (uint256)

Returns the total supply of NFTs of a given tokenId

Parameters​

NameTypeDescription
_0uint256undefined

Returns​

NameTypeDescription
_0uint256undefined

uri​

function uri(uint256 _tokenId) external view returns (string)

Returns the metadata URI for the given tokenId.

Parameters​

NameTypeDescription
_tokenIduint256undefined

Returns​

NameTypeDescription
_0stringundefined

verify​

function verify(ISignatureMintERC1155.MintRequest _req, bytes _signature) external view returns (bool success, address signer)

Parameters​

NameTypeDescription
_reqISignatureMintERC1155.MintRequestundefined
_signaturebytesundefined

Returns​

NameTypeDescription
successboolundefined
signeraddressundefined

Events​

ApprovalForAll​

event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved)

Parameters​

NameTypeDescription
_owner indexedaddressundefined
_operator indexedaddressundefined
_approvedboolundefined

ContractURIUpdated​

event ContractURIUpdated(string prevURI, string newURI)

Parameters​

NameTypeDescription
prevURIstringundefined
newURIstringundefined

DefaultRoyalty​

event DefaultRoyalty(address indexed newRoyaltyRecipient, uint256 newRoyaltyBps)

Parameters​

NameTypeDescription
newRoyaltyRecipient indexedaddressundefined
newRoyaltyBpsuint256undefined

OperatorRestriction​

event OperatorRestriction(bool restriction)

Parameters​

NameTypeDescription
restrictionboolundefined

OwnerUpdated​

event OwnerUpdated(address indexed prevOwner, address indexed newOwner)

Parameters​

NameTypeDescription
prevOwner indexedaddressundefined
newOwner indexedaddressundefined

PrimarySaleRecipientUpdated​

event PrimarySaleRecipientUpdated(address indexed recipient)

Parameters​

NameTypeDescription
recipient indexedaddressundefined

RoyaltyForToken​

event RoyaltyForToken(uint256 indexed tokenId, address indexed royaltyRecipient, uint256 royaltyBps)

Parameters​

NameTypeDescription
tokenId indexeduint256undefined
royaltyRecipient indexedaddressundefined
royaltyBpsuint256undefined

TokensMintedWithSignature​

event TokensMintedWithSignature(address indexed signer, address indexed mintedTo, uint256 indexed tokenIdMinted, ISignatureMintERC1155.MintRequest mintRequest)

Parameters​

NameTypeDescription
signer indexedaddressundefined
mintedTo indexedaddressundefined
tokenIdMinted indexeduint256undefined
mintRequestISignatureMintERC1155.MintRequestundefined

TransferBatch​

event TransferBatch(address indexed _operator, address indexed _from, address indexed _to, uint256[] _ids, uint256[] _values)

Parameters​

NameTypeDescription
_operator indexedaddressundefined
_from indexedaddressundefined
_to indexedaddressundefined
_idsuint256[]undefined
_valuesuint256[]undefined

TransferSingle​

event TransferSingle(address indexed _operator, address indexed _from, address indexed _to, uint256 _id, uint256 _value)

Parameters​

NameTypeDescription
_operator indexedaddressundefined
_from indexedaddressundefined
_to indexedaddressundefined
_iduint256undefined
_valueuint256undefined

URI​

event URI(string _value, uint256 indexed _id)

Parameters​

NameTypeDescription
_valuestringundefined
_id indexeduint256undefined

Errors​

OperatorNotAllowed​

error OperatorNotAllowed(address operator)

Parameters​

NameTypeDescription
operatoraddressundefined