I am currently facing this issue that doesnt let me close my program (I don't really want to loose all the rent right now) https://forums.solana.com/t/help-me-my-wallet-was-locked-unable-to-pay-a-transaction-fee/7802

TLDR: My wallet is owned by the BPF upgradable loader and I can't do any transactions with it so it's kind of like a loophole because I can't change the owner if I can't pay the transaction fees.

here the steps in detail:

  1. Program deployment failed
  2. closed buffer account to reclaim funds
  3. cannot create new buffer/update program authority because authority wallet's assigned program id is BPF upgradeable loader and therefore can not be used to pay for transaction fees.

Question: Is there a way to specify the fee payer to change the program authority?

1 Answer 1


Every command with the solana CLI allows you to specify the fee payer, typically through the --keypair parameter. So for example, to close a buffer, you can do:

solana --keypair <FEE_PAYER_KEYPAIR> program close <BUFFER_ID> --authority <CURRENT_UPGRADE_AUTHORITY_KEYPAIR>
  • The command we needed didn't have a fee payer argument built in so we wrote our own Script in rust using the code from the solana CLI with the addition of specifying a keypair
    – Yusuf-Uluc
    Commented Oct 11, 2022 at 13:12
  • 2
    That's a fine addition too -- feel free to create a PR with that change!
    – Jon C
    Commented Oct 11, 2022 at 13:13

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.