Layer 0 · URN & addressing
Canonical reference:
digstore-core::urn(the wire-format source of truth),digstore-core::lib.rs:68-73. Crypto that consumes the URN is in Cryptography.
The canonical URN grammar
urn = "urn:dig:" chain ":" store-id [ ":" root-hash ] [ "/" resource-key ]
chain = "chia" ; locked by every producer (lib.rs:68)
store-id = 64HEXDIG ; 32-byte singleton launcher id
root-hash = 64HEXDIG ; OPTIONAL 32-byte generation root (pins one capsule)
resource-key= 1*pchar ; OPTIONAL path; taken verbatim (NOT lowercased)
Urn::canonical() renders urn:dig:{chain}:{store_id.hex}, then optionally :{root.hex}, then optionally /{resource_key} (urn.rs:63-74). Urn::parse strips urn:dig:, splits the resource at the first /, splits the head on : into chain / store_id / optional root_hash, and rejects more than three head segments (urn.rs:24-60).
The chain label
Every producer writes the literal chia (CHAIN = "chia", lib.rs:68) — Chia mainnet is the chain. The canonical Urn type carries the chain label as a generic field; the chia value is set by every producer.