I’m new to development on Solana, and I’m attempting to create a number of NFTs that don’t have associated art and simply store metadata on-chain.

These NFTs will represent real assets. I’ve looked through the Metaplex standard and toolset and it seems that it requires an image and external URI to store the attributes off-chain on IPFS/Arweave or S3, and the toolset comes with a lot of features that I do not require and added complexity regarding launches from candy machine and the fair launch methodology.

I'm wanting to store a small amount of extra data on-chain in the metadata account, and have no use for off-chain data, so the advice I was given was to fork the Metaplex Metadata Token Account to allow this.

Does anyone know of any current methods to do this, like different NFT standards? Or can anyone point me in the right direction of how to create a custom metadata account I can create as a PDA that can store these attributes?

Would love some insight if anyone has done anything similar, or if they can point me in the right direction to get started - I think this would be a fantastic real-world use case for NFTs on Solana that aren't just images that are sold for a profit.

1 Answer 1


The projects follow Metadata standard because they want it possible for the wallets and marketplace to identify and integrate their assets. There isn't any other pan-Solana NFT standard. So if I want my collection to be visible on, let's say Phantom wallet or get listed on MagicEden then I have to follow the generally accepted standard.

But since you aren't making a usual NFT, there is no need to follow any standard. When you try to create an NFT on Metaplex, it first creates a SPL token with supply = 1 and decimal = 0. Then it creates two more accounts whose addresses are derived from the token and store details about the NFT. If you don't know what SPL token is, it is something similar to ERC-20 on Ethereum, in short a token standard on Solana.

For your NFT, you can also create a SPL token first with supply = 1 and decimal = 0 so the wallets can identify your asset. Then create another account preferably derived from the mint address of your SPL token using PDAs. Finally, save your custom metadata in the second account and use it in any way you need.

If you aren't familiar with PDAs, I would recommend you to look into it.

  • 1
    Thank you, this validates my assumptions so far. I am indeed trying to create a PDA functionally equivalent to the Metaplex Token Metadata Account, but with different fields that I can attach to these tokens. Do you have any preferred resources you can point to where I can hit the ground running to learn how to create this type of PDA?
    – michaelb
    Sep 5, 2022 at 2:07
  • 1
    Use this guide from Anchor doc: anchor-lang.com/docs/pdas. Probably the best explanation on PDA. It will explain you how to initialize PDA account. Use the concept in conjunction with spl-token library.
    – 0xShuk
    Sep 5, 2022 at 7:35
  • @michaelb are you still working on the custom program and PDA for different metadata fields? Would love to talk further if you are - (I'm 'mikemaccana' on Twitter.
    – mikemaccana
    Mar 12, 2023 at 20:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.