wallet-cli account activate

August 17, 2026 · View on GitHub

Activate a not-yet-existing account on-chain.

Synopsis

wallet-cli account activate --address <T...>
                            [--dry-run | (--sign-only | --build-only) [--expiration <ms>] | --wait [--wait-timeout <ms>]]
                            [--permission-id <n>] [options]

Description

A TRON address doesn't exist on-chain until it receives its first asset or is explicitly created — until then queries return not_found and it cannot initiate a transaction. This command creates (activates) such an account without transferring any asset; the payer account covers the on-chain account-creation fee.

Use it only when an address needs to exist on its own — to be queryable, or able to initiate its own transactions. If you're sending it funds anyway, tx send activates the recipient automatically in one step; and adding an address to a multi-sig permission does not require activation.

Requires the payer account and the master password via --password-stdin; watch-only accounts fail with watch_only_no_signer.

Options

OptionDescription
--address <T...>Required. The address to activate (a valid, not-yet-activated TRON address)
--dry-runBuild and estimate only; no signature/broadcast, no password. Excludes --sign-only / --build-only
--sign-onlyBuild and sign, output the signed hex (feed tx broadcast). Excludes --dry-run / --build-only; pairs with --expiration
--build-onlyBuild only, output the unsigned hex (feed tx multisig --create). Excludes --dry-run / --sign-only; pairs with --expiration
--expiration <ms>Transaction expiration in ms, up to 86400000 (24h); only with --sign-only or --build-only; omitted = node default (~60s)
--permission-id <n>Permission group to sign with (0=owner, 1=witness, 2-9=active); default 0
--wait / --wait-timeout <ms>Poll after broadcast until confirmed/failed (cap default: config waitTimeoutMs, built-in 60000)
--password-stdinMaster password from stdin

Plus the global options. --account selects the payer.

Examples

In the examples, $PW is your master password, fed on stdin via --password-stdin.

Default — broadcast and return the submitted receipt:

echo "$PW" | wallet-cli account activate --address TNewAddr9k2fP7cW4bXm1sV8dRj6eL3aQz --network tron:nile --password-stdin
⏳ Submitted — activate account
  TxID     a1b...
  Address  TNewAddr9k2fP7cW4bXm1sV8dRj6eL3aQz
  Payer    TQkXm4vN8pR2sD6fWbYc3LhJa9Ee5Zt7Uw (main)
  Status   pending
! Track it: wallet-cli tx info --network tron:nile --txid a1b...
{"schema":"wallet-cli.result.v1","success":true,"command":"account.activate","data":{"kind":"account-activate","stage":"submitted","txId":"a1b...","address":"TNewAddr9k2fP7cW4bXm1sV8dRj6eL3aQz","payer":"TQkXm4vN8pR2sD6fWbYc3LhJa9Ee5Zt7Uw"},"meta":{"durationMs":17,"warnings":[]},"chain":{"family":"tron","network":"tron:nile","chainId":"nile"}}

Add --wait to block until confirmed, with the actual block and fee:

echo "$PW" | wallet-cli account activate --address TNewAddr9k2fP7cW4bXm1sV8dRj6eL3aQz --network tron:nile --wait --password-stdin
✅ Account activated
  TxID     e7a...
  Address  TNewAddr9k2fP7cW4bXm1sV8dRj6eL3aQz
  Payer    TQkXm4vN8pR2sD6fWbYc3LhJa9Ee5Zt7Uw (main)
  Block    #84,340,277
  Fee      1.1 TRX
  Status   success
{"schema":"wallet-cli.result.v1","success":true,"command":"account.activate","data":{"kind":"account-activate","stage":"confirmed","txId":"e7a...","confirmed":true,"blockNumber":84340277,"feeSun":1100000,"failed":false,"address":"TNewAddr9k2fP7cW4bXm1sV8dRj6eL3aQz","payer":"TQkXm4vN8pR2sD6fWbYc3LhJa9Ee5Zt7Uw"},"meta":{"durationMs":6540,"warnings":[]},"chain":{"family":"tron","network":"tron:nile","chainId":"nile"}}

Output

data varies by stage:

StageFields
default (submit)kind: "account-activate", stage: "submitted", txId, address, payer
--wait (confirmed)the above, but stage: "confirmed", plus confirmed, blockNumber, feeSun, failed
--dry-runkind, mode: "dry-run", fee estimate, address, payer; no txId

Exit status

0 submitted (or built/signed/dry-run in early-exit modes) · 1 execution failure (account_already_active, watch_only_no_signer, auth_failed, insufficient_balance, rpc_error, timeout) · 2 usage error (invalid_value — malformed address).

After a confirmed transaction the command reads the account back to verify the change took effect. That follow-up never turns an already-paid transaction into a command failure: a mismatch or an unreadable read is reported as a meta.warnings entry (account_activate_postcheck_mismatch / account_activate_postcheck_unavailable) with success still true and exit 0.

See also

account set · tx send · account info · chain params