URMA. GitHub

PROTOCOL / RECORDS & VALIDATION

A record is bytes in a block.
Not a row in a database.

URMA V0 defines how files and public records are written into blockchain transactions, how any reader verifies them, and how private content is recovered with a 32-byte root. Profiles give records meaning. Applications give people a workflow. The protocol depends on neither.

01 / ANATOMY OF A RECORD

Every record starts with the same eight bytes.
Bytes 0–3URMA55 52 4d 41
Byte 400version
Byte 501…0Ckind
Bytes 6–700 00flags
KindRecordCarrierBound
01Private canonical record: encrypted bytes of any type. Content type is encrypted metadata.Taproot reveal or offline containerFragmented into canonical chunks under one root
02 · 04Public post and reply. Signed by the key that authorizes the reveal.Taproot reveal32,768 bytes, atomic
05Identity profile: up to 128 UTF-8 bytes, preserved exactly.Taproot reveal8–136 bytes, atomic
06Avatar: 16×16 indexed pixels, fixed EGA16 palette, high nibble first and row-major.Taproot revealExactly 136 bytes: eight-byte header + 128 raw pixel bytes
0A · 0BStructured wires and hashtags.Taproot reveal32,768 bytes, atomic
0CProfile record: eight-byte profile identifier plus opaque bytes. Names registries use it.Taproot reveal32,768 bytes, atomic
07 · 08 · 09Public multipart object: data parts, leaf manifests, one root manifest. Git snapshots and site packages travel this way.Taproot reveal262,144 bytes per record; root → leaves → data
03Private-object container for offline recovery.Offline onlySame private format, no chain

02 / DOCUMENTS

Stable address per revision. Checksums on the documents page.

03 / WHAT CONFIRMATION MEANS

Confirmed once.
Carried by everyone.

A record is published as a Taproot commit and reveal. Once confirmed, it is inside a block that every full copy of the chain carries. The protocol has no delete operation and no central index, registry or relay.

  1. ErasureNo single party can remove a confirmed recordHolds
  2. AuthorshipAny reader checks the author’s key proofHolds
  3. PrivacyPrivate bytes stay unreadable without your keyHolds
  4. ReachabilityYou still need a reachable chain sourceYour side
01

The core

Canonical codecs, cryptographic primitives and proof validation live in urma-core, without network or filesystem I/O.

Read the core API
02

Public & private

Public records can be read by anyone with a reader. Private objects open with your key: every object under one key is recoverable with that key alone. No wallet seed, journal, filename, database or company service is ever required.

03

Records on a chain

Chain observations, transaction decoding and proof-of-work validation cover Bitcoin and Litecoin. Transports belong to the runtime, not the record format.

Follow a record through the system
04

What a proof means

Verification proves the bytes are intact and which key authorized them.

Status & boundaries