Skip to content

Nevermined Contracts Documentation

The Nevermined Contracts are organized in different modules. Each of them is intended to keep different Solidity Smart Contracts code providing different building blocks or capabilities to implement the Nevermined Business Logic.



It allows the registration of assets into a Nevermined network. The entry point for that is the DIDRegistry contract. It allows to

The different contracts involved in the Registry module are:

Service Agreement Templates

This are the templates used for the end users to define use cases or user flows. They implement a pre-defined user flow implementing a use case (like selling access to data). Every different service agreement template allows to create instances of their type by the users with custimzed conditions.

The existing templates existing are:

A part of this, the agreements contracts module provide some internal components to manage the registering of service agreements on-chain. This contracts typically don't need be instantiated directly by end-users:

Service Agreement Conditions

Are the different conditions allowing to the users of a flow to define the ground rules as part of an agreement. Conditions typically have different parameters allowing to the users to define the specific conditions that someone executing an agreement needs to fulfill.

The combination of templates and agreements allow the definition of complex scenarios where the users can interact and transact regarding Nevermined digital assets.

The existing conditions ready to be used are:


This are the contracts providing the following capabilities:

  • Nevermined Token - A reference implementation of a ERC20 token. This NVM token is provided as default token in a Nevermined deployment. The usage of this token is not necessary. A different ERC20 can be used depending on the deployment of the network or the configuration of the service agreements. This allows to support payments in the NVM token, a different ERC20 token or in ETH.
  • Dispenser - It allows the distribution of ERC20 tokens (typically NVM token) in a testnet. Because of that, the Dispenser contract is not deployed in production or mainnet networks.


Contract Interfaces

Template Libraries

Allow the registration and management of Service Agreement Templates. Typically are not necessary by users, that can make use of the already pre-defined service agreement templates.

Condition Libraries

Internal libraries allowing the management and support of conditions.