decentraland / proposals

Review of community proposals for Decentraland's art and applications
46 stars 16 forks source link

Digital Art / NFT Proposal #153

Open rushughes opened 6 years ago

rushughes commented 6 years ago

Abstract There is a growing community of provably unique digital art creators and collectors, where art and ownership is represented on the Ethereum blockchain using smart contracts and Non-Fungible Tokens (NFTs), typically following the ERC-721 standard.

A single smart contract following the ERC-721 standard is deployed to the Ethereum blockchain, with a unique address, this smart contract represents a ‘collection’ of digital art, e.g. crypto kitties, crypto punks.

The smart contract can then be probed with the unique ID of a piece of digital art, e.g 1, 124 or an Ethereum address, in order to retrieve meta data about the art, e.g. owner or an IPFS address of the hosted art, or it can be probed with an Ethereum address to list all the art that Ethereum address owns.

There is a large crossover between people that own Decentraland Land parcels and people that own digital art.

Problem Decentraland users might want to show off their digital art in the decentraland world as a statement of ownership. Anyone can put a picture on the wall to decorate their parcel but that does not make a statement of ownership of an NFT.

This document proposes a way to create a chain of trust from land parcel to NFT so that if a user visits a decentraland art gallery with a supporting client they can guarantee that they are seeing an NFT owed by the land owner, rather than any old NFT or just a static image.

Solution We define an NFT using an a-box or other a-minus entity

<a-box class=”nft” contract=”0x23428934289347348” nftId=”10” depth="0" height="8" width="16" color='#00aaff' position='10 5 -16' scale='1 1 1' rotation='0 90 0'">

This a-box definition defines the a-box as class NFT for scripting purposes, defines a contract address that the NFT lives in and defines the NFT ID.

This way the client can make a call to the contract defining the NFTs, requesting the metadata and address for NFT with ID 10.

Now the client can display the NFT, in most use cases the NFT is a simple image which can be rendered on the a-box like a poster or painting.

The client also has the owning Ethereum address of the NFT.

The client can then validate ownership of the NFT with respect to the owning address of the parcel or portal that the a-box NFT exists in.

The NFT can be represented in such a way that it is obvious to the user it can be investigated and upon investigation a pop-up or other display can appear confirming ownership of the NFT or that it has been stolen.

Metadata relating to the NFT can be retrieved with a call to tokenURI() and presented giving the viewer details about the NFT including title, description and purchase price upon interaction.

TronQuix0te commented 6 years ago

I would like to link this to my proposal, I think this could be great. #136