I would also like to propose a way to reduce data on chain using extended 721
NFT 0
{
"721": {
"<POLICY_ID>": {
"<NFT_NAME_B16>": {
"name":"nft0"
"traits":{"apple":"2", "pear":"1" } // random data
"references": {
"ext": ["0"]
}
},
"payload": { // this data is only stored in one tx
"0" : {
"project": "<PROJECT>", // data that will be duplicated for each nft
"website": "<WEBSITE>",
"adahandle": "<handle>",
"discord": "discord",
"telegram": "<WEBSITE>",
}
},
"version": "2.0"
}
}
}
NFT N
NFT 0
{
"721": {
"<POLICY_ID>": {
"<NFT_NAME_B16>": {
"name":"nft0"
"traits":{"apple":"2", "pear":"1" } // random data
"references": {
"ext": ["0"] // references instead of duplicating data saving space on chain
}
},
"version": "2.0"
}
}
}
This implementation would save space on chain with nfts that duplicate a lot of data. Once such example is ada handle which contains duplicate data in every minted nft. If the reference tag is short enough for example “ext”:[0] instead of “references”:{“ext”:[0]} you could start to have a massive impact on reducing data on chain.
A rough saving calc could be determined as such:
100bytes for this data in each nft using standard 721
core:{"og":0,"termsofuse":"https://adahandle.com/tou","handleEncoding":"utf-",prefix:"$",version:0}
9 bytes if we use
"ext":[0]
saving 91 bytes per nft (probably around ~80 if we use the… refences:ext:0 option)
currently there are 108849 ada handles meaning this new CIP could have saved
9.905259 megabytes of data duplicate from being stored on chain.