Delayed Reveal is a smart contract mechanism in which the final visual content or metadata of a non-fungible token (NFT) is concealed during the initial minting phase. Instead of the actual artwork, collectors initially receive a placeholder image—often a uniform graphic or animation—while the true asset is stored in an encrypted format. The reveal is triggered by a predefined on-chain event, such as the conclusion of the minting period or the project creator executing a specific transaction. This process is fundamental to creating suspense and mitigating front-running bots that might target specific, known rare traits.
Delayed Reveal
What is Delayed Reveal?
A cryptographic technique used in NFT minting where the final artwork or metadata is hidden until a specific time or condition is met, often to build anticipation or ensure fairness.
The technical implementation typically involves storing the final metadata or image files off-chain (e.g., on IPFS or Arweave) in an encrypted state, with the decryption key secured on-chain. A common method uses a commit-reveal scheme: the project creator first commits a cryptographic hash (like a keccak256 hash) of the final metadata URI and the secret key. After the mint concludes, the creator submits the key in a reveal transaction, allowing the smart contract to verify it against the hash and update the token's metadata for all holders. This ensures the outcome is provably fair and cannot be altered after the commit.
Beyond generating hype, delayed reveals serve practical purposes in fair launch mechanics. By hiding rarity distribution until after the public sale, it prevents sniping—where automated bots mint only tokens with perceived high-value traits—thereby promoting a more equitable distribution. Major NFT projects like Bored Ape Yacht Club and Moonbirds utilized variations of this technique. However, the mechanism also introduces trust assumptions, as collectors must rely on the project team to execute the reveal as promised and not manipulate the final allocation of traits post-commit.
Key Features of Delayed Reveal
Delayed reveal is a cryptographic technique used in NFT minting to conceal the final metadata and media until after the initial sale, ensuring fairness and building anticipation.
Cryptographic Commitment
The process begins with a cryptographic commitment, where the creator generates a hash of the final metadata (including the image URL) and stores it on-chain before the mint. This hash acts as a provable, immutable promise of the content. The actual image files are hosted off-chain (e.g., on IPFS or Arweave) but remain inaccessible until the reveal event. This ensures the final artwork cannot be deduced or altered after the commitment is made.
Reveal Trigger & Process
The reveal is triggered by a specific on-chain transaction, often initiated by the project team after the mint concludes. This transaction publishes the provenance hash and the key to decrypt or access the final metadata. Smart contracts then use this data to update the tokenURI for each token, permanently linking it to its specific, randomly assigned artwork. The process is typically automated and batched for all tokens in the collection simultaneously.
Fair Distribution & Anti-Sniping
A primary purpose is to prevent rarity sniping, where bots or informed users mint only tokens predicted to have rare traits. By keeping the final assignment secret until after all mints are complete, every mint is a blind purchase with equal probability of receiving any trait. This enforces a fair, random distribution and protects the secondary market from initial manipulation based on insider knowledge of rarity.
Provenance Hash
The provenance hash is a critical, on-chain record (often a SHA-256 hash) that cryptographically commits to the final ordered list of token metadata or artwork. It is published before the mint starts. After the reveal, anyone can verify that the revealed artworks match this hash, proving the team did not manipulate the distribution after seeing mint activity. This provides verifiable fairness and trustlessness to the process.
Placeholder Metadata
Before the reveal, all tokens point to identical placeholder metadata. This is typically a generic image (e.g., a mystery box or uniform cover) and metadata describing the collection rather than individual traits. The placeholder URI is often stored in the smart contract and is replaced en masse during the reveal event. This creates a unified pre-reveal experience for all holders.
Common Implementation Flows
- Centralized Reveal: The team controls the reveal transaction, often using a multi-sig wallet for security.
- Randomized Assignment: Token IDs are mapped to final metadata via a verifiably random function (VRF) or a pre-committed shuffled list.
- Gas Considerations: Reveal transactions can be gas-intensive as they update state for many tokens, a cost often borne by the project.
- Reveal Phasing: Large collections may reveal in phases to manage server load and gas costs.
How Does Delayed Reveal Work?
A technical breakdown of the two-phase cryptographic process used to conceal and later unveil NFT metadata.
Delayed reveal is a two-phase cryptographic process used in NFT collections where the final metadata—such as the image, traits, and rarity—is concealed at the time of minting and is only revealed to token holders after a predetermined time or event. During the initial mint phase, collectors purchase tokens that are linked to placeholder metadata, often a generic image or a "shrouded" version. The actual, final metadata is encrypted and stored off-chain, with its decryption key withheld by the project team. This creates a period of suspense and allows for a coordinated, simultaneous reveal for the entire collection.
The core mechanism relies on commit-reveal schemes and provenance hashes. Before minting, the project creator generates a cryptographic hash (like a SHA-256 hash) of the final, ordered metadata and publishes this provenance hash on-chain. This hash acts as a tamper-proof commitment to the final content and its order. The actual image files and trait data are then encrypted, typically using a symmetric key, and hosted on a decentralized storage solution like IPFS or Arweave. The encrypted URIs are what the smart contract initially points to for each token.
The reveal event is triggered by the project team submitting the decryption key to the smart contract, often via a privileged function call. Once the key is on-chain, a script or the contract itself can use it to decrypt the stored metadata URIs, causing all tokens to update almost instantly to display their final traits. The previously published provenance hash allows the community to cryptographically verify that the revealed metadata matches the original commitment, ensuring the team did not alter the rarity distribution or order after seeing market behavior.
Common Use Cases & Examples
Delayed reveal is a technique that separates the minting of an NFT from the reveal of its final metadata, creating anticipation and enabling fair launches. These are its primary applications.
Fair Distribution for NFT Drops
Prevents front-running and gas wars by ensuring all participants mint a generic placeholder (e.g., a 'mystery box') before the final art is revealed. This creates a level playing field where no one knows which specific asset they will receive until after the mint concludes.
- Key Benefit: Mitigates sniping where bots target rare traits.
- Example: A 10,000-piece PFP collection where all minters receive identical 'Unrevealed Ape' NFTs that later transform into unique characters.
Generating Hype and Community Engagement
The period between mint and reveal builds anticipation, driving social media discussion and speculation. Creators can use this window for reveal countdowns, trait teasers, and community events.
- Mechanism: The provenance hash is often published upfront, providing a cryptographic commitment to the final set without leaking details.
- Marketing Tool: Turns the mint into a multi-stage event, sustaining interest beyond the initial sale.
On-Chain Randomization & Verifiable Fairness
Ensures the final assignment of traits to token IDs is provably random and cannot be manipulated by the creator post-mint. This is typically achieved using a commit-reveal scheme.
- Process: The creator commits a seed (like a hash of the final metadata ordering) to the smart contract before the mint. After minting ends, the seed is revealed to trigger the final assignment.
- Trust Model: The committed hash allows the community to verify that the revealed metadata matches the original, unchangeable plan.
Technical Implementation with IPFS
The placeholder NFT points to a generic image and metadata file. After the reveal, the contract's baseURI or tokenURI function is updated to point to the final folder containing the unique metadata for each token ID.
- Storage: Final images and metadata are often pre-uploaded to decentralized storage like IPFS or Arweave but kept hidden until the reveal transaction.
- Smart Contract Function: A
reveal()function is called by the project admin to update the metadata endpoint for the entire collection.
Gaming & Loot Box Mechanics
Directly translates the 'loot box' model to blockchain, where users purchase an unopened digital item. The reveal is the act of opening the box to discover its contents, which could be a character, weapon, or other in-game asset.
- Dynamic NFTs: The NFT's visual representation and attributes change post-reveal based on the randomized outcome.
- Utility Focus: The value is in the utility of the revealed asset within a game or ecosystem, not just its art.
Mitigating Rarity Sniping Bots
A specific security application where delayed reveal stops automated bots from identifying and minting only the rarest NFTs in a collection during the live sale. Since all metadata is hidden, bots cannot selectively target specific token IDs.
- Problem Solved: Without delayed reveal, bots can monitor mint transactions and simulate rarity calculations to snipe high-value assets.
- Result: Human participants have a significantly higher chance of obtaining a rare item, improving perceived fairness.
Technical Implementation
A delayed reveal is a smart contract technique that separates the minting of an NFT from the reveal of its final metadata, often used to build anticipation or ensure fairness in randomized drops.
Core Two-Phase Process
The process is executed in two distinct on-chain phases.
- Phase 1: Minting & Commitment: Users mint tokens that initially share a common placeholder image and metadata (e.g., 'Unrevealed #1'). The final tokenURI for each token is pre-calculated but its hash is stored on-chain, committing to the final asset without revealing it.
- Phase 2: Reveal & Finalization: The project admin triggers a transaction to update the baseURI or tokenURI for the entire collection, pointing to the final, unique metadata. The pre-committed hashes are verified to ensure the reveal matches the original commitment.
On-Chain Commitment (Hashing)
Fairness is cryptographically guaranteed by committing to the final metadata before the mint.
- The final metadata for each token ID is generated and stored off-chain.
- A cryptographic hash (e.g., keccak256) of the final tokenURI for each token is computed.
- This hash, or a Merkle root of all hashes, is stored in the smart contract's immutable storage during deployment or before minting begins.
- After the reveal, anyone can verify that the revealed metadata hashes to the pre-committed value, proving the outcome was not manipulated post-mint.
Smart Contract Mechanics
Implementation typically involves overriding the tokenURI function and managing state.
- State Variables: Contracts use a
baseURI(string) and arevealed(boolean) flag, or a mapping from token ID to its final URI. - Reveal Function: A privileged function (e.g.,
reveal(string memory newBaseURI)) is called by the owner to set the final baseURI and flip therevealedflag to true. - URI Logic: The
tokenURIfunction checks therevealedstate. If false, it returns a placeholder URI. If true, it concatenates thebaseURIwith the token ID. - Provenance Hash: A public variable often stores the hash of the final metadata set for independent verification.
Off-Chain Storage & Provenance
The unrevealed and final assets are managed off-chain, requiring careful orchestration.
- Placeholder Assets: A single 'unrevealed' image and metadata file are hosted (e.g., on IPFS or a web server).
- Final Assets: The complete set of unique metadata JSON files and images are prepared and uploaded to persistent storage before mint starts. Their final URIs are deterministic.
- Provenance Record: The project publishes the provenance hash and the final IPFS CID or storage location before minting. This allows the community to verify the integrity of the unrevealed collection's size and the commitment to the final order.
Security & Trust Considerations
The technique shifts trust to the pre-commitment and the immutability of the smart contract.
- Trust in Pre-Commitment: Users must trust that the provenance hash was generated correctly and that the team cannot change the final assets after seeing mint patterns.
- No Re-Rolls: The final mapping of token ID to asset is fixed upon commitment. The team cannot 're-roll' attributes after the mint.
- Centralization Risk: The reveal transaction is typically initiated by a privileged admin key. A compromised key or failure to call reveal could leave tokens permanently unrevealed.
- Gas Efficiency: Storing hashes is gas-efficient. A bulk reveal updates a single state variable, minimizing transaction costs compared to setting URIs individually.
Example: ERC-721 Implementation Snippet
A simplified view of key contract functions.
soliditycontract DelayedRevealNFT is ERC721 { string public provenanceHash; string private _baseTokenURI; bool public revealed = false; constructor(string memory initialURI, string memory _provenanceHash) ERC721("Example", "EXP") { _baseTokenURI = initialURI; // Placeholder URI provenanceHash = _provenanceHash; // Commit to final assets } function reveal(string memory newBaseURI) external onlyOwner { require(!revealed, "Already revealed"); _baseTokenURI = newBaseURI; revealed = true; } function tokenURI(uint256 tokenId) public view override returns (string memory) { require(_exists(tokenId), "Token does not exist"); if (!revealed) { return _baseTokenURI; } return string(abi.encodePacked(_baseTokenURI, Strings.toString(tokenId))); } }
Delayed Reveal vs. Blind Mint
A comparison of two distinct cryptographic methods for revealing NFT metadata after a minting event.
| Feature | Delayed Reveal | Blind Mint |
|---|---|---|
Initial Token URI | Points to placeholder metadata | Points to a generic or null metadata file |
Reveal Mechanism | Proactive, scheduled transaction to update metadata | Passive, metadata is revealed automatically at a set time |
On-Chain Commitment | Metadata hash (e.g., provenance hash) stored on-chain pre-reveal | No on-chain commitment to final metadata required |
Gas Cost for Reveal | Additional transaction required (gas paid by minter or project) | No additional transaction; reveal is gasless for holders |
Reveal Control | Project-controlled timing via admin function | Time-locked, deterministic, and immutable |
User Experience | Requires users to return for a second 'reveal' action | Seamless; assets update in wallets automatically |
Common Use Case | Curated drops with a coordinated community reveal event | Trust-minimized drops where final art is not decided pre-mint |
Security Consideration | Relies on project to execute reveal honestly and securely | Reveal logic is verifiable and enforced by the smart contract |
Security & Trust Considerations
Delayed reveal is a cryptographic technique, often used in NFT minting, where the final metadata (e.g., image, traits) of an asset is concealed and then publicly disclosed after a predetermined time or event.
Core Mechanism
A delayed reveal process typically involves two steps. First, a placeholder or encrypted metadata hash is stored on-chain during the initial mint. Second, after a set block height or time, the project creator submits a transaction to reveal the actual metadata, which is then permanently linked to the token IDs. This uses commit-reveal schemes to ensure the final content cannot be altered after the initial commitment.
Primary Security Rationale
The main security goal is to prevent rarity sniping or frontrunning. By hiding the final traits until after all tokens are minted and randomly assigned, it stops bots from selectively minting only the rarest (and most valuable) assets, ensuring a fair distribution. It also protects the project's launch mechanics from being gamed by sophisticated actors monitoring the mempool.
Trust Assumptions & Risks
This model shifts trust to the project's orchestrator (the revealer). Key risks include:
- Reveal Failure: The final metadata is never published, leaving tokens with placeholder data.
- Malicious Reveal: The orchestrator could theoretically reveal different metadata than originally implied, though this is often mitigated by publishing the final IPFS hash in advance.
- Centralization: The reveal function is typically controlled by a privileged admin key, creating a single point of failure.
Technical Implementation
Common implementations store a provenance hash (a cryptographic hash of the final metadata concatenated with the final token order) on-chain before minting. After the mint, the actual metadata and the ordering are revealed. The community can then verify that the hash matches, proving the final results were not manipulated post-mint. This is a form of cryptographic commitment.
Example: NFT Collection Launch
A prominent example is the Bored Ape Yacht Club mint. The team used a delayed reveal where all NFTs initially displayed the same placeholder image. After the mint concluded, a reveal transaction was executed, assigning the unique ape images to the already-minted tokens. This prevented bots from knowing which token ID corresponded to which rare trait during the sale.
Related Concepts
- Commit-Reveal Scheme: The underlying cryptographic pattern for hiding and later proving information.
- Provenance Hash: The on-chain commitment that anchors the promised final state.
- Randomness (RNG): Often paired with delayed reveal; the final assignment of traits to token IDs uses a verifiably random seed revealed after the mint.
- Merkle Tree: Sometimes used to efficiently prove inclusion of metadata for large collections during the reveal phase.
Frequently Asked Questions (FAQ)
Common questions about the delayed reveal mechanism, a technique used in NFT collections to build anticipation and ensure fair distribution by initially hiding the final artwork.
A delayed reveal NFT is a non-fungible token where the final artwork or metadata is hidden at the time of minting and is revealed at a later, predetermined time. The process works by initially minting a placeholder token with a generic image and metadata, while the final, unique assets are stored securely off-chain or in an encrypted state on-chain. A smart contract, often using a commit-reveal scheme, controls the reveal event. The creator submits a cryptographic hash (the commitment) of the final metadata before minting. After the sale concludes, they trigger the reveal by submitting the original data, allowing the contract to verify it against the hash and permanently update the token's URI to display the true artwork.
Get In Touch
today.
Our experts will offer a free quote and a 30min call to discuss your project.