ERC721BatchMintable
Functionality available for contracts that implement the
ERC721,
ERC721Mintable, and
Multicall
extensions.
Allows you to mint multiple NFTs at once to a wallet.
By default, the NFT metadata is uploaded and pinned to IPFS before minting. You can override this default behavior by providing an array of URLs as strings
that point to valid metadata objects.
mint_batch_to
Mint multiple NFTs to a specified wallet address.
from thirdweb.types.nft import NFTMetadataInput
# You can customize this metadata however you like
metadatas = [
NFTMetadataInput.from_json({
"name": "Cool NFT",
"description": "This is a cool NFT",
"image": open("path/to/file.jpg", "rb"),
}),
NFTMetadataInput.from_json({
"name": "Cooler NFT",
"description": "This is a cooler NFT",
"image": open("path/to/file.jpg", "rb"),
}),
]
# You can pass in any address here to mint the NFT to
txs = contract.erc721.mint_batch(metadatas)
receipt = txs[0].receipt
first_token_id = txs[0].id
first_nft = txs[0].data()
Configuration
receiver
The wallet address to mint the NFTs to.
Must be a string.
metadatas = [
# ...
]
tx = contract.erc721.mint_batch_to(
"{{wallet_address}}",
metadatas,
)
metadatas
An array of metadata objects for the NFTs you want to mint.
Must be an List of NFTMetadata objects that conform to the metadata standards.
Alternatively, you can provide an array of strings that point to valid metadata objects,
to override the default behavior of uploading and pinning the metadata to IPFS (shown below).
metadatas = [
"https://example.com/metadata1.json",
"ipfs://my-ipfs-hash",
"https://some-other-url.com/metadata2.json",
]
tx = contract.erc721.mint_batch_to(
"{{wallet_address}}",
metadatas,
)