Skip to content

nichoth/nichoth

Repository files navigation

nichoth.com

https://nichoth.com/


nichoth's GitHub stats

templates

Links to various templates

notes

Links and notes

plus, a list

build

npm run build

start a local dev server

npm start

Notes

DID

See did.json.

The key format is Multikey, a generic, self-describing, multicodec-based public key encoding.

// ...
"verificationMethod": [
    {
        "id": "did:web:nichoth.com#main-key",
        "type": "Multikey",  // < -- this
        "controller": "did:web:nichoth.com",
        "publicKeyMultibase": "z6Mkmy1ak2zS6hPohyNnPwMUDqpC3WE8wTR3Fcz5esUoCFNH"
    }
],
// ...

To encode something as a multikey:

import { bases } from "multiformats/bases/base58"
import {
  encode as multibaseEncode,
  decode as multibaseDecode
  } from "multiformats/bases/base58"
import * as varint from "multiformats/src/varint"
import * as multicodec from "multicodec"

// Suppose you have a raw public-key Buffer/Uint8Array
const rawKeyBytes = /* ... */

// Add the proper multicodec prefix for, say, ed25519-pub (via multicodec)
const prefixed = multicodec.addPrefix('ed25519-pub', rawKeyBytes)

// Then multibase-encode it (e.g. base58btc)
const mb = bases.base58.encoder.encode(prefixed)

// This yields something like "z6Mk…", same style as in the DID doc
console.log(mb)

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Contributors 3

  •  
  •  
  •