Skip to content

Commit aa13c9b

Browse files
committed
docs(staking-cli): add security recommendations for wallet selection
Recommend hardware wallet (Ledger) for mainnet funds, warn about key leakage risks, and advise using environment variables for secrets.
1 parent 6f2c14c commit aa13c9b

File tree

1 file changed

+20
-12
lines changed

1 file changed

+20
-12
lines changed

staking-cli/README.md

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -171,13 +171,26 @@ Options:
171171

172172
### Choose your type of wallet (mnemonic, private key, or Ledger)
173173

174+
**Security** Utmost care must be taken to avoid leaking the Ethereum private key used for staking or registering
175+
validators. There is currently no built-in key rotation feature for Ethereum keys.
176+
174177
First, determine which signing method you would like to use:
175178

179+
1. **Ledger hardware wallet** - (recommended) sign transactions with a Ledger device
176180
1. **Mnemonic phrase** - derive keys from a BIP-39 mnemonic with account index
177-
2. **Private key** - use a raw hex-encoded private key directly
178-
3. **Ledger hardware wallet** - sign transactions with a Ledger device
181+
1. **Private key** - use a raw hex-encoded private key directly
182+
183+
**Security recommendations:** For managing significant funds on mainnet, we recommend using a hardware wallet (Ledger)
184+
for extra security. Hardware wallets keep your private keys isolated from your computer, offering some protection
185+
against malware and phishing attacks. If you need support for other hardware signers, please open an issue at
186+
https://github.com/EspressoSystems/espresso-network.
187+
188+
For mnemonics and private keys, to avoid passing secrets on the command line, use environment variables:
189+
190+
- `MNEMONIC` for mnemonic phrase
191+
- `PRIVATE_KEY` for raw private key
179192

180-
If using a mnemonic and you don't know which account index to use, you can find it by running:
193+
If using a ledger or mnemonic and you don't know which account index to use, you can find it by running:
181194

182195
```bash
183196
staking-cli --mnemonic MNEMONIC --account-index 0 account
@@ -190,10 +203,10 @@ staking-cli --ledger --account-index 1 account
190203

191204
Repeat with different indices until you find the address you want to use.
192205

193-
If using a private key:
206+
If using a private key, ensure PRIVATE_KEY env var is set
194207

195208
```bash
196-
staking-cli --private-key 0x1234...abcd account
209+
staking-cli account
197210
```
198211

199212
Note that for ledger signing to work
@@ -202,12 +215,7 @@ Note that for ledger signing to work
202215
1. the Ethereum app needs to be open,
203216
1. blind signing needs to be enabled in the Ethereum app settings on the ledger.
204217

205-
To avoid passing secrets on the command line, use environment variables:
206-
207-
- `MNEMONIC` for mnemonic phrase
208-
- `PRIVATE_KEY` for raw private key
209-
210-
### Initialize the configuration file
218+
### Initialize the configuration file (optional)
211219

212220
Once you've identified your desired account index (here 2), initialize a configuration file:
213221

@@ -226,7 +234,7 @@ NOTE: only for this `init` command the wallet flags are specified _after_ the co
226234

227235
You can inspect the configuration file by running:
228236

229-
staking-cli config
237+
staking-cli config
230238

231239
### View the stake table
232240

0 commit comments

Comments
 (0)