The Bitcoin Reference DID method (did:btcr) is designed as a minimal, secure, and open Decentralized Identifier (DID) method anchored to the Bitcoin blockchain. DIDs are an interoperable locator for identity that does not require permission from anyone else. The BTCR method specifically is fully open source — not tied to a commercial vendor — which makes it a valuable vendor-agnostic demonstration of the emerging DID specification.
BIP-136 (TxRefs) merged
Most recently, BIP-136 was merged, allowing us to finalize BTCR identifier syntax. BIP-136 describes TxRefs, which are a standard, reliable, concise way to refer to a transaction position in the Bitcoin blockchain (with an optional outpoint index), and are relied on for BTCR identifiers. Previously, BTCR syntax deviated slightly from BIP-136 because we wanted the following changes:
- ability to refer to a specific tx output
- eliding the human readable part (HRP) for conciseness
Dan Pape worked with the BIP-136 authors to merge in these changes, so now we are able to use the standard TxRef format.
We recently updated the BTCR method spec, reference libraries, and playground to use the updated format and terminology.
Propagated BTCR v0.1 design decisions
Earlier this year we published BTCR v0.1 design decisions. These scope-cutting decisions were made because we want to ship an MVP, and we are mostly volunteer-fueled (see below if you want to help).
We recently updated the BTCR method spec, reference libraries, and playground to reflect the v0.1 design decisions.
You can find the latest BTCR materials here:
- C++ BTCR utilities
- C++ TxRef conversion
- C++ Bech32 conversion
- Java TxRef conversion
- Java Bech32 conversion
- Golang BTCR Service
We still have a lot to do. Some examples include:
- Documentation and samples
- Other developer-focused documentation (e.g. Jupyter notebook)
- More examples of Verifiable Credentials and E2E demonstration of DIDs with Verifiable Credentials
- Update resolvers and libraries to support update and delete operations
- Development of a BTCR wallet/mobile app
- Update playground to support easier creation of BTCR testnet DIDs (e.g. a hosted service backed with faucet funds)
- Connect playground to golang BTCR REST api
See the end for how to help or get involved.
Thanks to our supporters
Progress on the BTCR method has been fueled by funding from Blockchain Commons, Digital Contract Design, and the Shuttleworth Foundation and a lot of generous volunteer effort. Thanks to our sponsors and volunteers for keeping this important work going.
Volunteer or Donate
We will continue progress at these events:
- BTCR hackathon in August (exact dates/time TBD)
- Rebooting Web of Trust 9 in Prague, Sept 3–6, 2019
Email us at firstname.lastname@example.org if you’d like to join the BTCR hackathon or contribute asynchronously (please specify your interests — e.g. doc writing, library development, etc).
We also welcome donations, which we need to fund more specialized work like wallet development, security review, or even sample creation. BTC donation information is here.
Authors: Kim Hamilton Duffy, Ryan Grant, Dan Pape, Christopher Allen