-
Notifications
You must be signed in to change notification settings - Fork 363
How to generate offline signature? (cold storage, bank vault, hardware wallet, machine never connected to the internet) #1461
Comments
I'm also interested in that. Is it possible to use Gnosis Safe completely offline? |
It's currently not possible to use the Safe web/react interface completely offline due to the dependency on our backend. I agree that it would be nice to have some kind of offline signer functionality. However closing this for now since it's not on our react roadmap for now |
I managed to get it working and this is how I'm currently doing it. First you need to generate the safe transaction so you can get the hash of it, this step requires a connection
And on the offline machine you can sign that hash in several ways, for example using a raw private key:
The returned data from the sign function needs to be transferred back to the online machine so that it can be included in the tx as the owner signatures (repeat this for all the N required signatures)
And once all the signatures are added the tx can be executed (on the online machine)
|
How to sign with trezor and ledger :)
|
I made a little python script for this: https://github.com/bingen/gnosis-offline-signer I use Gnosis Safe UI to get the safe tx hash, and then I use the API, POST method Then again using Gnosis Safe UI I just execute the transaction. |
@bingen How do you get the safe tx hash without being an owner? |
@717a56e1 I get the safe tx from the online device, connected as one of the owners, then move it to the offline device using a QR code (you could use an USB stick, or even manually copy it, whatever feels safe for you), and then sign it there with another owner private key. |
Pretty sure doable.
Pretty sure someone has done it.
Pretty sure someone wants / needs it.
It may make sense to a hardware wallet in the bank vault to never touch machine connected to the internet...
Are there any simplified instructions available?
Surely need to take care of the nonce and some other complexities on top of that...
The text was updated successfully, but these errors were encountered: