Provenance
The data and the steps to check that every token comes from the measured pool and was assigned by the rule committed before the mint.
Published data
| Collection | 9fSzHfJa1XaiJnbdRhzjfPeqbBxbWu9NXvKdcXDt9ZPR |
| Pool hash | 62d7157814c447df8349484fcd7a5eb27ccf3a6635372d705c31097dd784eeef |
| Salt hash | ba6bfdd6ca9390fe9121be6748158dfff9ab2dcf069f765682f0a02bb25f39ef |
| Salt | 8f1cdca667555633a1148b5036de792c3d475232ff308aca137e50de485f03b9 https://gateway.irys.xyz/cDJd7GUz67a2UfN9P4WLtM85VKHhAt0UFA2A5pzeJFk |
| Source archive | https://arweave.net/VoAzbmaX1ULZJKeQs3oA06QQp12rt6dfhrxJu9av-IU SHA-256 177753a1435207ea77d051f7e6859f3bbf9f4b986d5afe0421a5e86df3088fc8 |
| SVG archive | https://arweave.net/qhtEBnUMzTHLvWXzJ4PowqzREh-sz62QzcJuemJu-zQ SHA-256 c753e481fd7dcb4dbb101038e86ab9ed7c897e78c214c41dd338f0e3ded4486b |
Measurement
3 jobs on IBM Heron r2 processors, run before the mint opened.
| Backend | Circuit | Shots | IBM job ID |
|---|---|---|---|
| ibm_marrakesh | uniform | 1,408 | dag1nk1hvn6c73cq0h3g |
| ibm_fez | uniform | 512 | dag1nj8mhr3c73e4hskg |
| ibm_marrakesh | bell | 156 | dag1npfi3e6s738lqf6g |
The pool hash is the SHA-256 over the ordered raw registers: uniform circuits
first, ibm_marrakesh then ibm_fez, then the Bell circuit;
each job's shots in the order the hardware returned them.
Trait code
SHA-256 of the files that turn measured bits into traits, recorded before any
hardware job was submitted. The same values are in PROVENANCE.md in
the source archive.
| File | SHA-256 |
|---|---|
| entropy/analyze_pool.py | 07b31709df629ede2103f6f3c904604c99d8e220e102eea71d43054c94b85457 |
| entropy/collect_pending.py | 223a8c29e410c48a9226027e3efbf935a3fa705242fc47ca23cd26215fe53963 |
| entropy/generate_pool.py | 0cc8684037251e2092f6a6b9e40542c6acc10bbfbd62ccd5e35fbc781f22945c |
| entropy/pool.py | 8fad41477e2637f87e95624621bc376ff28a53a78885a8b8f34c71927a7b0477 |
| entropy/traits.py | cdb6fe39fedf70ee30329c9f71615c0c4a2076bf53c6b41a09e10e205dfacd8d |
Hardware statistics
Bias of the uniform jobs. Min-entropy is summed over the 156 qubits; the worst qubit is the one furthest from p(1) = 0.5.
| Backend | Shots | mean p(1) | min-entropy | Worst qubit |
|---|---|---|---|---|
| ibm_marrakesh | 1,408 | 0.5057 | 145.9 / 156 | q82 at 0.0582 |
| ibm_fez | 512 | 0.5012 | 147.1 / 156 | q72 at 0.6230 |
How to verify
- Code and pool. Download the source archive and check its SHA-256. Unpack it and run
python verify.py; it needs only the Python standard library. It checks the trait code against the hashes inPROVENANCE.md, recomputes the pool hash from the three measurement files, and re-renders all 2,048 registers, comparing each SVG withsvg-sha256.json. - Commitment. The pool hash and the salt hash are the
pool_sha256andsalt_sha256attributes of the collection account, written when the collection was created, before the mint opened. - One token. Its metadata carries
pool_positionandsvg_sha256. Runpython verify.py --position Nwith that position; the computed hash must equalsvg_sha256. - Assignment. The SHA-256 of the published salt must equal
salt_sha256. Withchain/binding.mjsfrom the source archive and Node.js,derivePermutation(salt, 2048)[N]is the pool position of the token whose mint index is N (Heron Collapse #0007 has N = 7), and must equal itspool_position. The salt file also lists all 2,048 positions.
Not verifiable. That the measurement came from IBM hardware. IBM jobs are visible only to the account that ran them; the hashes prove the pool was not altered after it was committed and that every artwork follows from it, not where the randomness came from.