🎨 NFT Mint / Provably Fair Traits usage: vrf_output — the verifiable random seed, derive all traits from this vrf_public_key — hardcode in contract as trusted oracle key vrf_message — binds proof to collection + token + config (prevents replay) merkle_root — store per-token as the on-chain trust anchor merkle_proof — on-chain inclusion verification via require(root == committedRoot) traits — the actual NFT properties with rarity tiers (value, pct, tier) historic — UTXO era/rarity for on-chain metadata and tokenURI token_id + trait_cfg_hash — identity binding, proves config wasn't swapped after generation
No VRF proof bytes, no UTXO details, no Ed25519 seal, no story blobs — just what the mint contract needs.
🎰 Lottery / Raffle / Draw usage: vrf_output — winner = uint256(keccak256(output)) % totalTickets vrf_public_key — hardcode as trusted oracle key vrf_message — binds to draw round (prevents reuse) merkle_root — commit before reveal to prove no tampering
No traits, no NFT metadata, no UTXO history — pure verifiable randomness.