Skip to main content

ERC721 - Delayed Reveal

You can utilize these features of the SDK on your contract if it implements DelayedReveal.

Create a batch of lazy-minted NFTs that have placeholder metadata you can reveal later.

This function encrypts the metadata and requires a password that is used to reveal it.

Password Management

This password is the only method you have to reveal the metadata of your NFTs.

thirdweb does not have any servers that can view or recover this password for you.

Ensure you remember this password and keep it safe.

// the real NFTs, these will be encrypted until you reveal them
const realNFTs = [{
name: "Common NFT #1",
description: "Common NFT, one of many.",
image: fs.readFileSync("path/to/image.png"),
}, {
name: "Super Rare NFT #2",
description: "You got a Super Rare NFT!",
image: fs.readFileSync("path/to/image.png"),
}];
// A placeholder NFT that people will get immediately in their wallet, and will be converted to the real NFT at reveal time
const placeholderNFT = {
name: "Hidden NFT",
description: "Will be revealed next week!"
};
// Create and encrypt the NFTs
await contract.erc721.revealer.createDelayedRevealBatch(
placeholderNFT,
realNFTs,
"my secret password",
);
// Whenever you're ready, reveal your NFTs at any time
const batchId = 0; // the batch to reveal
await contract.erc721.revealer.reveal(batchId, "my secret password");

This snippet is for v3 of the SDK. Learn how to upgrade.

View in React SDK Documentation