Skip to main content

IDropERC1155

Thirdweb's 'Drop' contracts are distribution mechanisms for tokens. The DropERC721 contract is a distribution mechanism for ERC721 tokens. A minter wallet (i.e. holder of MINTER_ROLE) can (lazy)mint 'n' tokens at once by providing a single base URI for all tokens being lazy minted. The URI for each of the 'n' tokens lazy minted is the provided base URI + {tokenId} of the respective token. (e.g. "ipfs://Qmece.../1"). A minter can choose to lazy mint 'delayed-reveal' tokens. More on 'delayed-reveal' tokens in this article. A contract admin (i.e. holder of DEFAULT_ADMIN_ROLE) can create claim conditions with non-overlapping time windows, and accounts can claim the tokens according to restrictions defined in the claim condition that is active at the time of the transaction.

Methods​

balanceOf​

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

Returns the amount of tokens of token type id owned by account. Requirements: - account cannot be the zero address.

Parameters​

NameTypeDescription
accountaddressundefined
iduint256undefined

Returns​

NameTypeDescription
_0uint256undefined

balanceOfBatch​

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

xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. Requirements: - accounts and ids must have the same length.

Parameters​

NameTypeDescription
accountsaddress[]undefined
idsuint256[]undefined

Returns​

NameTypeDescription
_0uint256[]undefined

claim​

function claim(address receiver, uint256 tokenId, uint256 quantity, address currency, uint256 pricePerToken, IDropERC1155.AllowlistProof allowlistProof, bytes data) external payable

Parameters​

NameTypeDescription
receiveraddressundefined
tokenIduint256undefined
quantityuint256undefined
currencyaddressundefined
pricePerTokenuint256undefined
allowlistProofIDropERC1155.AllowlistProofundefined
databytesundefined

isApprovedForAll​

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

Returns true if operator is approved to transfer account's tokens. See {setApprovalForAll}.

Parameters​

NameTypeDescription
accountaddressundefined
operatoraddressundefined

Returns​

NameTypeDescription
_0boolundefined

lazyMint​

function lazyMint(uint256 amount, string baseURIForTokens) external nonpayable

Lets an account with MINTER_ROLE lazy mint 'n' NFTs. The URIs for each token is the provided _baseURIForTokens + {tokenId}.

Parameters​

NameTypeDescription
amountuint256The amount of NFTs to lazy mint.
baseURIForTokensstringThe URI for the NFTs to lazy mint.

safeBatchTransferFrom​

function safeBatchTransferFrom(address from, address to, uint256[] ids, uint256[] amounts, bytes data) external nonpayable

xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. Emits a {TransferBatch} event. Requirements: - ids and amounts must have the same length. - If to refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.

Parameters​

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

safeTransferFrom​

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

Transfers amount tokens of token type id from from to to. Emits a {TransferSingle} event. Requirements: - to cannot be the zero address. - If the caller is not from, it must have been approved to spend from's tokens via {setApprovalForAll}. - from must have a balance of tokens of type id of at least amount. - If to refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value.

Parameters​

NameTypeDescription
fromaddressundefined
toaddressundefined
iduint256undefined
amountuint256undefined
databytesundefined

setApprovalForAll​

function setApprovalForAll(address operator, bool approved) external nonpayable

Grants or revokes permission to operator to transfer the caller's tokens, according to approved, Emits an {ApprovalForAll} event. Requirements: - operator cannot be the caller.

Parameters​

NameTypeDescription
operatoraddressundefined
approvedboolundefined

setClaimConditions​

function setClaimConditions(uint256 tokenId, IDropClaimCondition.ClaimCondition[] phases, bool resetClaimEligibility) external nonpayable

Parameters​

NameTypeDescription
tokenIduint256undefined
phasesIDropClaimCondition.ClaimCondition[]undefined
resetClaimEligibilityboolundefined

supportsInterface​

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

Returns true if this contract implements the interface defined by interfaceId. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.

Parameters​

NameTypeDescription
interfaceIdbytes4undefined

Returns​

NameTypeDescription
_0boolundefined

Events​

ApprovalForAll​

event ApprovalForAll(address indexed account, address indexed operator, bool approved)

Parameters​

NameTypeDescription
account indexedaddressundefined
operator indexedaddressundefined
approvedboolundefined

ClaimConditionsUpdated​

event ClaimConditionsUpdated(uint256 indexed tokenId, IDropClaimCondition.ClaimCondition[] claimConditions)

Emitted when new claim conditions are set for a token.

Parameters​

NameTypeDescription
tokenId indexeduint256undefined
claimConditionsIDropClaimCondition.ClaimCondition[]undefined

MaxTotalSupplyUpdated​

event MaxTotalSupplyUpdated(uint256 tokenId, uint256 maxTotalSupply)

Emitted when the global max supply of a token is updated.

Parameters​

NameTypeDescription
tokenIduint256undefined
maxTotalSupplyuint256undefined

SaleRecipientForTokenUpdated​

event SaleRecipientForTokenUpdated(uint256 indexed tokenId, address saleRecipient)

Emitted when the sale recipient for a particular tokenId is updated.

Parameters​

NameTypeDescription
tokenId indexeduint256undefined
saleRecipientaddressundefined

TokensClaimed​

event TokensClaimed(uint256 indexed claimConditionIndex, uint256 indexed tokenId, address indexed claimer, address receiver, uint256 quantityClaimed)

Emitted when tokens are claimed.

Parameters​

NameTypeDescription
claimConditionIndex indexeduint256undefined
tokenId indexeduint256undefined
claimer indexedaddressundefined
receiveraddressundefined
quantityClaimeduint256undefined

TokensLazyMinted​

event TokensLazyMinted(uint256 startTokenId, uint256 endTokenId, string baseURI)

Emitted when tokens are lazy minted.

Parameters​

NameTypeDescription
startTokenIduint256undefined
endTokenIduint256undefined
baseURIstringundefined

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