verify
paste any transaction hash. we decode it straight from the chain and compare it to the wall.
the format
every batch is one call to seal(firstBlock, lastBlock, payload) on the contract, which emits Sealed(batchId, firstBlock, lastBlock, payload). the payload is:
payload := version u8 (=1) | count u32 | record*
record := block u32 | color u8 | timestamp u64 (unix seconds)
| nameLen u8 | name (utf-8) | bodyLen u16 | body (utf-8)
big-endian throughout. color is an index into the palette in src/colors.ts (append-only).
contentHash = keccak256(record)
anyone can decode this without us. the decoder that powers this page is in the open source repo.