/ocean.py

🦑 Ocean Protocol's Python library to privately & securely publish, exchange, and consume data.

Primary LanguagePythonApache License 2.0Apache-2.0

banner

ocean.py

Python library to privately & securely publish, exchange, and consume data.

Maintainability

Test Coverage

With ocean.py, you can:

  • Publish data services: downloadable files or compute-to-data. Create an ERC721 data NFT for each service, and ERC20 datatoken for access (1.0 datatokens to access).
  • Sell datatokens via an OCEAN-datatoken Balancer pool (for auto price discovery), or for a fixed price. Sell data NFTs.
  • Stake OCEAN on datatoken pools
  • Transfer data NFTs & datatokens to another owner, and all other ERC721 & ERC20 actions using web3.py, Brownie, etc.

ocean.py is part of the Ocean Protocol toolset.

This is in beta state. If you run into problems, please open up a new issue.

🏗 Installation

#Install the ocean.py library. Install wheel first to avoid errors.
pip install wheel
pip install ocean-lib

⚠️ Mac users: if you encounter an "Unsupported Architecture" issue, then install including ARCHFLAGS: ARCHFLAGS="-arch x86_64" pip install ocean-lib. [Details.]

🏄 Quickstart

Here are flows to try out, from simple to specific detailed variants.

  • Simple flow - the essence of Ocean - creating a data NFT & datatoken.
  • Marketplace flow - a data asset is posted for sale in a datatoken pool, then purchased. Includes metadata.
  • Fixed rate exchange flow - a data asset is posted for sale at fixed rate, then purchased.
  • Dispenser flow - here, a datatoken dispenser is created and datatokens are dispensed for free.
  • Compute-to-data flow - uses C2D to build an AI model a dataset that never leaves the premises.
  • Key-value database - use data NFTs to store arbitrary key-value pairs on-chain.
  • Profile NFTs - enable "login with Web3" where Dapp can access private user profile data.

Learn more

🦑 Development

🏛 License

Copyright ((C)) 2022 Ocean Protocol Foundation

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.