Links to various templates
- template-js -- A template for JS projects
- template-ts -- A template for Node typescript dependency modules
- template-ts-browser -- Template for typescript projects in a browser environment
- template-web-component -- Template for web components
- template-ts-preact-htm -- Template for peact, htm, and typescript
- template-ts-preact-htm-app -- Template for applications using htm & preact
- template-netlify-preact-htm-app -- Template for netlify, htm, preact
- template-tonic-spa -- Tonic framework + client-side routing
plus, a list
npm run buildnpm startSee 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{encodeasmultibaseEncode,decodeasmultibaseDecode}from"multiformats/bases/base58"import*asvarintfrom"multiformats/src/varint"import*asmulticodecfrom"multicodec"// Suppose you have a raw public-key Buffer/Uint8ArrayconstrawKeyBytes=/* ... */// Add the proper multicodec prefix for, say, ed25519-pub (via multicodec)constprefixed=multicodec.addPrefix('ed25519-pub',rawKeyBytes)// Then multibase-encode it (e.g. base58btc)constmb=bases.base58.encoder.encode(prefixed)// This yields something like "z6Mk…", same style as in the DID docconsole.log(mb)



