did:key
is a DID Method which is offline friendly, cryptographically self certifying, requires no trust of blockchain or certificate authoritites and is ideal for ephemeral use.
🚧 Under Construction.
Demos:
- Web App: https://did.key.transmute.industries.
NIST Curves are only supported in node 15.
If you want to resolve all did keys, you need to install all of them:
npm i @transmute/did-key.js@latest @transmute/did-key-ed25519@latest @transmute/did-key-x25519@latest @transmute/did-key-bls12381@latest @transmute/did-key-secp256k1@latest @transmute/did-key-p384@latest --save
Use the imports below if you only want to support 1 did key type.
did:key:z6Mk...
npm i @transmute/did-key-ed25519@latest --save
did:key:z6LS...
npm i @transmute/did-key-x25519@latest --save
did:key:zUC7...
npm i @transmute/did-key-bls12381@latest --save
did:key:zQ3s...
npm i @transmute/did-key-secp256k1@latest --save
did:key:zUew...
npm i @transmute/did-key-p384@latest --save
Unstable releases are automatic, from CD:
- On every commit to master an unstable release is pushed. An unstable release is a release with a tag of the form: vA.B.C-unstable.X. Everytime a PR is merged, X is incremented.
- If "skip-ci" is present in the commit message, the aforementioned behavior is skipped
Stable releases are triggered by a dev locally
- Make sure you are familiar with Semantic Versioning
- Run
npm install
andnpm build
in the root level directory - Run
npm run publish:stable:patch
for a patch version incrementnpm run publish:stable:minor
for a minor version incrementnpm run publish:stable:major
for a major version increment
- Current version is v0.1.0
- A PR is made to fix bug A. When it's merged a release is made: v0.1.0-unstable-0
- A PR is made to add feature B. When it's merged a release is made: v0.1.0-unstable-1
- A PR is made to add feature C. When it's merged a release is made: v0.1.0-unstable-2
- Dev runs
npm run publish:stable:patch
. Current version is v0.1.0 - A PR is made to fix bug D. When it's merged a release is made: v0.1.1-unstable-0
- etc...
Because did:key
is just a deterministic transformer of public key bytes...
You really ought to never resolve it over a network.
However, it can be useful for testing purposes.
See the workbench and resolver modules.
- Create a new glitch.com project.
- Allow git pushes for the project.
Tools > Terminal
git config receive.denyCurrentBranch updateInstead
- Get the project git url
Tools > Import & Export > Project_Git_URL
- Set the project as a submodule
git submodule add <Project_Git_URL> glitch-hosting
-
Make some changes and push
-
Refresh glitch project to see changes.
Tools > Terminal
refresh
- Setup npm scripts to automate deployments according to your preferences.
Copyright 2020 Transmute Industries Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.