A delayed reveal is an NFT minting mechanism in which the artwork and trait metadata for minted tokens are intentionally hidden at the time of minting — all buyers see only a placeholder image (commonly called “the box,” an egg, a sealed pack, or a silhouette) — with the real artwork only revealed in a subsequent on-chain transaction executed by the creator hours, days, or even weeks after the mint concludes, serving the dual purpose of preventing trait sniping (where sophisticated buyers identify and cherry-pick rare traits before less-informed buyers can react) and creating an anticipation-building community event out of the reveal moment itself. The delayed reveal is one of the most widely adopted mechanisms in generative PFP NFT minting, becoming a near-default format after early collections demonstrated that immediate reveals created unfair advantages for rarity-sniping bots.
Why Delayed Reveal Exists: The Trait Sniping Problem
Without Delayed Reveal (Immediate Reveal)
Generative collection: 10,000 tokens
Mint begins at Block 0
Bot strategy at Block 0:
- Reads on-chain randomness seed for upcoming token
- Predicts which traits the next-to-mint token will have
- Mints ONLY if traits are rare (top 1%)
- Skips minting if traits are common
Result:
Bots capture most rare tokens at mint price
Regular buyers get leftover common tokens
“Fair” mint becomes heavily skewed toward sophisticated actors
“`
With Delayed Reveal
Mint begins:
All 10,000 tokens show placeholder image
No traits visible; trait metadata not yet on-chain
Bots cannot predict which token gets which traits
All buyers have equal uncertainty
Reveal event (48 hours later):
Creator posts provenance hash
Metadata published on-chain
All 10,000 tokens simultaneously reveal their traits
Rarity visible to all holders simultaneously
“`
Technical Implementation
IPFS Placeholder
“`solidity
// Pre-reveal: all tokens return same placeholder
function tokenURI(uint256 tokenId) returns (string) {
if (!revealed) return “ipfs://placeholder-uri/hidden.json”;
return string(abi.encodePacked(baseURI, tokenId.toString(), “.json”));
}
// Reveal: owner calls reveal()
function reveal() external onlyOwner {
revealed = true;
baseURI = “ipfs://QmReal…RevealedMetadata/”;
}
“`
Provenance Hash
The Reveal Event
Reveals are often treated as community events:
- Creator announces reveal time/block in advance (24–48h notice)
- Community members hold their tokens, speculating about traits
- Reveal transaction goes on-chain → all traits visible simultaneously
- Discord floods with holders sharing their reveals, trading comparisons
- Secondary market immediately prices in rarity data
- Rare trait holders may immediately relist at significant premiums
Variants
Batch Reveal
On-Chain Reveal
Chainlink VRF Reveal
Risks
| Risk | Description |
|---|---|
| Delayed satisfaction | Buyers don’t know what they minted; frustrating for immediate buyers |
| Creator manipulation | Without provenance hash + VRF, creator could theoretically reassign traits post-mint to favor specific wallets |
| IPFS dependency | If creator’s IPFS node goes offline, reveal can’t happen |
| Reveal as exit opportunity | Some creators “rug” after minting by never executing the reveal |
Delayed Reveal vs. On-Chain Reveal
| Delayed Reveal (off-chain) | On-Chain Reveal | |
|---|---|---|
| Metadata stored | IPFS or centralized server | Ethereum blockchain |
| Permanence | Depends on IPFS pinning | Permanent |
| Gas cost | Lower | Much higher (SVG data on-chain) |
| Manipulation risk | Some (creator controls reveal tx) | None (VRF verifiable) |
History
- 2021: Bored Ape Yacht Club uses immediate reveal; rarity sniping rampant
- 2021 H2: Collections begin adopting delayed reveal as standard practice
- 2022: Delayed reveal becomes near-universal for generative PFP mints; provenance hash standard established
- 2022+: Chainlink VRF integration for truly verifiable randomness adopted by major projects
- 2023–2025: Standard practice maintained; on-chain reveals emerge for premium art projects