Search code examples
smartcontractssolana

Any way to deploy a solana program with an offline/cold authority?


The CLI command (solana program deploy) doesn't seem to permit offline signing.

Is there any other way to deploy a solana program without putting the contract authority on an internet-connected computer?


Solution

  • It's almost possible. You'll need to follow the instructions for deploying to a buffer before performing the upgrade in one transaction.

    Essentially, you have a hot key write the program buffer with solana program write-buffer, and then the upgrade authority only authorizes the upgrade transaction with solana program deploy --program-id <> --buffer <>.

    It wouldn't be a lot of work to add the sign_only flag to the deploy command to have the last bit done offline. Feel free to submit an issue for that! https://github.com/solana-labs/solana/issues

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