diff --git a/content/concepts/images/v4-nft-1.png b/content/concepts/images/v4-nft-1.png new file mode 100644 index 00000000..a45eb96c Binary files /dev/null and b/content/concepts/images/v4-nft-1.png differ diff --git a/content/concepts/v4-nft.md b/content/concepts/v4-nft.md new file mode 100644 index 00000000..1899e731 --- /dev/null +++ b/content/concepts/v4-nft.md @@ -0,0 +1,23 @@ +### What is NFT? + +A non-fungible token stored on the blockchain represents a unique asset. NFTs can represent images, videos, digital art, or any piece of information. NFTs can be traded and allow transfer of ownership and copyright. + +### How are NFTs handled in the Blockchain world? + +[EIP-721](https://eips.ethereum.org/EIPS/eip-721) defines an interface for handling NFTs on Ethereum blockchain. The creator of the NFT can deploy a new contract on Ethereum or any Blockchain supporting NFT related interface and also, transfer the ownership through the transaction(s). + +### How will Ocean Protocol support the NFT market? + +Ocean Protocol defines an [ERC721Factory](https://github.com/oceanprotocol/contracts/blob/v4Hardhat/contracts/ERC721Factory.sol) contract which will allow users to deploy ERC721 contract instances on any of the supported networks. The deployed contract can be associated with Metadata information which describes, also published on-chain. The [Metadata](https://github.com/oceanprotocol/contracts/blob/v4Hardhat/contracts/metadata/Metadata.sol) contract will store the information about the asset, and associated access rights defined through roles. + +![Image 1](images/v4-nft-1.png) + +Once the contract is deployed, it will be available on the Ocean Marketplace for trade. + +### Other References + +- https://en.wikipedia.org/wiki/Non-fungible_token +- https://blog.oceanprotocol.com/nfts-ip-3-combining-erc721-erc20-b69ea659115e +- https://blog.oceanprotocol.com/nfts-ip-2-leveraging-erc20-fungibility-bcee162290e3 +- https://blog.oceanprotocol.com/nfts-ip-1-practical-connections-of-erc721-with-intellectual-property-dc216aaf005d +- https://blog.oceanprotocol.com/on-difficult-to-explain-fungibility-sightings-in-nfts-26bc18620f70 diff --git a/content/concepts/v4-roles.md b/content/concepts/v4-roles.md new file mode 100644 index 00000000..ee73a683 --- /dev/null +++ b/content/concepts/v4-roles.md @@ -0,0 +1,20 @@ +### Roles + +[ERC721Template](https://github.com/oceanprotocol/contracts/blob/v4Hardhat/contracts/templates/ERC721Template.sol) contract defines following roles: + +- NFT Owner +- Manager + +#### NFT Owner + +- NFT Owner is the publisher. I.e. Owner is a public address which transacted with `ERC721Factory` contract and deployed a new `ERC721` contract. + +- NFT Owner can assign managers while deploying the contract. +- NFT Owner is also added to the Managers. +- NFT Owner can add/remove Managers. +- Clean all permissions + +#### Manager + +- A public address with a `Magner` role can update the metadata +- Can deploy new ERC20 contract which is associtated with the `ERC721` contract. diff --git a/data/sidebars/concepts.yml b/data/sidebars/concepts.yml index cf018ee1..22ea155a 100644 --- a/data/sidebars/concepts.yml +++ b/data/sidebars/concepts.yml @@ -25,6 +25,13 @@ - title: Asset DDO link: /concepts/oeps-asset-ddo/ +- group: NFTs + items: + - title: Introduction + link: /concepts/v4-nft/ + - title: Roles + link: /concepts/v4-roles/ + - group: Contribute items: - title: Ways to Contribute