|May 6, 2022
|Sep 8, 2020
|May 8, 2020
|Mar 31, 2020
#1 in #evan
226 downloads per month
This crate allows you to use to work with DIDs and zero knowledge proof VCs on Trust and Trace.
It offers a command line interface and a wasm package to work with a pre-configured
Vade instance for Trust and Trace.
No surprise here:
cargo build --release
By default features
vc-zkp are used. So everything included and available for usage in command line interface.
Features can be omitted. So for example
did could be skipped.
Instead of using
vade-evan-cl, features can be adjusted to use simple JWT signing for the creation and verification of VC.
cargo build --release --no-default-features --features cli,did-sidetree,did-read,portable,vc-jwt
By default the feature
did enables did related operations =>
We also support did operations for sidetree based implementation which can be enabled if you are using non-default features, to enable it add the feature
did-sidetree to the features set.
cargo build --release --no-default-features --features cli,did-sidetree,did-read,did-write,didcomm,portable,vc-zkp
In a similar manner if you want to use either
vade-universal-resolver, you have to add them to features set.
cargo build --release --no-default-features --features cli,did-substrate,did-read,did-write,didcomm,portable,vc-zkp
cargo build --release --no-default-features --features cli,did-universal-resolver,did-read,didcomm,portable,vc-zkp
Features can be adjusted for specific needs, if you want to restrict read (
did-resolve) or write (
did-update) operations for DIDs.
cargo build --release --no-default-features --features cli,did-sidetree,did-write,didcomm,portable,vc-zkp
cargo build --release --no-default-features --features cli,did-sidetree,did-read,didcomm,portable,vc-zkp
C builds with sdk feature
Features can be adjusted to support integration with IN3 SDK by enabling
sdk feature (
sdk feature can only be used with
c-lib feature), by enabling this feature
HTTP request/response are managed via IN3 SDK.
cargo build --release --no-default-features --features did-sidetree,did-write,didcomm,portable,vc-zkp,c-lib,sdk
Command Line Interface
If you are using non-default features, enable the cli just add the feature
cli to the feature set:
cargo build --release --features cli
You can now use the
vade-evan cli. Get started by having a look at the help shown after calling it with:
vade-evan for wasm, use wasm pack.
You can specify to use only
did feature or to use
vc-zkp. The following examples will use both features.
Also you have to specify whether to build a browser or a nodejs environment.
wasm-pack build --release --target nodejs -- --no-default-features --features did,didcomm,vc-zkp,wasm
wasm-pack build --release --target web -- --no-default-features --features did,didcomm,vc-zkp,wasm
Wrapper for WASM pack
A project that wraps calls against the WASM file has been added and placed at
To build it, you need to have checked out next to your
Then it can be build by navigating to
builds/wasm and calling
yarn && yarn build
If you want to try it out, navigate to
builds/wasm/example and run
yarn && node index.js
This example will generate a new DID, assign a document to it and update it afterwards.
Features for building
|enables command line interface
|exposes C interface for C applications to use vade
|enables DID functionalities
|enables did_resolve method for DID related operations
|enables did_create and did_update methods for DID related operations
|enables DID functionalities (did_resolve, did_create, did_update ) using vade-evan-substrate plugin
|enables did_resolve method using vade-universal-resolver plugin
|enables DID functionalities for Sidetree based implementation using vade-sidetree plugin
|enables DIDComm message handling
|enables sdk integration via managing http requests/response via IN3 SDK
|exposes Java interface for Java applications to use vade
|enables VC functionalities using vc-zkp-bbs, vc-zkp-cl, vc-jwt features by default
|enables VC functionalities using vade-evan-bbs plugin
|enables VC functionalities using vade-evan-cl plugin
vc_zkp_verify_proof with JWT signatures
|build with optimizations to run natively, not compatible with
|build with optimizations to run as web assembly, not compatible with
At the moment all vade related dependencies (vade itself and its plugins) are supposed to be pulled from the latest commit of the
develop branch. As the dependency handling stores the hash of this commit in the lock file, updates on
develop branch are not used by default.
If those updates should be pulled, the entry in the
Cargo.lock file has to be deleted and
cargo build has to be run again to update these hashes. If wanting to update specific dependencies, those can be deleted from the
Cargo.lock by hand. If wanting to update all of the vade related dependencies, a script (
scripts/remove-vade-dependencies-from-lockfile.sh) can be used. Note that this script relies on dasel so this must be installed locally, e.g. with homebrew.