Offline Transaction Signing issues - No default signer found

Hi all

I’m trying to learn how to sign transactions offline as per the documentation:

Instructions does not seems to work at all on either devnet or testnet.

I want to use Paper Wallet and CLI. Here is what I tried:

solana transfer --sign-only --blockhash 9Nercuhq4wsVoiqMz8wqQ22mmrhox4FeiGya8jxwBbTB --allow-unfunded-recipient --from prompt://?key=0/0 BzNQTrzz8RCTAHHMi1guoGdALEGiZRkUSmYVgjp4uLhT 0.5

I get following error:
Error: Dynamic program error: No default signer found, run “solana-keygen new -o /home/sagara/.config/solana/id.json” to create a new one

Any help is very much appreciated.

Best regards
Sagara

Hi @sagara and welcome to the forum! :wave:

Try to add an extra -k prompt://?key=0/0 to the beginning of the command, like this:

solana transfer -k prompt://?key=0/0 --sign-only --blockhash 9Nercuhq4wsVoiqMz8wqQ22mmrhox4FeiGya8jxwBbTB --allow-unfunded-recipient --from prompt://?key=0/0 BzNQTrzz8RCTAHHMi1guoGdALEGiZRkUSmYVgjp4uLhT 0.5

Note that it will probably prompt you for your seed phrase twice.

I think it’s complaining that you haven’t set a default key to use for transactions, so we have to manually tell it with the -k prompt://?key=0/0 to prompt us for the default key.

Thanks @zicklag

Yes, signing worked. It asked twice the seed phrase and passphrase.

Next I tried to submit the signed transaction to the network, it does not work:

$ /usr/local/solana-release/bin/solana transfer BzNQTrzz8RCTAHHMi1guoGdALEGiZRkUSmYVgjp4uLhT 0.5 --blockhash EH3z6FKJtgk5GUBuaB1eHb8QAPvSAPJ9vYhBnpzPkdp3 --signer CyhBXKrfB39CvPh1dHwfQuY8L2qnMNAViHRWHYPZxDoY=4YwFBdLvzUH3BwcHSgiQVSyT9UMVbUzau7QVnkq1qwd5r6Pz5PGJgcN1ygQyqS8Y6f1xo4UBb5WFGZ2uoi3EDBQv
Error: Dynamic program error: No default signer found, run "solana-keygen new -o /home/sagara/.config/solana/id.json" to create a new one

Thanks.

Adding “-k signerWalletAddress” seems to work, but cannot get it to transfer, it complains “blockhash expired”.

I’ll try “Durable Transaction Nonces”.

Thanks.

Yeah, the durable transaction nonces are required to submit transactions signed offline that are older than about 2 minutes, I think.