Canonical, HAMT, and nStack. Release Candidate Libraries
By Mels Dees

Apr 16, 2021

Together, Canonical and MicroKelvin are the system level bundle, managing how data is stored on-chain. HAMT and nStack utilize the stack to enable developers to create efficient smart contracts, optimized for zero-knowledge cryptography.

This week we deliver the Release Candidate Libraries for the System Level, specifically Canonical, HAMT, and nStack.

The System Level

The System Level bundle is of extreme importance to the network. It captures the core principle of what a blockchain does: to store data on-chain with the addition of new blocks. This data stored represents what we call the global state of the blockchain. The System Level provides the capability to users, consensus, smart contracts and Zero-Knowledge (ZK) functions to operate on data.

  • the transactions let users trigger data change
  • the consensus regulates when data change
  • the smart contracts regulate how data change
  • the ZK operations regulate if data can change

Canonical. As we are using sophisticated ZK technology, we need to encode them in a way that developers can easily make use of the ZK functionality. Canonical is a groundbreaking serialization library that provides Dusk Smart Contract developers with the possibility to access native operations on the node seamlessly. This functionality is great for developers, since it expands the toolkit they have at disposal, lets them code smart contracts without needing to be cryptographers, and lets them use heavy ZK operations with native speed.

Canonical acts as a bridge between the WASM and Rust environment, and makes sure that operations will be executed very fast. As a result, transaction fees are decreased, extremely helpful in the case of ZK operations, which are notoriously expensive on other chains.

👉 Read more about Canonical.



NStack is a merkle data structure for storing and accessing indexed values. It powers some of the zero-knowledge proofs in Dusk Network.

👉 Read more about nStack.



Dusk-HAMT. HAMT stands for Hash Array Mapped Trie, and is a data structure required for specific cases. For example, it is used in Zedger, the transaction model created by the Dusk Network to operate the world’s first Compliant Security Contract Standard (XSC) for regulatory compliant securities.

👉 Read more about HAMT.



The E2E RC Release schedule

The End-to-End Release Candidate is a feature-freeze, and signals the version of the blockchain protocol that we want to go live with. The Release Candidate includes various libraries, which together form the E2E Release Candidate.

👉 You can find the full Schedule here.


    Share this post

    Subscribe to our newsletter

    Dusk on GitHub Download Whitepaper