The art cannot be swapped
The contract's provenanceHash is a hash of all 888 image hashes, fixed at deployment with no function to change it. Regenerate from the repo and compare the number.
provenanceHash()Press Enter or click to enter
[ DO NOT TRUST US ]
Each row below is either a number on-chain or a file in this repository. Not one of them asks you to take our word for it.
0xbf220a73c71fed25b0f5331fe6c829ca06a0f9a1b2508ac7ec394c2bdcd9e2a6A hash of all 888 image hashes, written into the contract at deployment and unchangeable. Regenerate it from this repository and compare with the on-chain number — a match proves the art was never swapped.
node scripts/generate-art.mjs
The contract's provenanceHash is a hash of all 888 image hashes, fixed at deployment with no function to change it. Regenerate from the repo and compare the number.
provenanceHash()MicroDuckClubRarity packs all 888 tiers into eleven words at deployment, and the contract has no setter. distribution() counts each tier back for you.
distribution()The reserve is native ETH held by the contract, and floorPrice() = reserve ÷ circulating supply. It can only leave by burning an NFT — there is no admin path.
reserve() / floorPrice()reserveBps is immutable — no function can change it after deployment. It should read 9500, which is 95% of every mint.
reserveBps()revealCommitment is immutable and published before minting opens. Exactly one secret satisfies it, and the seed also mixes in entropyAccumulator, which every mint folds into — so nobody can work out the result before minting starts. The only move available to us is to withhold the reveal, which does us no good. The owner and the treasury are both barred from minting, so the party who knows the secret cannot also influence the entropy. There is no VRF on this chain; this is the strongest construction it supports, but it is genuinely weaker than VRF, which the previous BNB Chain version used.
revealCommitment() / entropyAccumulator()MicroDuckClubSplitter has no owner, no rescue and no sweep. Every wei that reaches it leaves to one of two addresses fixed at deployment — 60% to the NFT, which raises the floor for everyone, 40% to the reward buyer. Anyone can call distribute(); you do not have to wait for us.
totalToFloor() / totalToRewards()MAX_SUPPLY is the constant 888, and the contract has no mint path beyond it.
MAX_SUPPLY()All 888 of them live in provenance.json. Here are the eight legendaries plus the first:
| artwork | keccak256 |
|---|---|
| #001 | 0xf0072abf320a57804d4543685f1b4d69b06ad4761050d85c98deffd8e5c829b5 |
| #008 | 0x68a82affad193e7d403df12abf3e8c10d18f44d98d202d7b44eef499d9dc3183 |
| #088 | 0x3cfbe9f4a0818b0c5f892c6f987f2fdf9be1c7043e376bc925a8d99fd09d5d9d |
| #188 | 0x3edd16a59100319f9f9d919d6c528cb704517d0d58c90d3e2689d398e6e4919d |
| #288 | 0x033be11dfabf070761855f53db9458525121c3071f9cc266e898d6d781b15fd2 |
| #388 | 0x706259178b214649c0483f86728659a13cceab084c07d75f33e2b296c909e5d3 |
| #488 | 0x9a7b0318e2ff889c282f4edee4dd81a3af70294bb001bc04a906c02cf3c80986 |
| #688 | 0xc79f94f541f53b186b981418509e78a99d9885cdaa80a6bb931c77d5ccab2014 |
| #888 | 0xc62aed1508f3c5055d577d25c8629320a3d95b1ca1966df7caf6fcdb474cff6c |
0x407473e40ffc43c8bb17d3735455248683f466df