Neanderthal Painting Monet

    TypeScript icon, indicating that this package has built-in type declarations

    0.1.2 • Public • Published

    Decentralized Identity Documents

    The diddoc crate is aimed to help javascript and rust developers manage DID docs (Decentralized Identity Documents) in an easy manner. Following w3's specifications on DID Documents this crate aims to be a Resolver. This means it will create, read, update and delete all properties of a DID document. As well as interacting with other DIDs and DID document, using proof verification. Also, it will be able to interact with others on other Decentralized Identifier Registry. This will can effectively be used to perform all the operations required of a CKMS (cryptographic key management system), such as key registration, replacement, rotation, recovery, and expiration. More details in w3's method specifications.


    You can read our code documentation, which makes reference to usage with javascript and rust as well as the actual implementation of the library.

    For more details you can take a look at our book.


    Clone repository and go to the book directory:

    git clone
    cd caelum-diddoc/book

    Download mdbook and build the documentation:

    cargo install mdbook
    mdbook build

    Open the book /your/relative/path/caelum-diddoc/book/book/index.html on your favorite browser.

    Installing DidDoc for JavaScript

    From npm

    Add it to your package.json:

        "@caelum-tech/caelum-diddoc-nodejs": "^0.1.2",

    Imported in your code:

    const diddoc = require('@caelum-tech/caelum-diddoc-nodejs')

    Finally you can use it as any other package:

    const d = new diddoc.DidDoc('', 'did:lor:cat:lab:root')

    From gitlab

    Clone or download diddoc repository

    git clone ...

    Go to diddoc directory and build the package using wasm-pack (make sure wasm-pack is installed)

    cd diddoc
    wasm-pack build

    This will generate a directory called pkg inside diddoc directory.

    Add the generated package to your package.json;

        "diddoc": "file:../diddoc/pkg",

    Now your ready to import it in your JavaScript code as usual:

    const diddoc = require('diddoc')

    Finally you can use it as any other package:

    const d = new diddoc.DidDoc('', 'did:lor:cat:lab:root')

    From npm

    Installed as a normal npm package:

    npm i @caelum-tech/caelum-diddoc-nodejs


    A DID resolver is a software component with an API designed to accept requests for DID lookups and execute the corresponding DID method to retrieve the authoritative DID Document. To be conformant with this specification, a DID resolver:

    SHOULD validate that a DID is valid according to its DID method specification, otherwise it should produce an error.

    MUST conform to the requirements of the applicable DID method specification when performing DID resolution operations.

    SHOULD offer the service of verifying the integrity of the DID Document if it is signed.

    MAY offer the service of returning requested properties of the DID Document.


    • [ x ] Basic CRUD implementation on properties.
    • [ x ] Basic CRUD implementation on Optional properties.
    • Basic interaction with IPFS.
    • Verifying cryptographic proofs.
    • Implementing important DID methods such as did-erc725, did-btcr, did-sov, and others.
    • Helper to implement DID for own methods.


    Please, contribute to diddoc! The more the better! Feel free to to open an issue and/or contacting directly with the owner for any request or suggestion.


    This library is created to satisfy w3's specifications.

    Code of conduct

    This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at


    This project is distributed under the terms of both the Apache License (Version 2.0) and the MIT license, specified in LICENSE-APACHE and LICENSE-MIT respectively.




    npm i caelum-diddoc

    DownloadsWeekly Downloads






    Unpacked Size

    246 kB

    Total Files


    Last publish


    • tomas_caelum