Testing a possible gitbook duplication issue
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 63 KiB |
Before Width: | Height: | Size: 63 KiB |
Before Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 99 KiB |
Before Width: | Height: | Size: 51 KiB |
Before Width: | Height: | Size: 123 KiB |
Before Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 104 KiB |
Before Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 146 KiB After Width: | Height: | Size: 146 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 99 KiB After Width: | Height: | Size: 99 KiB |
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
Before Width: | Height: | Size: 123 KiB After Width: | Height: | Size: 123 KiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 104 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 146 KiB |
Before Width: | Height: | Size: 149 KiB |
Before Width: | Height: | Size: 111 KiB |
Before Width: | Height: | Size: 226 KiB |
Before Width: | Height: | Size: 226 KiB After Width: | Height: | Size: 226 KiB |
Before Width: | Height: | Size: 149 KiB After Width: | Height: | Size: 149 KiB |
@ -1,12 +1,14 @@
|
||||
# Table of contents
|
||||
|
||||
- [🌊 Discover](README.md)
|
||||
|
||||
- [Wallet Basics](discover/wallets.md)
|
||||
- [Set Up MetaMask Wallet](discover/metamask-setup.md)
|
||||
- [Manage Your OCEAN Tokens](discover/wallets-and-ocean-tokens.md)
|
||||
- [Networks](discover/networks.md)
|
||||
- [Bridges](discover/bridges.md)
|
||||
- [FAQ](discover/faq.md)
|
||||
|
||||
- [📚 Tutorials](tutorials/README.md)
|
||||
- [Using Ocean Market](tutorials/using-ocean-market/README.md)
|
||||
- [Publish a Data Asset](tutorials/using-ocean-market/marketplace-publish-data-asset.md)
|
||||
|
@ -29,16 +29,16 @@ With data NFTs, you are able to take advantage of the wider NFT ecosystem and al
|
||||
|
||||
The image above describes how ERC721 data NFTs and ERC20 datatokens relate.
|
||||
|
||||
* Bottom: The publisher deploys an ERC721 data NFT contract representing the base IP for the data asset. They are now the manager of the data NFT.
|
||||
* Top: The manager then deploys an ERC20 datatoken contract against the data NFT. The ERC20 represents a license with specific terms like "can download for the next 3 days". They could even publish further ERC20 datatoken contracts, to represent different license terms or for compute-to-data.
|
||||
- Bottom: The publisher deploys an ERC721 data NFT contract representing the base IP for the data asset. They are now the manager of the data NFT.
|
||||
- Top: The manager then deploys an ERC20 datatoken contract against the data NFT. The ERC20 represents a license with specific terms like "can download for the next 3 days". They could even publish further ERC20 datatoken contracts, to represent different license terms or for compute-to-data.
|
||||
|
||||
### Terminology
|
||||
|
||||
* **Base IP** means the artifact being copyrighted. Represented by the {ERC721 address, tokenId} from the publish transactions.
|
||||
* **Base IP holder** means the holder of the Base IP. Represented as the actor that did the initial "publish" action.
|
||||
* **Sub-licensee** is the holder of the sub-license. Represented as the entity that controls address ERC721.\_owners\[tokenId=x].
|
||||
* **To Publish**: Claim copyright or exclusive base license.
|
||||
* **To Sub-license**: Transfer one (of many) sub-licenses to new licensee: ERC20.transfer(to=licensee, value=1.0).
|
||||
- **Base IP** means the artifact being copyrighted. Represented by the {ERC721 address, tokenId} from the publish transactions.
|
||||
- **Base IP holder** means the holder of the Base IP. Represented as the actor that did the initial "publish" action.
|
||||
- **Sub-licensee** is the holder of the sub-license. Represented as the entity that controls address ERC721.\_owners\[tokenId=x].
|
||||
- **To Publish**: Claim copyright or exclusive base license.
|
||||
- **To Sub-license**: Transfer one (of many) sub-licenses to new licensee: ERC20.transfer(to=licensee, value=1.0).
|
||||
|
||||
### Implementation in Ocean Protocol
|
||||
|
||||
@ -62,12 +62,12 @@ Ocean provides convenient methods to list ERC20 datatokens for sale, with fixed-
|
||||
|
||||
### High-Level Behavior
|
||||
|
||||
![High-Level Flow](<../../.gitbook/assets/architecture/use-case (1).png>)
|
||||
![High-Level Flow](../../.gitbook/assets/architecture/high-level-flow.png)
|
||||
|
||||
Here's an example.
|
||||
|
||||
* In step 1, Alice **publishes** her dataset with Ocean: this means deploying an ERC721 data NFT contract (claiming copyright/base IP), then an ERC20 datatoken contract (license against base IP).
|
||||
* In step 2, she **mints** some ERC20 datatokens and **transfers** 1.0 of them to Bob's wallet; now he has a license to be able to download that dataset.
|
||||
- In step 1, Alice **publishes** her dataset with Ocean: this means deploying an ERC721 data NFT contract (claiming copyright/base IP), then an ERC20 datatoken contract (license against base IP).
|
||||
- In step 2, she **mints** some ERC20 datatokens and **transfers** 1.0 of them to Bob's wallet; now he has a license to be able to download that dataset.
|
||||
|
||||
### Revenue
|
||||
|
||||
@ -87,8 +87,8 @@ The only data NFT template currently available has templateId `1` and the source
|
||||
|
||||
The details regarding currently supported datatoken templates are as follows:
|
||||
|
||||
* **Regular template**: The regular template allows users to buy/sell/hold datatokens. The datatokens can be minted by the address having a `MINTER` role, making the supply of datatoken variable. This template is assigned templateID `1` and the source code is available [here](https://github.com/oceanprotocol/contracts/blob/v4main/contracts/templates/ERC20Template.sol).
|
||||
* **Enterprise template**: The enterprise template has additional functions apart from methods in the ERC20 interface. This additional feature allows access to the service by paying in the basetoken instead of datatoken. Internally, the smart contract handles conversion of basetoken to datatoken, initiating an order to access the service, and minting/burning the datatoken. The total supply of the datatoken effectively remains 0 in the case of the enterprise template. This template is assigned templateID `2` and the source code is available [here](https://github.com/oceanprotocol/contracts/blob/v4main/contracts/templates/ERC20TemplateEnterprise.sol).
|
||||
- **Regular template**: The regular template allows users to buy/sell/hold datatokens. The datatokens can be minted by the address having a `MINTER` role, making the supply of datatoken variable. This template is assigned templateID `1` and the source code is available [here](https://github.com/oceanprotocol/contracts/blob/v4main/contracts/templates/ERC20Template.sol).
|
||||
- **Enterprise template**: The enterprise template has additional functions apart from methods in the ERC20 interface. This additional feature allows access to the service by paying in the basetoken instead of datatoken. Internally, the smart contract handles conversion of basetoken to datatoken, initiating an order to access the service, and minting/burning the datatoken. The total supply of the datatoken effectively remains 0 in the case of the enterprise template. This template is assigned templateID `2` and the source code is available [here](https://github.com/oceanprotocol/contracts/blob/v4main/contracts/templates/ERC20TemplateEnterprise.sol).
|
||||
|
||||
_NOTE: Ocean Protocol might support additional variations of data NFT/datatoken by adding new templates._
|
||||
|
||||
@ -98,8 +98,8 @@ Fractional ownership is an exciting sub-niche of Web3, at the intersection of NF
|
||||
|
||||
Ocean provides two approaches to fractional ownership:
|
||||
|
||||
* Sharded holding of ERC20 datatokens, where each ERC20 holder has the usual datatoken rights as described above, e.g. 1.0 datatokens to consume an asset. This comes out-of-the-box with Ocean.
|
||||
* Sharding ERC721 data NFT, where each co-holder has right to some earnings against base IP, and co-controls the data NFT. For example, there’s a DAO with the sole purpose to hold the data NFT; this DAO has its own ERC20 token; DAO members vote with tokens to update data NFT roles or deploy ERC20 datatokens against the ERC721.
|
||||
- Sharded holding of ERC20 datatokens, where each ERC20 holder has the usual datatoken rights as described above, e.g. 1.0 datatokens to consume an asset. This comes out-of-the-box with Ocean.
|
||||
- Sharding ERC721 data NFT, where each co-holder has right to some earnings against base IP, and co-controls the data NFT. For example, there’s a DAO with the sole purpose to hold the data NFT; this DAO has its own ERC20 token; DAO members vote with tokens to update data NFT roles or deploy ERC20 datatokens against the ERC721.
|
||||
|
||||
Note: For (2), one might consider doing sharding with something like Niftex. But then there are questions: what rights do the shard-holders get exactly? It could be zero; for example, Amazon shareholders don’t have the right to walk the hallways of the Amazon offices just because they hold shares. Secondly, how do the shard-holders control the data NFT? These questions get resolved by using a tokenized DAO, as described above.
|
||||
|
||||
@ -111,7 +111,7 @@ This has several variants. Each member’s data feed could be its own data NFT w
|
||||
|
||||
### Other References
|
||||
|
||||
* [Data & NFTs 1: Practical Connections of ERC721 with Intellectual Property](https://blog.oceanprotocol.com/nfts-ip-1-practical-connections-of-erc721-with-intellectual-property-dc216aaf005d)
|
||||
* [Data & NFTs 2: Leveraging ERC20 Fungibility](https://blog.oceanprotocol.com/nfts-ip-2-leveraging-erc20-fungibility-bcee162290e3)
|
||||
* [Data & NFTs 3: Combining ERC721 & ERC20](https://blog.oceanprotocol.com/nfts-ip-3-combining-erc721-erc20-b69ea659115e)
|
||||
* [Fungibility sightings in NFTs](https://blog.oceanprotocol.com/on-difficult-to-explain-fungibility-sightings-in-nfts-26bc18620f70)
|
||||
- [Data & NFTs 1: Practical Connections of ERC721 with Intellectual Property](https://blog.oceanprotocol.com/nfts-ip-1-practical-connections-of-erc721-with-intellectual-property-dc216aaf005d)
|
||||
- [Data & NFTs 2: Leveraging ERC20 Fungibility](https://blog.oceanprotocol.com/nfts-ip-2-leveraging-erc20-fungibility-bcee162290e3)
|
||||
- [Data & NFTs 3: Combining ERC721 & ERC20](https://blog.oceanprotocol.com/nfts-ip-3-combining-erc721-erc20-b69ea659115e)
|
||||
- [Fungibility sightings in NFTs](https://blog.oceanprotocol.com/on-difficult-to-explain-fungibility-sightings-in-nfts-26bc18620f70)
|
||||
|
@ -10,24 +10,24 @@ title: Bridges
|
||||
|
||||
BSC provides several bridge options, including:
|
||||
|
||||
* withdraw crypto from Binance.com, and
|
||||
* use Binance bridge.
|
||||
- withdraw crypto from Binance.com, and
|
||||
- use Binance bridge.
|
||||
|
||||
The article [How to Get Started with BSC](https://academy.binance.com/en/articles/how-to-get-started-with-binance-smart-chain-bsc) by Binance Academy provides further details.
|
||||
|
||||
#### Links
|
||||
|
||||
* [BSC Wallet Support](https://docs.binance.org/wallets/bsc-wallets.html). Includes MetaMask and Trust Wallet.
|
||||
* [BSC Bridge](https://www.bnbchain.org/en/bridge)
|
||||
* [How to set up a custom network in MetaMask](metamask-setup.md#set-up-custom-network)
|
||||
- [BSC Wallet Support](https://docs.binance.org/wallets/bsc-wallets.html). Includes MetaMask and Trust Wallet.
|
||||
- [BSC Bridge](https://www.bnbchain.org/en/bridge)
|
||||
- [How to set up a custom network in MetaMask](metamask-setup.md#set-up-custom-network)
|
||||
|
||||
## Polygon (ex Matic) Bridge
|
||||
|
||||
#### Links
|
||||
|
||||
* [Matic Wallet](https://wallet.polygon.technology/)
|
||||
* [Matic Bridge](https://wallet.polygon.technology/bridge/)
|
||||
* [How to set up a custom network in MetaMask](metamask-setup.md#set-up-custom-network)
|
||||
- [Matic Wallet](https://wallet.polygon.technology/)
|
||||
- [Matic Bridge](https://wallet.polygon.technology/bridge/)
|
||||
- [How to set up a custom network in MetaMask](metamask-setup.md#set-up-custom-network)
|
||||
|
||||
#### Intro to Polygon's Bridge
|
||||
|
||||
@ -45,7 +45,7 @@ For details check the [blog post](https://blog.oceanprotocol.com/ocean-on-polygo
|
||||
|
||||
On the main page of the wallet, you can see all tokens you own on the Matic Mainnet. To deposit tokens (transfer them from the Ethereum Mainnet) you can either use the “deposit” button for a selected token or use “Move funds to Matic Mainnet”.
|
||||
|
||||
![Main wallet page](<../.gitbook/assets/wallet/main-wallet-page (1).png>)
|
||||
![Main wallet page](../.gitbook/assets/wallet/wallet-page.png)
|
||||
|
||||
Both options will redirect you to the bridge interface. In case you chose the second one, use the dropdown and select the token you want to transfer from the Ethereum Mainnet.
|
||||
|
||||
@ -53,7 +53,7 @@ Both options will redirect you to the bridge interface. In case you chose the se
|
||||
|
||||
Choose the amount to transfer and click the “Transfer” button. Matic’s bridge interface will guide you through the whole process and the different steps that will occur. You’ll need to sign two transactions on the Ethereum Mainnet. The first being the approval for your token to be traded on the Matic’s bridge and the second one being the deposit.
|
||||
|
||||
![Transferring process](<../.gitbook/assets/wallet/transferring-process (1).png>)
|
||||
![Transferring process](../.gitbook/assets/wallet/transferring.png)
|
||||
|
||||
#### Withdraw Tokens
|
||||
|
||||
|
@ -105,7 +105,7 @@ Now, the asset can be uploaded by selecting the bucket name and choosing `Upload
|
||||
|
||||
Get the files and add them to the bucket.
|
||||
|
||||
The file is an example used in multiple Ocean repositories, and it can be found [here](https://raw.githubusercontent.com/oceanprotocol/c2d-examples/main/branin\_and\_gpr/branin.arff).
|
||||
The file is an example used in multiple Ocean repositories, and it can be found [here](https://raw.githubusercontent.com/oceanprotocol/c2d-examples/main/branin_and_gpr/branin.arff).
|
||||
|
||||
![Upload asset on S3 bucket - 3](../../.gitbook/assets/hosting/aws-7.png)
|
||||
|
||||
@ -182,44 +182,44 @@ Create an account on [Azure](https://azure.microsoft.com/en-us/). Users might al
|
||||
|
||||
Go to the Azure portal: https://portal.azure.com/#home and select `Storage accounts` as shown below.
|
||||
|
||||
![Create a storage account - 1](<../../.gitbook/assets/hosting/azure-1 (1).png>)
|
||||
![Create a storage account - 1](../../.gitbook/assets/hosting/azure1.png)
|
||||
|
||||
**Create a new storage account**
|
||||
|
||||
![Create a storage account - 2](../../.gitbook/assets/hosting/azure-2.png)
|
||||
![Create a storage account - 2](../../.gitbook/assets/hosting/azure2.png)
|
||||
|
||||
**Fill in the details**
|
||||
|
||||
![Add details](../../.gitbook/assets/hosting/azure-3.png)
|
||||
![Add details](../../.gitbook/assets/hosting/azure3.png)
|
||||
|
||||
**Storage account created**
|
||||
|
||||
![Storage account created](../../.gitbook/assets/hosting/azure-4.png)
|
||||
![Storage account created](../../.gitbook/assets/hosting/azure4.png)
|
||||
|
||||
**Step 2 - Create a blob container**
|
||||
|
||||
![Create a blob container](../../.gitbook/assets/hosting/azure-5.png)
|
||||
![Create a blob container](../../.gitbook/assets/hosting/azure5.png)
|
||||
|
||||
**Step 3 - Upload a file**
|
||||
|
||||
![Upload a file](<../../.gitbook/assets/hosting/azure-6 (1).png>)
|
||||
![Upload a file](../../.gitbook/assets/hosting/azure6.png)
|
||||
|
||||
**Step 4 - Share the file**
|
||||
|
||||
**Select the file to be published and click Generate SAS**
|
||||
|
||||
![Click generate SAS](../../.gitbook/assets/hosting/azure-7.png)
|
||||
![Click generate SAS](../../.gitbook/assets/hosting/azure7.png)
|
||||
|
||||
**Configure the SAS details and click `Generate SAS token and URL`**
|
||||
|
||||
![Generate link to file](../../.gitbook/assets/hosting/azure-8.png)
|
||||
![Generate link to file](../../.gitbook/assets/hosting/azure8.png)
|
||||
|
||||
**Copy the generated link**
|
||||
|
||||
![Copy the link](<../../.gitbook/assets/hosting/azure-9 (1).png>)
|
||||
![Copy the link](../../.gitbook/assets/hosting/azure9.png)
|
||||
|
||||
**Step 5 - Publish the asset using the generated link**
|
||||
|
||||
Now, copy and paste the link into the Publish page in the Ocean Marketplace.
|
||||
|
||||
![Publish the file as an asset](../../.gitbook/assets/hosting/azure-10.png)
|
||||
![Publish the file as an asset](../../.gitbook/assets/hosting/azure10.png)
|
||||
|