So far, I have identified two ways to make uncompressed NFTs non-transferable or soulbound, are there any other ways? And what about compressed NFTs?

  1. For uncompressed NFTS with TOKEN_PROGRAM_ID: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA -> We can change the field "owner" in the token account with the instruction "createSetAuthorityInstruction()". Wallets mainly scan token accounts by the owner and amount field, thus the NFT appears at the new owner. However, they can not transfer the mint account since the associated token accounts is derived by the previous owner.

  2. For uncompressed NFTs with TOKEN_2022_PROGRAM_ID: TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb -> https://spl.solana.com/token-2022

  3. For tokens in general, if Master Edition Account is not the freeze authority: We, as freeze authority of mint account, can freeze any token account that is derived by the mint account with "createFreezeAccountInstruction()" through the Token Program.

  4. What about compressed NFTs?

1 Answer 1


I do not think you can currently freeze or delegate a cNFT to another authority.

Bubble gum docs here https://developers.metaplex.com/

For fine grained control over the NFT, I would suggest using a pNFT, which bring additional feature such as an auth rules account. pNFT guide

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.