Skip to content

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 --apptron or evm
path string Derivation path on the device

Exit status

0 success · 1 execution failure · 2 usage error. See machine-interface.

See also

Ledger guide · import watch