I been thinking of a NFT project where it would only make sense if there was a way to limit a wallet address capable to have only one of the NFTs. Must burn or send away to have another. Is this possible?

  • With current design of Token Acccount creation, I dont think this is possible. Only way to archive this would be to writing up your own Token Account like impl with mentioned enforcement but this will not be supported anywhere beside your app.
    – BFault
    Aug 17, 2023 at 5:41
  • Keep in mind that this is easy to circumvent since someone can create as many wallets as they want to hold more NFTs.
    – Jon C
    Aug 18, 2023 at 19:02

1 Answer 1


You should be able to do this using programmable NFTs, which allows you to impose restrictions on operations on NFTs, however it doesn't seem trivial to do what you want.

One way you could do it is to create pNFTs that are governed by a rule where transfers can only be done by a delegated program that is written by you, let's call it NFT Guard.

So if someone wants to transfer a NFT, they have to invoke NFT Guard which checks if the destination account has any NFTs from your collection and only if they don't they then proceed to make the transfer.

This is just one suggestion, there might be better approaches.

Resources: documentation on Programmable NFTs and the program that allows creation of rules on NFT operations.

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.