Planisphere mirror chain · genesis block #0 · the first real-world seal

Block zero.

The instrument that seals an AI fleet, turned for the first time on a human document. On June 1, 2026 a 895-page Shadow & Mirror manuscript, its collaboration mark, and its author were committed to one another — EVM-canonically, EIP-712 typed, secp256k1 signed — as the genesis block of the Planisphere mirror chain. This page is that block's reference record and methodology note. Recompute the mark's hash in your own browser, below.

Block hash · keccak256(rlp(header)) 0x19f15104b91927f59591e14f9af18b98c4e7e4a44c4845f86e752427ab9b6f99
Chainplanisphere-mirror Number0 · genesis Sealed2026-06-01 Atoms6 committed
01 ·

The content atoms.

Six indivisible inputs · flip one bit and the block hash moves

A content atom is an indivisible input the seal binds. Two atoms are large enough to carry their own cryptographic hash; four are typed fields signed directly. Together they are the whole of what this block commits — nothing more, nothing hidden.

The DocumentShadow & Mirror · 895 pp
Title
Shadow & Mirror — Treewidth as the Universal Meter of Computation, Physics, and Consciousness
sha-256
c6529c07…fc87b20e

→ documentHash = keccak256(bytes)

Open the source hub →
The Markseal.svg · collaboration seal
Form
The Planisphere × Shadow-and-Mirror seal — limb, mater, cardinal cross, two brass projection arcs.
sha-256
f1409464…22019f70

→ sealHash = keccak256(bytes)

Open the mark →
Signer
Logan Christopher Ross
string
Room
137
string
Pages
895
uint256
Timestamp
2026-06-01
uint256 · 1780272000
Document hash
0x1c64a446…0a1f5711
bytes32
Seal hash
0x52bc2a06…13608d6a
bytes32
02 ·

The attestation.

EIP-712 typed structured data · secp256k1 · ecrecover-verifiable

The six atoms are assembled into one typed message, hashed under a Planisphere domain, and signed with a secp256k1 key — the same primitives an Ethereum node uses. The resulting digest is the block's payload root; the signature recovers the signer by ecrecover.

// domain { name: "Planisphere", version: "1", chainId: 1, salt: 0xb925df4ab950ebc4629e89906422a0ba1282d08cafb284b7daf46e3d97e6a4d6 } // primaryType: Attestation struct Attestation { string document; // "Shadow & Mirror: …" string signer; // "Logan Christopher Ross" string room; // "137" uint256 pages; // 895 bytes32 documentHash; // keccak256(document bytes) bytes32 sealHash; // keccak256(seal.svg) uint256 timestamp; // 1780272000 } // digest = keccak256(0x19 0x01 ‖ domainSeparator ‖ hashStruct(message)) digest = 0x817a8a6beb17a36c84ee2d7fd2e36a0670246164dec8d059bc6b387f718ce4d8
Signature
0xcc0cbd770df9cb6e10d687539f218900812c250efb44c81f95e86161e98e5e034d4ff0924025f852d9f69ed2bdd9d7be2eafd72f3c9146cfe3f14d1cb1dedf6c1c
Recovers to
0xf348EE07BAe8dB1246342fECc8A16B0eC08cc93f
Key origin
derived-dev — deterministic from the committed hashes; set an operator key for a production address
03 ·

The block.

Genesis header · recursive-length-prefix, the way Ethereum encodes its own

The block wraps the attestation digest as its payload root and commits to the block before it. Genesis has no parent — its parentHash is zero. The next attestation will point its parent at this block's hash.

Parent
0x0000000000000000000000000000000000000000000000000000000000000000 (genesis)
Number
0
Timestamp
1780272000 · 2026-06-01T00:00:00Z
Sealer
0xf348EE07BAe8dB1246342fECc8A16B0eC08cc93f
Payload root
0x817a8a6beb17a36c84ee2d7fd2e36a0670246164dec8d059bc6b387f718ce4d8 (EIP-712 digest)
Block hash
0x19f15104b91927f59591e14f9af18b98c4e7e4a44c4845f86e752427ab9b6f99
blockHash = keccak256( rlp([ parentHash, number, timestamp, sealer, payloadRoot, signature ]) )

Change any committed field — a page of the manuscript, the timestamp, one byte of the mark — and the digest moves, the block hash moves, and every block that ever chains onto this one moves with it. As above, so below.

The chain begins here.

  • ∅  The void parent
    0x0000000000000000000000000000000000000000000000000000000000000000
  • Genesis Block #0 you are here
    0x19f15104b91927f59591e14f9af18b98c4e7e4a44c4845f86e752427ab9b6f99
  • Block #1 unsealed
    the next attestation will set parentHash = 0x19f15104…ab9b6f99
04 ·

Recompute the mark.

Web Crypto API · runs in your tab · no network calls beyond this origin

Don't trust the hashes above — recompute one. Your browser will fetch the seal.svg this page serves and hash its bytes with the Web Crypto API, then compare to the sha-256 Planisphere committed. The same bytes feed keccak256 to produce the sealHash sealed into the block. Match the SHA and you have confirmed the mark atom, on your own machine.

fetch('/seal.svg') → crypto.subtle.digest('SHA-256') → compare

Committed sha-256

Recomputed in your browser

This page recomputes one atom with the browser's own hash function. The full EVM layer — the EIP-712 digest, the keccak256(rlp(header)) block hash, and the ecrecover of the signer — is recomputable byte-for-byte from the canonical genesis.json. The public Shadow & Mirror hub now lives at logan.engineering.