Publish Flow
This page shows how you can publish a data NFT, a datatoken & a data asset all at once in different scenarios.
In this page, we provide some tips & tricks for publishing an asset on Ocean Market using ocean.py.
We assume you've already (a) installed Ocean, and (b) done local setup or remote setup. This flow works for either one, without any changes between them.
In the Python console:
You've now published an Ocean asset!
Appendix
For more information regarding: Data NFT & Datatokens interfaces and how they are implemented in Solidity, we suggest to follow up this article and contracts repo from GitHub.
As you may want to explore more the DDO specs, structure & meaning, we invite you to consult DDO Specification section.
Publishing Alternatives
Here's an example similar to the create()
step above, but exposes more parameters to interact with, which requires deeper knowledge about ocean.py usage. The below example points out the creation of an asset and attempts to create a datatoken as well, with the files specified in DatatokenArguments
class. You have the freedom to customize the data NFT, datatoken and also fields from DDO, such as:
services
metadata
credentials
In the same python console:
DDO Encryption or Compression
The DDO is stored on-chain. It's encrypted and compressed by default. Therefore it supports GDPR "right-to-be-forgotten" compliance rules by default.
You can control this during create()
:
To disable encryption, use
ocean.assets.create(..., encrypt_flag=False)
.To disable compression, use
ocean.assets.create(..., compress_flag=False)
.To disable both, use
ocean.assetspy.create(..., encrypt_flag=False, compress_flag=False)
.
Create a data NFT
Calling create()
like above generates a data NFT, a datatoken for that NFT, and a ddo. This is the most common case. However, sometimes you may want just the data NFT, e.g. if using a data NFT as a simple key-value store. Here's how:
If you call create()
after this, you can pass in an argument data_nft_address:string
and it will use that NFT rather than creating a new one.
Create a datatoken from a data NFT
Calling create()
like above generates a data NFT, a datatoken for that NFT, and a ddo object. However, we may want a second datatoken. Or, we may have started with just the data NFT, and want to add a datatoken to it. Here's how:
If you call create()
after this, you can pass in an argument deployed_datatokens:List[Datatoken1]
and it will use those datatokens during creation.
Create an asset & pricing schema simultaneously
Ocean Assets allows you to bundle several common scenarios as a single transaction, thus lowering gas fees.
Any of the ocean.assets.create_<type>_asset()
functions can also take an optional parameter that describes a bundled pricing schema (Dispenser or Fixed Rate Exchange).
Here is an example involving an exchange:
Last updated