Here are some proposed goals for BTCR playgrounds and a programmer's tutorial in particular.
What actions should be available in any BTCR playground?
- create DID
- validate DID (offline validation)
- lookup DID
- verify DID (including BTC check)
- post DID indirectly
- post DID directly (if possible)
- revoke DID
- rotate DID
- test suite
- test net v main net examples
The goal of the tutorial is to walk a programmer through the parts of creating and using DIDs in a way that will make it easier for them to understand and use DIDs in their own work.
- Present a programmable interface (sandbox)
- Walk through from first principles through to constructing a working library
- Provide exercises and worked-through examples
- Be language specific (Joe is working on a JavaScript tutorial.)
A really rough-draft of high level MVP wallet.
-
Master Seed
-
-
Create master seed (BIP32)
-
Archive and test recovery of master seed (BIP 39)
-
- Possibly update to use instead new Lightning varient of BIP39
- Possibly save recovery words using updated wordset
- Possibly save recovery words as poem
-
Derive Identity Root, Account Roots, and children of first Account Roots used for DIDs
-
This might be possibly a different app, say on an iPod Touch, that creates the children addresses for the DID wallet app via QR codes.
-
-
create my DID
-
-
Fund first child of Account root
-
Create DID Document Extension
-
- Post DID Document Extension to IPFS (unsigned) or BTCR Service Endpoint (signed) such as Github
-
Create initial DID transaction with DID Document Extension
-
-
revoke my DID
-
- Possibly print pre-signed revocation transaction as QR code that can allow anyone to revoke that DID.
-
rotate my DID to next child address with a new transaction and DID Document
-
- Alternatively rotate to a brand new seed’s child for special cases
- Possibly a pre-signed rotation transaction.
-
lookup other BTC DIDs and validate them (via explorer service or SPV validation)
-
Issue web of trust simple endorsements about other DIDs, and share them back to holder, optionally post them publicly as IPFS documents or appended to BTCR ServiceEndpoint
-
Verify other web of trust simple endorsements about me, save them locally.
-
Contacts directory / Rolodex
- search and scroll
- Import a DID
-
- pasted from online
-
- scanned qrcode
-
- sent via trusted contact
- "browse" single contact
-
- display attributes
-
- click to launch connection to an endpoint
-
- show log of recent connections initiated through this app
-
- display contact's qrcode for export to another device
-
- DID-authenicate this contact
-
- mark DID confirmed through alternate channel
-
My calling cards
- Display qrcode with my calling card
-
- fresh DID seeded with business identity
-
- fresh DID seeded with friends-and-family identity
-
- fresh DID with blank identity
-
- an old DID
- Attach an attribute to one of my identities