A new interface that should implement on-chain NFTs projects, mimicking the current JSON scheme of the
IERC721Metadata, but returning the data as a struct.
The ERC721Metadata standard defines a
tokenURI(uint256) returns (string memory) that returns a URI containing the metadata for the token.
Most of the projects use centralized (e.g. own servers, AWS) or decentralized (e.g. IPFS) to store this data and consequently returns only a string, e.g.
On-chain projects though have to build on-chain a data uri that is compliant with this interface.
- it is painful and cost gas to inline all the data and manually jsonify a token
- it creates a barrier for composability as it is difficult to parse a
- eventually it is a useless op that destructs data without any good reasons: some may think that it’s better to keep standard JSON for data interfacing but it’s not actually the case as a
eth_callis not a REST API: even these data uri need to be decoded by eth clients.
- on the opposite, using such a tokenData would let front end users access directly a typed API. In other words, it’s less work for the on-chain solidity dev and more info for the end user.
- using the ERC165, there will be no more discussions about “is it on chain or not” ?
- overall this would incentivize creators to build on-chain to build on top of each others.