Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
92 lines (63 sloc) 3.09 KB

Goals for a BTCR playground

Here are some proposed goals for BTCR playgrounds and a programmer's tutorial in particular.

Actions in any playground

What actions should be available in any BTCR playground?

  1. create DID
  2. validate DID (offline validation)
  3. lookup DID
  4. verify DID (including BTC check)
  5. post DID indirectly
  6. post DID directly (if possible)
  7. revoke DID
  8. rotate DID
  9. test suite
  10. test net v main net examples

Programmer's tutorial

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.

  1. Present a programmable interface (sandbox)
  2. Walk through from first principles through to constructing a working library
  3. Provide exercises and worked-through examples
  4. Be language specific (Joe is working on a JavaScript tutorial.)

MVP Wallet

A really rough-draft of high level MVP wallet.

  1. 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.

  2. 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

  3. revoke my DID

    • Possibly print pre-signed revocation transaction as QR code that can allow anyone to revoke that DID.
  4. 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.
  5. lookup other BTC DIDs and validate them (via explorer service or SPV validation)

  6. 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

  7. Verify other web of trust simple endorsements about me, save them locally.

  8. 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
  9. 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
You can’t perform that action at this time.