Uniform Resources

Semantic & Data Protocol

Specification for encoding CBOR (and Gordian Envelopes) as plain-text URIs that are also QR-code-friendly. Provides a typed URI scheme (ur:type/...), Bytewords minimal encoding for ASCII safety, multipart sequencing (MUR) for data exceeding single-QR capacity, and Luby Transform fountain codes that allow an animated QR sequence to begin at any frame and tolerate missing frames. Widely adopted across the Bitcoin self-custody ecosystem (Sparrow Wallet, Foundation Devices Passport, Keystone, etc.) for airgapped PSBT signing and seed/key transmission. Supports both bare URs (single CBOR data items) and Envelope-wrapped URs (recommended for richer use cases). Sub-specs include MUR (Multipart UR), Bytewords encoding, and a registry of UR types and CBOR tags

Community

Details

License BSD-2-Clause Plus Patent License — bc-ur (C++), URKit (Swift), bc-ur-rust, @ngraveio/bc-ur (JavaScript), and multiple third-party implementations
Dev Status 🟢 Active
Dev Status Detail Released — production; widely adopted in Bitcoin wallet ecosystem; reference libraries in C++, Swift, Rust, TypeScript, JavaScript, Python, Java
Owner Blockchain Commons LLC (not-for-profit benefit corporation founded by Christopher Allen, April 25, 2019; Berkeley, California). Specification authors: Wolf McNally, Christopher Allen
Country USA (Berkeley, California)
Start Year 2020
Stack Reference libraries: C++ (bc-ur), Swift (URKit), Rust, TypeScript, plus third-party Java (Sparrow Wallet) and Python (Foundation Devices) implementations
Funding Blockchain Commons donations and patron sponsorships
Last Investigated Jul 1, 2026

Use Case Domains

Semantic & Data Protocol Attributes

Origins Blockchain Commons; designed initially for airgapped PSBT (Partially Signed Bitcoin Transaction) transmission
Database N/A — encoding specification, not a storage system
Query Language N/A — encoding specification
Data Formats CBOR (deterministic, via dCBOR for Envelope-wrapped URs); Bytewords minimal encoding (base-32 ASCII subset compatible with QR alphanumeric mode and URI syntax); type-prefixed UR scheme (ur:seed/, ur:psbt/, etc.)
Collaborative Live Editing N/A — encoding specification
Rich Text Editing N/A — encoding specification
Mobile Support Yes — primary use case is mobile QR-based airgap transmission
Web Support Yes (JavaScript and TypeScript libraries)
Native Apps Yes — adopted by hardware wallets (Foundation Devices Passport, Keystone), desktop wallets (Sparrow), reference apps (Gordian Seed Tool, URDemo)
Terms Open standard, BSD-2-Clause Plus Patent License
Funds Unknown — funded under Blockchain Commons general operating budget; specific UR allocation not separately published
Based On CBOR (RFC 8949); RFC 3986 (URI syntax); QR Code alphanumeric mode; CRC-32; Luby Transform fountain codes (for MUR)
Semantic Web Compatibility UR types provide self-describing data tagging; not RDF-semantic but enable interoperable interpretation of binary cryptographic data across implementations
Protocol Maturity / Standardization Production-ready; widely adopted across the Bitcoin self-custody ecosystem; CBOR tags registered in IANA registry; revised April 2025 (BCR-2020-006 v2 types and tags)
Vocabulary / Ontology Type Type registry (BCR-2020-006) of UR types and CBOR tags maintained by Blockchain Commons (registered in IANA CBOR Tags Registry); covers seed, hdkey, psbt, output-descriptor, sskr, envelope, xid, and others
Usage Pattern Airgapped data transmission (especially PSBT signing); QR-encoded transport of seeds, keys, descriptors, Envelopes; hardware-wallet-to-coordinator communication; multi-party ceremony coordination