eth-offline-tx is a simple offline transaction signing tool for Ethereum using only web3.js and no other dependencies.
- (Optional) If you do not want to run your own ETH node, get an RPC URL from INFURA.
- Open prepare-tx.html in one internet-accessible computer.
- Fill in the relevant details, "data" can be left blank.
- "Network parameters" session can be auto-filled by pressing "Recommend".
- Click "Prepare", a long string will be copied to your clipboard, you can also copy it manually.
- Transfer that string to an airgapped computer.
- On the airgapped wallet, run
./sign-tx <transaction string>
. Note:sign-tx
andsign-tx.js
must be in the same directory as thegeth
executable ifgeth
is not inPATH
. - Verify the transaction details and enter the passphrase to sign it.
- Transfer the signed transaction string back to the online computer and paste it into "Signed transaction".
- Click "Send".
Because the official geth
client does not support offline transaction and all existing solutions are bloated.
eth-offline-tx
does not have any external dependency except for the official web3.js.
On the cold wallet side, I'm running geth
in an extremely limited computer with no software except for common unix tools so browser is not an option.
You should not.
Read and verify the code for yourself. It is less than 100 lines and does not use any external code except for the official library. Download your own copy of web3.js and replace the bundled one if you need to.
To prevent the shell from doing stupid things with characters like {
and "
.