wallet-cli import ledger¶
Register a Ledger account. Watch-only locally; signs on the device.
Synopsis¶
wallet-cli import ledger --app <tron|ethereum> [--index <n> | --path <bip32> | --address <addr>]
[--scan-limit <n>] [--label <l>] [options]
Options¶
| Option | Description |
|---|---|
--app <tron\|ethereum> |
Required. Ledger app to open on the device; this is what selects the chain family and the derivation scheme |
--index <number> |
Account index under wallet-cli's family path template. Mutually exclusive with --path / --address |
--path <string> |
Explicit derivation path, e.g. m/44'/195'/0'/0/0 (TRON) or m/44'/60'/0'/0/0 (Ethereum) |
--address <string> |
Known address to locate by bounded scan |
--scan-limit <number> |
Indexes to scan with --address (default 20) |
--label <string> |
Unique account label, 1-64 chars; omit to auto-generate |
Plus global options.
Notes¶
Creates a watch-only entry; no secret is stored. Requires the device unlocked with the selected app open.
When all three locators are omitted, an attached TTY opens a paged account selector (five derived addresses at a time). In non-interactive use there is no selector and the command falls back to index 0; pass --index, --path, or --address explicitly in scripts.
For Ethereum, --index <n> uses wallet-cli's MetaMask-style path m/44'/60'/0'/0/<n>. Ledger Live commonly uses m/44'/60'/<n>'/0/0; use an explicit --path when importing an account created under that scheme.
--app is what makes a Ledger account single-family: the TRON app registers a tron account and the Ethereum app an evm one, and the resulting account has only that one address. Import the same device twice, once per app, to hold both. See Ledger guide.
Examples¶
wallet-cli import ledger --app tron --index 0 --label cold
✅ Registered Ledger account "cold"
Account ID wlt_7h2k9d3m
App tron
Path m/44'/195'/0'/0/0
TRON address TMSgJxtPw29AFEHMXsjGo4kWV7UwbCToHJ
⚠️ No private key is stored locally. Signing requires device confirmation.
The Ethereum app registers an EVM account from the same device:
wallet-cli import ledger --app ethereum --index 0 --label cold-evm
wallet-cli import ledger --app tron --index 0 --label cold -o json
{"schema":"wallet-cli.result.v1","success":true,"command":"import.ledger","data":{"status":"created","accountId":"wlt_7h2k9d3m","label":"cold","type":"ledger","index":null,"active":true,"addresses":{"tron":"TMSgJxtPw29AFEHMXsjGo4kWV7UwbCToHJ"},"family":"tron","path":"m/44'/195'/0'/0/0"},"meta":{"durationMs":812,"warnings":[]}}
Output¶
data carries the newly registered Ledger account — address and derivation path only, no secret. Local command — no chain block.
| Field | Type | Meaning |
|---|---|---|
status |
string | "created", or "existing" if the account was already registered |
accountId |
string | Stable account id |
label |
string | Account label |
type |
string | "ledger" (signs on device) |
index |
number | null | Non-HD account, always null (device index lives in path) |
active |
boolean | Became the active account |
addresses |
object | The single address, keyed by its family — {"tron":"T…"} for the TRON app, {"evm":"0x…"} for the Ethereum app |
family |
string | Chain family selected by --app — tron or evm |
path |
string | Derivation path on the device |
Exit status¶
0 success · 1 execution failure · 2 usage error. See machine-interface.