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 Ledger Live's template, m/44'/<coin>'/<n>'/0/0. 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 |
With all three locators omitted, an attached TTY opens a paged account selector (five derived addresses at a time). Non-interactive use has no selector and falls back to index 0, so pass --index, --path, or --address explicitly in scripts.
--index <n>, the selector, and --address scanning all use Ledger Live's template on both apps: m/44'/195'/<n>'/0/0 for TRON and m/44'/60'/<n>'/0/0 for Ethereum. Software accounts use m/44'/<coin>'/0'/0/<n> instead, so the two agree only at index 0. Use --path for any other scheme.
Plus global options.
Notes¶
Creates a watch-only entry; no secret is stored. Requires the device unlocked with the selected app open.
--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","derivationPath":{"tron":"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 |
derivationPath |
object | The same path, keyed by family — {"tron":"m/44'/195'/0'/0/0"} |
Exit status¶
0 success · 1 execution failure · 2 usage error. See machine-interface.