The boilerplate guides around ERC115 implementation have been fantastic. To implement the type of NFT I want, I need to add in a few short additional strings that should stay on-chain (over simply being accessible via uri).
I’m wondering if adding those fields via contract extension or using the _data fieId is better. In my case, I could see either working, but it seems embedding in the data field might be better given the contract’s compatibility with third-parties would be better.
As a specific use case, I would like to include an encrypted secret signed with the receivers public key (so that only receiver would be able to decrypt secret. I’m always intimidated by using open-data fields with no format because I’m left wondering if there is a more optimal approach. While there’s no required format, is there a recommended one?
Bonus question follow-up: is there any easy possibility of baking the above “encrypting secret with receivers public key” into an on-chain contract function? I guess the vulnerability with that would be if transaction gets reverted after secret is exposed?
Thanks in advance.