I can't send NFTs that have state - frozen. I get an error that the account is frozen or a signature error.

How do I do it? I read that I should try to send them through Metaplex somehow. But I have no idea how to do it in my JavaScript code to unfreeze the token account first and then add it to a transaction to transfer it to another wallet.

1 Answer 1


Correct, frozen NFTs can not be transferred. They have to be thawed first.

The freeze authority can do that.

In cases of programmable NFTs (pNFT) this has to be done by the Metaplex Token Metadata Program. This will be done automatically when using the metaplex token metadata transfer function.

import { transferV1 } from '@metaplex-foundation/mpl-token-metadata'

await transferV1(umi, {
  authority: currentOwner,
  tokenOwner: currentOwner.publicKey,
  destinationOwner: newOwner.publicKey,
  tokenStandard: TokenStandard.ProgrammableNonFungible,


  • Oh, thanks. But I only have PublicKey freeze authority. It's ok? Or I need secretkey for sign? You show some example but idk how to use this in my JS code (project). I first get the token owner accounts and transfer them via createTransferInstruction, then sign using my wallet. So how do I do it here? If it's sending through some umi here, I don't know what it is. Is it possible to get some more detailed example from you? And how to define umi? Thanks Commented Feb 8 at 15:03
  • You can find more on how to use umi here developers.metaplex.com/umi/getting-started no need to get token owner accounts, work with createTransferInstruction, sign with your wallet manually. This transfer command basically does everything for you. Commented Feb 21 at 0:03

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.