Skip to content

evannetwork/sidetree.js

 
 

Repository files navigation

Sidetree.js

npm version Continuous Integration

What is Sidetree.js

Sidetree.js is a simple-as-possible TypeScript implementation of the Sidetree version 1.0 protocol. The purpose of the Sidetree protocol is to create a blockchain based public key infrastructure, where rather than having a central authority that can accept or revoke keys, by having the blockchain act as a whitness for regestering public keys, anyone can publish a public key that can be used to establish identity.

How Does Sidetree.js Work?

The Sidetree protocol describes using a Content Addressable Storage and a Ledger to establish a public key infrastructure. What this boils down to is that public keys are stored in a Content Addressable Storage, and pointers to that storage are published on a Ledger.

The simpliest possible example of this would be an public FTP server, where anyone could upload a public key and a identifier for that public key. In practice, this sets up a central authority and a single point of failure. In practice we use a public ledger such as Bitcoin or Ehtereum. And we use IPFS as a Content Addressable Storage to create Decentralized Identitifiers for Public Keys.

However since the interfaces for what needs to be implemented is flexible, we can also implement DID methods such as Photon which uses Amazon QLDB for a ledger, and Amazon S3 for content addressable storage.

Sidetree Based DID Methods

The following did methods are supported or intended to be supported (or planned to be supported) by the the Sidetree.js implementation. More information on how to set up a node can be in the Dashboard package.

Method Spec Ledger Storage Support
did:elem spec Ethereum IPFS Full
did:photon spec Amazon QLDB Amazon S3 Full
did:ion spec Bitcoin IPFS Planned
did:orb spec Hyperledger Fabric IPFS Planned

Public Sidetree.js Nodes

Element

Developers Guide

See Development

Commercial Support

Commercial support for these libraries is available upon request from Transmute: support at transmute dot industries

Security Policy

Please see our security policy for additional details about responsible disclosure of security related issues.

License

Apache-2.0 © Transmute Industries Inc.

Packages

No packages published

Languages

  • TypeScript 92.3%
  • JavaScript 6.0%
  • Shell 1.1%
  • Other 0.6%