Skip to main content

DelayedReveal

Delayed Reveal

Thirdweb's DelayedReveal is a contract extension for base NFT contracts. It lets you create batches of 'delayed-reveal' NFTs. You can learn more about the usage of delayed reveal NFTs here - https://blog.thirdweb.com/delayed-reveal-nfts

Methods

encryptDecrypt

function encryptDecrypt(bytes data, bytes key) external pure returns (bytes result)

Encrypt/decrypt data on chain.

Encrypt/decrypt given data with key. Uses inline assembly. See: https://ethereum.stackexchange.com/questions/69825/decrypt-message-on-chain

Parameters

NameTypeDescription
databytesBytes of data to encrypt/decrypt.
keybytesSecure key used by caller for encryption/decryption.

Returns

NameTypeDescription
resultbytesOutput after encryption/decryption of given data.

encryptedData

function encryptedData(uint256) external view returns (bytes)

Mapping from tokenId of a batch of tokens => to delayed reveal data.

Parameters

NameTypeDescription
_0uint256undefined

Returns

NameTypeDescription
_0bytesundefined

getRevealURI

function getRevealURI(uint256 _batchId, bytes _key) external view returns (string revealedURI)

Returns revealed URI for a batch of NFTs.

Reveal encrypted base URI for _batchId with caller/admin's _key used for encryption. Reverts if there's no encrypted URI for _batchId. See {encryptDecrypt}.

Parameters

NameTypeDescription
_batchIduint256ID of the batch for which URI is being revealed.
_keybytesSecure key used by caller/admin for encryption of baseURI.

Returns

NameTypeDescription
revealedURIstringDecrypted base URI.

isEncryptedBatch

function isEncryptedBatch(uint256 _batchId) external view returns (bool)

Returns whether the relevant batch of NFTs is subject to a delayed reveal.

Returns true if _batchId's base URI is encrypted.

Parameters

NameTypeDescription
_batchIduint256ID of a batch of NFTs.

Returns

NameTypeDescription
_0boolundefined

reveal

function reveal(uint256 identifier, bytes key) external nonpayable returns (string revealedURI)

Reveals a batch of delayed reveal NFTs.

Parameters

NameTypeDescription
identifieruint256The ID for the batch of delayed-reveal NFTs to reveal.
keybytesThe key with which the base URI for the relevant batch of NFTs was encrypted.

Returns

NameTypeDescription
revealedURIstringundefined

Events

TokenURIRevealed

event TokenURIRevealed(uint256 indexed index, string revealedURI)

Parameters

NameTypeDescription
index indexeduint256undefined
revealedURIstringundefined