I am creating an NFT that stores a small amount of data - less than 1KB - inside it. The data should be on-chain - not in an external JSON file - as the owner should be able to destroy the NFT easily using their wallet without external traces left over.
How can I write more data into the on-chain NFT?
I was hoping to use Metaplex (both the Metaplex JS SDK and the on-chain program) to write the data into an NFT. I overloaded the uri
field (as it's a string) with the data to see if I could write the NFT there.
The program [TokenMetadataProgram] at address
[metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s] raised an error of code
[13] that translates to "URI too long".
Some hunting through the metaplex on-chain program code shows pub const MAX_URI_LENGTH: usize = 200;
which seems to indicate the maximum length of the URI field is 200 bytes.
What's the best way to make NFTs with more data inside?
Edit: I've also checked out Need assistance creating a custom type of NFT which may indicate there only way to do this is use SPL to mint the token, and make a PDA for the additional metadata that accepts the larger data.