7

I'm trying to transfer NFT using the following code which

const transferInstruction = createTransferInstruction(
        sourceAta,
        recAta,
        walletAccount.publicKey,
        1,
        []
      );

      transaction.add(transferInstruction);

      console.log("here")

      // const signature = await connection.sendTransaction(transaction, );
      const signature = await sendAndConfirmTransaction(connection, transaction, [walletAccount]);

      console.log('Transaction sent:', signature);

After running the script, I keep getting the following error SendTransactionError: failed to send transaction: Transaction simulation failed: Error processing Instruction 0: custom program error: 0x11 and

    'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [1]',
    'Program log: Instruction: Transfer',
    'Program log: Error: Account is frozen',
    'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4293 of 200000 compute units',
    'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA failed: custom program error: 0x11'

I tried sending the NFT manually using phantom interface to confirm if the account is frozen but the token sent successfully . Any help on how i can solve this will be highly appreciated. Thanks

2
  • 1
    Could you share the link for NFT transfer tx that you executed via Phantom wallet? Commented Jul 10, 2023 at 5:20
  • A hypothesis could be that the account is frozen but you're the freeze authority, and Phantom recognises that case and performs an unfreeze/transfer/freeze for you. Total guess though without seeing the transaction/token account.
    – Callum M
    Commented Feb 19 at 15:06

2 Answers 2

5

You are getting 0x11 because the token account you are trying to transfer from is in a Frozen state - Unfreeze/adjust the account state & it should allow you to transfer the NFT

1
  • But the OP has mentioned that he could transfer token using Phantom, I have the similar issue. Commented Feb 19 at 14:33
2
+25

I'm going to make an educated guess and say that you probably want to transfer a pNFT.

To do so you'll have to call an instruction on the Token Metadata Program (not the Token Program). Phantom (and other wallets) support that.

You can do that in code by building an instruction using transferV1 from @metaplex-foundation/mpl-token-metadata

Hope that helps.

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.