## Magic `0x3b3b` ## Version `0x02` (varint) ## Merkle Archive ### Header - ed25519 pubkey (32B) - ed25519 signature of TOC sighash (64B) - TOC sighash: (32B) - TOC position: (8B: u64 BE) - TOC size: (8B: u64 BE) ### TOC - number of entries (varint) - FOREACH section - name (varstring) - hash (32B: BLAKE-3 of file contents / TOC sighash) - TYPE (1B) - TYPE=MISSING (`0x00`) - TYPE=FILE (`0x01`) - position (8B: u64 BE) - size (8B: u64 BE) - TYPE=TOC (`0x02`) - position (8B: u64 BE) - size (8B: u64 BE) #### SigHash Hash of TOC with all contents MISSING ### FILE `` # Example `foo/bar/baz.txt` ROOT TOC: - 1 section - name: foo hash: sighash('a) type: TOC position: 'a length: _ 'a: - 1 section - name: bar hash: sighash('b) type: TOC position: 'b size: _ 'b: - 2 sections - name: baz.txt hash: hash('c) type: FILE position: 'c length: _ - name: qux hash: `` type: MISSING 'c: `` "foo/" hash: _ size: 15b "bar.txt" hash: _ size: 5b `` ( "baz.txt" hash: _ size: 2b ) `` ("hello") `` ("hi")