------------------------------------------- COMPLETED ------------------------------------------
We completed this experiment on 4/1/2023. If you are interested in learning more send me a note r.pedersen@richcanvas3.com.
NFT architecture is evolving. NFT metadata principles are simple and lack many of the information architecture concepts that are required for it to go mainstream for eCommerce Use Cases.
NFT metadata management is one area that is especially weak. The metadata concepts have evolved and been greatly impacted by the underlying Ethereum technology and performance constraints (on-chain vs. off-chain). The only data integrity found is maintained either within the various contracts , third parties like OpenSea or loosely by schema initiatives like hip412.
As NFT's start to find there way into mainstream eCommerce solutions the industry will have to introduce mechanism to enforce metadata validation, integrity and discoverability/introspection.
This experiment is directed at understanding current NFT platform capabilities and make initial recommendations on standards to follow.
NFT and NFT Collection principles and technology are foundational to future Web 3.0 "Non-Fungible Asset" eCommerce solutions.
NFT and NFT Collection marketplace platforms are still in their infancy.
NFT Search Engine Optimization (SEO) has very limited support.
NFT Metadata best practices/standards are in their early stage
NFT ERC standards are starting to come out with interesting metadata.
ERC-6059 Nested Hierarchy NFT, ERC-6785 Utility NFT,
Understand the complexity of building NFT Collections, NFT's and associated Traits.
Understand what off the shelf tools are available to build out collections
Understand which smart contracts are best to use
Understand which blockchain technologies are best to use (ex. Ethereum, Polygon, Bitcoin)
Understand NFT SEO. How do customers find NFT's.
Understand NFT Metadata standards
Identify vertical industry experts
Perform the experience in 3 weeks with 1 resource
Technical Architecture
NFT Platforms (build and maintain NFT Collections)
Built initial NFT Collection using Coinbase NFT (nft.coinbase).
Coinbase builds out ERC-721 contracts for their NFT's. Muses-of-an-architect is a single ERC-721 contract that contains 10 NFT's.
Built subsequent muses-of-an-architect NFT's using ERC-1155 Contract on opensea. OpenSea generates their NFT's within a parent ERC-1155 contract to minimize cost. We imported our initial Coinbase NFT collection into opensea and then attached additional NFT's to the original NFT Collection.
Built a second NFT collection using niftykit (niftykit.com). Wanted to understand how other platforms create ERC-721 contracts.
NFT Marketplaces
Search and browse techniques in opensea. Opensea dominates NFT marketplace and can build their own proprietary layered metadata to drive search.
Search and browse techniques in non-opensea general search marketplaces. Can they find our new muses-of-an-architect collection? Nifty.com
Search investor marketplaces. Hold top NFT collections that investors would be interested in. SuperRare, Binance NFT,
Vertical Industry NFT marketplaces like NBA Top Shot
Information Architecture (meta-data)
NFT ERC Metadata standards
ERC-721 (NFT), ERC-1155 Properties (name, description, image
IERC721Metadata, ERC1155Metadata_URI
ERC-1046
ERC-6785 Extension Utility NFT
April 1, 2023 called out in https://weekinethereumnews.com
https://ethereum-magicians.org/t/eip-6785-erc-721-utilities-extension/13568
ERC-2477 Token Metadata Integrity
https://eips.ethereum.org/EIPS/eip-2477
https://github.com/ethereum/EIPs/issues/2483
https://github.com/0xcert/framework (implementation of standard)
https://github.com/json-schema-org/json-schema-spec/issues/647#issuecomment-417362877
ERC-4907 Rentable Smart Contract (NFT Rental Services). https://www.renft.io/
https://blog.devgenius.io/erc-4907-the-nft-rental-standard-edb60fe6527b
ERC-5006 Rental NFT, NFT User Extension (Sitting on top of ERC-1155)
https://eips.ethereum.org/EIPS/eip-5006
ERC-5625 Metadata JSON Schema dStorage
Metadata Schema Standards
Token Metadata Schema v2
https://hedera.com/blog/hedera-nft-metadata-hip412
https://github.com/hashgraph/hedera-improvement-proposal/blob/main/HIP/hip-412.md#default-schema-collectibe-hedera-nfts-format-hip412100
Mandates use of IFPS like solution
CID = "ipfs://QmTzWcVfk88JRqjTpVwHzBeULRTNzHY7mnBSG42CpwHmPa"
deFacto Industry Metadata Standards
OpenSea metadata – NFT metadata external reference (tokenURI)
https://github.com/ProjectOpenSea/opensea-creatures/blob/master/metadata-api/app.py demo of working with IFPS metadata
Binance metadata
Zoro protocol
https://github.com/ourzora/media-metadata-schemas
Metadata Integrity Issue
┌───────────────────────┐ ┌────────┐ ┌────────┐
│ TokenID │──--------------------────▶│Metadata│─────▶│ Schema │
└───────────────────────┘ └────────┘ └────────┘
This provides no integrity
┌───────────────────────┐ ┌────────┐ ┌────────┐
│ TokenID │────--------------------──▶│Metadata│═════▶│ Schema │
└───────────────────────┘ └────────┘ └────────┘
┌───────────────────────┐ ▲ ▲
│ tokenURIIntegrity │═══════════════╝ ║
└───────────────────────┘ ║
┌───────────────────────┐ ║
│tokenURISchemaIntegrity│══════════════════════════╝
└───────────────────────┘
https://eips.ethereum.org/EIPS/eip-2477
People to watch
Kristijan Sedlak
xperermint
https://github.com/xpepermint
https://www.linkedin.com/in/ksedlak/
Supporting ERC2477 (schema), ERC4709 (rentable)
0xcert founder up until 2021
GenoBank.io
William Entriken
github.com@phor.net
https://twitter.com/fulldecent
Witek Radomski
witek@enjin.io
https://twitter.com/witekradomski
Enjin Wallet
Digital Wallet has a key metadata component
must have an on chain contract component (ERC4337)
must support composability of accounts (householding)
must support metadata
Specific Tasks
Get all the NFT's within EVM for a particular Owner
C:\ethereum\DemoProjects\web3-project2 implements example of finding ERC721's in EVM blocks
Decompose NFT Interfaces, Abstractions and Contracts and understand piece parts
https://etherscan.io/address/0xc84f803af78402ddd911d9ec4f697ee945052ec5#code
@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol
token/ERC721/ERC721.sol
token/ERC721/IERC721Receiver.sol
ERC721TokenReceiver.sol
token/ERC721/IERC721.sol
token/ERC721/extensions/ERC721Enumerable.sol; allows for all the NFT's to be discoverable in collection
token/ERC721/extensions/IERC721Metadata.sol; name, symbol, tokenUrl
Interface => utils/introspection/IERC165.sol; check if interface is implemented by contract
Interface => IERC2981.sol - NFT Royalty Standard (10% goes to the original creator of NFT)
abstract contact => DefaultOperatorFiltererUpgradeable.sol
abstract contact => OperatorFilterToggle.sol
OperatorFiltererUpgradeable.sol
ERC1155 => multiple collections (multiple types) within single contract
ERC721A => batch minting
Interface => IERC20.sol - fungible token, for buying and selling tokens
Nested NFT Analysis
ERC-6059 (nesting cross collection)
ERC-6150 (nesting within a single collection)
Metadata Analysis
ERC-721 contract (Collection)
Name, Part of ERC721Metadata
Symbol, Part of ERC721Metadata
Other metadata at Collection level
Max number of NFT's to create
Max number of NFT's per wallet
Min NFT Sale Price
Supports Interface (find out what interfaces Contract Supports)
ERC-721 token (NFT)
Token URI, Part of ERC721Metadata
Metadata URI conform to RFC 3986 and follow ERC721 Metadata JSON Schema
ifps://{CID}
ERC-5006 (extension of ERC1155)
Different roles between owner and user. Owner can operate on NFT and user role can not
Introduces User Record (tokenId, ownerAddress, amount, userAddress, expiry)
Metadata relating to sale of NFT
JSON Schema Meta Data
good overview: https://anettrolikova.medium.com/deep-dive-into-nft-metadata-99fe36aeef24
ERC-2477 (not active)
Token Metadata Integrity
https://eips.ethereum.org/EIPS/eip-2477
Discussion thread: https://github.com/ethereum/EIPs/issues/2483
OpenSea Rich Metadata standards
https://docs.opensea.io/docs/metadata-standards
good deep dive blog: https://opensea.io/blog/announcements/decentralizing-nft-metadata-on-opensea/
Alex Atallah co-founder of OpenSea, https://www.linkedin.com/in/alexatallah
api: https://github.com/ProjectOpenSea/metadata-api-nodejs
Discussion around metadata
https://hackmd.io/@Bnkhqf0tSbi1lX2Xc-WXYQ/ByxXJK-JK
json-schema.org managements the metadata for NFT JSON
Not really being used to manage real metadata
Token url: ipfs://{{CID}}
Utility url: ipfs://{{CID}}
Interesting Use-Cases
https://www.thedigitalspeaker.com/nft-luxury-brands-blockchain/
ERC-1523 Standard for Insurance Policies as ERC-721 Non Fungible Tokens (DRAFT). ./eip-1523.md
Rent oriented use casest
Next Steps
NFT721 needs extension to include schemaUrl as part of core contract. This can be used to validate tokenUri and utilityUri type off chain meta data. Maybe add tokenUriSchema and utilityUriSchema.
Need to look at introducing schema definition and validation standards similar to 2477.
https://github.com/onflow/nft-storefront