MARKETS / Money 3 min read

Geth Ethereum: How to Change Account Password and Send ETH via Console

Antonio NEMCD Author
Published Jul 23, 2016 · 3 min

Back in 2016, early desktop Ethereum GUIs like Mist and Ethereum Wallet frequently struggled with stuck transfers: you would hit Send, watch the transaction appear as unconfirmed, fail to find its hash on any block explorer, and see it silently vanish from your history a couple of hours later.

Stuck ETH transaction in Ethereum Wallet 0.8.1A typical Ethereum Wallet 0.8.1 hiccup: balance shows up, but transfers fail to broadcast

Your coins were completely safe, of course – the graphical wrapper simply could not push the transaction onto the network. In those days, dropping down to the geth command-line console let you both change your keystore password and broadcast an ETH transfer directly.

Important Update: What Changed in Modern Geth Releases

The interactive console examples further below apply to classic 2016-era geth builds. Starting with Geth v1.13+, the entire personal RPC/console namespace (including personal.unlockAccount) was removed for security reasons.

If you need to manage or spend from an old JSON keystore file today, there are two far simpler options:

  • For one-off transfers: import your JSON keystore file and old password directly into MetaMask or Rabby – no full-node sync required.
  • For automated node setups: use the external Clef signer tool, which replaced Geth’s built-in personal module.

Opening geth and Changing Your Account Password

To work with a legacy local keystore via CLI, first locate the folder containing geth.exe (bundled Ethereum Wallet installs often kept it at a path like d:\Data-local\Ethereum\resources\node\geth) and open Windows Command Prompt (cmd).

Navigating to the geth.exe directory in Windows Command PromptSwitching to the geth.exe directory – use cd /D when changing drive letters

To update the password protecting your keystore file, start by listing local accounts:

geth account list

Geth returns lines such as Account #0: {48a83b45d6928e7774ba6f2398456bef924d9b51}. Copy the hex address inside the braces and pass it to the update command:

geth account update 48a83b45d6928e7774ba6f2398456bef924d9b51

Changing an Ethereum keystore password with geth account updateTyped characters stay hidden during password prompts in cmd – this is normal security behavior

You will be prompted for your current password once, then your new password twice. Don’t get tripped up if nothing appears on screen while typing – not even asterisks show up in cmd, even though keystrokes are being read.

Legacy Method: Sending ETH in Pre-v1.13 geth console

On older Geth versions, the interactive JavaScript console launched like this:

geth console

To inspect the balance of your primary coinbase account:

web3.fromWei(eth.getBalance(eth.coinbase))

Before sending a transfer, the account had to be unlocked (skip passing the password inline so it never ends up in command history):

personal.unlockAccount(eth.coinbase)

Once you entered the password, the console printed true. An optional unlock timeout in seconds could also be specified (for example, personal.unlockAccount(eth.coinbase, "password", 300)). Sending ETH looked like this:

eth.sendTransaction({from:eth.coinbase, to:'0x878a05b899407af6890f79235af1815bcf47d39f', value: web3.toWei(2.50, "ether")})

The console immediately returned a transaction hash so you could track confirmation directly on a block explorer instead of guessing whether the GUI wallet froze. Just be sure to back up your keystore folder in a couple of safe places before changing passwords or importing keys into any new wallet.

Related posts:

Leave a Comment