I am new to ethereum and curious about interacting with dApps while keeping a private key in cold storage.

I like the idea of keeping the private key for an Ethereum wallet on an air-gapped computer. I have done this with bitcoin using a program called electrum. Electrum enables a workflow where you 1) generate transactions on an online computer, 2) transfer them to an air-gapped computer for signing, and 3) transfer the signed transaction back to an online computer for broadcasting. I know that there are similiar programs that can achieve this for Ethereum, such as MyCrypto.

Most of the Ethereum dApps I have come across (Compound, Uniswap, MakerDAO vaults) offer several options to connect to a wallet. The options are usually browser based wallet extensions (like metamask) mobile apps (like coinbase wallet) or hardware wallets (like trezor or ledger.)

Are there any solutions that enable using dApps with arbitrary cold wallets? For instance, some kind of browser extension that will generate the transactions to sign, and allow you to process them manually? That is, I envision that after being presented with the transction, the user would transfer them manually to an air gapped computer, sign the transaction, and then transfer back to this extension/app for broadcasting onto the Ethereum network.

If this is nonsensical then please don't hesitate to let me know :)

2 Answers 2


A common solution is to have two separate wallets, one "hot" wallet, and a "cold" wallet. You keep the majority of your funds on the cold wallet, and keep the private key fully offline/airgapped. If you want to interact with a dApp, you move some of your funds to the hot wallet (e.g. MetaMask or a mobile app). Once you are done, you can move the funds back to your cold wallet.

If you're looking for a more user-friendly solution, the best option is to get a hardware wallet like a Ledger or Trezor. These devices store the private key fully isolated, so it's not possible to extract the private key from the device. To sign a transaction, you need to give explicit approval (usually by pressing a button).

Some mobile apps (like Parity Signer and WallETH) can do something similar, by storing the private key on an airgapped mobile device, and signing transactions using QR codes. Unfortunately, support for those apps is very limited at the moment.


This is a good question I'm also looking an answer for for a while. I have an Ethereum account generated long time ago where quite a lot of assets have accumulated over time. This account was created as a keystore file back then. I can derive the private key of it, but not a mnemonic passphrase. Moving over all assets to another account would be prohibitively expensive. Ideally I'd want to import that private key into a HW wallet which I can then use with Metamask, but unfortunately no such wallet seems to exist. Another option would be - as described - a software wallet (e.g. MyCrypto) installed on a single-purpose, airgapped device (essentially a homemade HW wallet) which can sign the txs it gets from Metamask. It doesn't need to be Metamask specifically, but needs to be a wallet which works with arbitrary Dapps. I want to do more than simple ETH and ERC20 transfers without too much of a hassle.

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.