I am trying to figure out how to setup a genuine cold wallet for Solana - key not available for block hash transactions as singing a transaction takes a long time compared to the lifetime of the block hash. From what I understand, durable nonce accounts are the way to go.

So first I thought to create an account with a seed with the cold key as base, but this requires that the create account with seed and the initialize nonce transaction is signed with a block hash as far as I can tell, which needs to be online.

My second thought was to create some derived account (so the nonce account can always be derived from the cold account) from the cold key, and then use that for nonce account, but the create nonce account requires a signature by the created account key, so again this requires the (derived) cold key to be online.

My third thought is that I can use some kind of online account to create a nonce account with some random key that is discarded immediately and set the cold wallet as Authority on this nonce account. As far as I can tell this will work, but I get a random nonce account address that I need to keep track of for my cold wallet account and I need an extra online account to set everything up and pay for the setup.

It the third option the only way to do it, or am I missing something?

1 Answer 1


The third option is probably your best bet.

If you don't like the third option, you could also use a nonce account on a random keypair to sign the creation of a second nonce account based on your cold keypair.

I don't see any limitation in the runtime to stop that, but it's also not supported in the CLI, which makes me think it might not be possible.

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.