I'm currently learning Solana development with rust. I followed the hello-world tutorial and was wondering what are the differences between running solana deploy and solana program deploy.

I tested both using Solana Devnet cluster.

My intuition tells me solana deploy is creating a simple Solana Account, while the other is creating a Program Account. Can anyone tell the difference between them?

1 Answer 1


They both function to deploy programmes, but the solana program deploy method is often advised.

solana deploy is the older form and uses BPF Loader 2 to deploy the program. This deployment method makes programs permanently unchangeable. This loader is utilised by the SPL Token program:

solana program deploy(most recent version), deploys the program using an Upgradeable BPF Loader. If an upgrade authority is set, programs employing this loader have the option of being upgraded. As with the previous Solana deploy, they may also be deployed with the —final parameter and made immutable otherwise. This loader is employed by the SPL Stake Pool program: https://explorer.solana.com/address/SPoo1Ku8WFXoNDMHPsrGSTSG1Y47rzgn41SLUNakuHy

  • Solana runs BPF? That's hilarious, because BPF has a reputation for getting used in places where it probably shouldn't. And now it runs money. Commented Sep 22, 2022 at 19:28

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.