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
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:
- Access Template
- Compute Execution Template
- DID Sales Template
- NFT Sales Template
- NFT Access Template
- Dynamic Access Template
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:
- Access Condition
- Lock Payment Condition
- Compute Execution Condition
- Hash Lock Condition
- NFT Access Condition
- NFT Holder Condition
- NFT Lock Condition
- Transfer DID Ownership Condition
- Transfer NFT Condition
- Sign Condition
- Whitelisting Condition
- Threshold Condition
This are the contracts providing the following capabilities:
- Nevermined Token - A reference implementation of a
NVMtoken is provided as default token in a Nevermined deployment. The usage of this token is not necessary. A different
ERC20can be used depending on the deployment of the network or the configuration of the service agreements. This allows to support payments in the
NVMtoken, a different
ERC20token or in
- Dispenser - It allows the distribution of
NVMtoken) in a testnet. Because of that, the Dispenser contract is not deployed in production or mainnet networks.
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.
Internal libraries allowing the management and support of conditions.