I am deploying with usb://ledger using anchor deploy

It shows a different output than when using a json wallet.

Deploying workspace: https://api.mainnet-beta.solana.com
Upgrade authority: usb://ledger
Deploying program "lpfi-buyback-program"...
Program path: /Users/aperire0402/lpfi-buyback-program/target/deploy/lpfi_buyback_program.so...
Waiting for your approval on Ledger hardware wallet usb://ledger/7KDQhb9KX8y9rkrtyAw4arkRVctGhaRhaUMCadfg4bEk
✅ Approved
⠙ Setting up...
⠂ Setting up...
✅ Approved
⠋ Setting up...

The program is small, but I am clicking my ledger button over 100 times. Here is the tx when I started the command. https://solscan.io/tx/3yV4nhv1FUwUyzkLB8c3xo611P2MFcBmhoEJkMsyZ5pXoEbKQouXmscHZBF9dWSaDU8gtvuHzT7LJzEgu4HV9A9x

2 Answers 2


You can deploy a program using regular key and then change program upgrade authority with solana program set-upgrade-authority


If you want to deploy a program controlled by a Ledger, your best option is to do the deployment normally, then change the upgrade authority to the ledger, as recommended by the ASkibin's answer.

Whenever you want to upgrade, however, you'll need to use an intermediary buffer account, doing the following:

solana program write-buffer <PROGRAM_SO_FILEPATH>
> get BUFFER_ADDRESS from this command

solana program set-buffer-authority <BUFFER_ADDRESS> --new-buffer-authority <LEDGER_PUBKEY>
solana program deploy --program-id <PROGRAM_ADDRESS> --buffer <BUFFER_ADDRESS> --upgrade-authority <LEDGER_PUBKEY>

You can find more information at https://docs.solana.com/cli/deploy-a-program#using-an-intermediary-buffer-account

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.