HPPR Packet Format

Ā© R.A.Sol

Every packet starts with a markline:

šŸ–§: <hash>

<hash> is BLAKE3-256 in B64A. It identifies the canonical payload after the first LF.

HPPR packet types:

Shared Rules

Blob

šŸ–§: <hash>
Data-Length: <len>

<data exactly <len> bytes>

Rules:

Plex

šŸ–§: <hash>
Group: <group>
App: <app>
Location: <location>
TAI: <tai>
[Extra headers]*
šŸ–§: <blob_hash>
Data-Length: <len>

<data>

Rules:

TAI Format

TAI format:

<seconds>:<subseconds>

Rules:

TAI is currently UTC +37 seconds (at time of writing, 2026).

Header Validation

General:

Group and App:

Location:

Extra Headers

Extra-header ordering is canonical:

Reserved header names (MUST NOT appear as extra headers):

Limits:

Seal

šŸ–§: <hash>
Seal-By: <verification-key>
Seal-Sig: <signature>
šŸ–§: <plex_hash>
Group: <group>
App: <app>
Location: <location>
TAI: <tai>
[Extra headers (sorted)]*
šŸ–§: <blob_hash>
Data-Length: <len>

<data>

Rules:

Limits

Parsing

  1. Read markline and verify the type prefix in the hash.
  2. Blob:
    • read Data-Length
    • consume exact data bytes
    • verify Blob hash
  3. Plex:
    • read required headers in required order
    • read extra headers with canonical ordering checks
    • parse embedded Blob
    • verify Plex hash
  4. Seal:
    • read Seal-By, Seal-Sig
    • parse embedded Plex
    • verify Seal hash
    • verify signature

Reject on any of the following:

Trailer-hash Format

Trailer-hash format supports streaming when the final hash is only known at the end.

Open marker:

ā‹ÆšŸ–§: <type>[ <coordinate>]

Close marker:

ā‹ÆšŸ–§: <hash>

Rules:

Seal trailer example:

ā‹ÆšŸ–§: S //<group>/<app>/<location>/|/seal/<verification-key>
<escaped data>
ā‹ÆšŸ–§: B.<blob-hash>.H3
Group: <group>
App: <app>
Location: <location>
TAI: <tai>
[Extra headers]*
ā‹ÆšŸ–§: P.<plex-hash>.H3
Seal-By: <verification-key>
Seal-Sig: <signature>
ā‹ÆšŸ–§: S.<seal-hash>.H3

Additional rules:

Both sides buffer full packet bytes to compute and verify hashes.

Thin Format

Thin format stores only part of a packet.

Thin packets omit embedded content bytes and rely on nested hashes for reconstruction.

Hash computation always requires full packet bytes. Implementations MUST resolve thin references before hash verification.

Thin format is for storage and transfer when inner packets are already present.


  1. .H3 names the active format extension: BLAKE3-256 hashing, HSB3 signatures, UTF-8 NFC normalization (Unicode 17.0.0), and this packet structure.ā†©ļøŽ