Block 0, decoded¶
The Commander’s write-up¶
All hands, this is the launch record. Before a chain can have block 1, it needs block 0: a fixed starting point every node can inspect and rebuild. Here is the WO-10 testnet fixture, opened up from its headline to its header bytes.
The headline is not decoration floating beside the chain. Its exact UTF-8 bytes sit in the coinbase transaction. That transaction produces a txid; the transaction’s ID becomes the payment Merkle root; the root sits in the block header; and the header is what the miner searches over. Change one letter, one space, or one punctuation mark, and the transaction ID, Merkle root, and block ID all change. The ship’s log is sealed into the launch record.
Mission card¶
Field |
Frozen testnet value |
|---|---|
|
|
Timestamp size |
89 UTF-8 bytes: 56 + 33 |
Header time |
|
Target ( |
|
Winning nonce |
|
Payment Merkle root |
|
Block ID |
|
Proof of work |
Valid: |
This is a testnet fixture, not a declaration of E46 mainnet’s launch parameters. The date prefix and NASA’s Crew-12 release give readers public context. The proof shows that these chosen bytes were committed before this valid header was found. The proof alone cannot establish who published the headline or independently certify its real-world date.
First, the coinbase¶
The coinbase is the block’s special first transaction. At height zero it has one null-prevout input, no spendable reward, and three outputs. Data outputs carry bytes; they do not pay coins. The headline is split only because each Data payload has an 80-byte limit. We join the two pieces exactly as stored—no extra space is inserted.
Output |
Value |
Type |
Payload |
|---|---|---|---|
0 |
0 E46 |
Data ( |
|
1 |
0 E46 |
Data ( |
|
2, last |
0 E46 |
Data ( |
Witness commitment: |
The input uses a zero prevout and index ffffffff; its sequence is ffffffff. Lock time is zero, equal to genesis height. The witness carries an eight-byte zero extranonce. The last output holds the witness commitment. Its root uses the coinbase’s wtxid as 32 zero bytes, avoiding a circular hash definition.
The raw 214-byte transaction below includes the witness. Its txid hashes the transaction without the witness; its wtxid hashes the full transaction. The txid is the sole leaf in this block’s payment Merkle tree, whose count-bound root is the value shown above.
Transaction fingerprint |
Value |
|---|---|
|
|
|
|
Witness commitment |
|
Then, the header¶
The header is 120 bytes, fixed-width and little-endian where specified. It points to no parent, commits to the payment Merkle root, has an empty event root, and carries the time, target, and winning nonce. RL_v3 checks the header against the target; the block ID is a separate, domain-tagged SHAKE256 hash of the header.
Header field |
Value |
|---|---|
Version |
|
Previous block |
32 zero bytes |
|
|
|
32 zero bytes |
Time |
|
Compact target |
|
Nonce |
|
Block ID |
|
The fixture contains one 120-byte header and one full coinbase transaction. The protocol does not yet define a separate serialized block envelope; the bytes below are the complete header and transaction, without inventing an envelope format.
Open the complete raw header and coinbase bytes
Header — 120 bytes. Join lines without spaces.
0100000000000000000000000000000000000000000000000000000000000000
00000000ae0f94a82b065cec2b0335148a138c965ca82e304f63241e1247f9f4
84e9fdc600000000000000000000000000000000000000000000000000000000
00000000cd17c86a00000000ffff7f1d547cdc0000000000
Full coinbase transaction, witness included — 214 bytes. Join lines without spaces.
0100000001000000000000000000000000000000000000000000000000000000
0000000000ffffffffffffffff03000000000000000003384534362030382f4f
63742f32303236204e415341e2809973205370616365582043726577e2809131
322053706c617368657320446f776e2c00000000000000000321205365747320
4272696566696e6720746f2044697363757373204d697373696f6e0000000000
0000000320f8bbffebfc72f296adc6ac3e5d004f449ffdcae86cffad4fdef8be
67f2b16bd70000000000000000080000000000000000
Rebuild the launch record¶
The C++ miner found the winning nonce; the Python reference independently reconstructs the transaction, roots, header, and block ID. The frozen vector is in e46/golden/wo10-golden.json, and the test suite reruns the search and checks that no lower nonce already satisfies the target.
To mine this same fixture again, first build genesis_cli, then run:
python3 e46/golden/genesis_miner.py --network testnet \
--timestamp-part 'E46 08/Oct/2026 NASA’s SpaceX Crew‑12 Splashes Down,' \
--timestamp-part ' Sets Briefing to Discuss Mission' \
--time 1791498189
That search is a reproducibility exercise, not the future everyday wallet miner. The core-wallet CPU miner is a separate planned feature. For now, Block 0 is the reference point: visible bytes, frozen hashes, and a result anyone can check.