Skip to content

wallet-cli contract set-origin-energy-limit

Set the energy the deployer will cover per call.

Synopsis

wallet-cli contract set-origin-energy-limit <address> <energy>
                                            [--dry-run | (--sign-only | --build-only) [--expiration <ms>] | --wait [--wait-timeout <ms>]]
                                            [--permission-id <n>] [options]

Description

Sets origin_energy_limit — the ceiling on how much energy the deployer is willing to pay for a single call to this contract.

TRON only — the deployer-pays energy model has no EVM counterpart; that network fails with family_mismatch.

It is not a cap on the contract, and not a cap on the caller. What the deployer actually covers is bounded by three things at once: this limit, the deployer's own staked energy, and the caller/deployer split from contract set-user-resource-percent. Whatever the deployer's side cannot cover falls back to the caller. Two ways this ends up doing nothing: the deployer has no staked energy (the subsidy is zero regardless of this limit), or the user share is 100 % (the deployer's portion is zero, so this limit never comes into play).

<energy> must be an integer greater than zero — the chain rejects zero, and it is refused locally rather than broadcast.

Only the contract's deployer can do this; the current value is in contract info. Settings take effect as soon as the transaction confirms.

By default the command returns at submission (stage: "submitted"), not confirmation — add --wait to block until confirmed/failed. Requires an account. The master password (via --password-stdin) is needed only by the modes that sign — --dry-run and --build-only do not unlock the wallet and run without it. Watch-only accounts fail with watch_only_no_signer in a signing mode.

The Ledger TRON app cannot parse this governance contract type. Ledger accounts may dry-run or build, but signing modes fail with ledger_unsupported before device interaction.

Options

Option Description
<address> Required. Contract to configure; you must be its deployer
<energy> Required. Per-call energy the deployer will cover, integer > 0
--dry-run Build and estimate only, no signature/broadcast; excludes --sign-only / --build-only
--sign-only Sign without broadcasting, output the signed hex; excludes --dry-run / --build-only; pairs with --expiration
--build-only Build and estimate, output the unsigned hex; 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-stdin Master password from stdin (fd 0)

Plus the global options.

Examples

In the examples, $PW is your master password (from an environment variable, password manager, etc.), fed on stdin via --password-stdin.

echo "$PW" | wallet-cli contract set-origin-energy-limit TQ5nJ8mV...4wRe 50000000 --network tron:3448148188 --wait --password-stdin
✅ Origin energy limit set
  Contract      TQ5nJ8mV...4wRe
  Deployer      TQkXm4vN...5Zt7Uw (main)
  Energy limit  50,000,000
  TxID          3a9...
  Block         57,882,265
  Fee           0 TRX  (290 bandwidth)
  Status        success
echo "$PW" | wallet-cli contract set-origin-energy-limit TQ5nJ8mV...4wRe 50000000 --network tron:3448148188 --wait --password-stdin -o json
{"schema":"wallet-cli.result.v1","success":true,"command":"contract.set-origin-energy-limit","data":{"kind":"contract-set-origin-energy-limit","stage":"confirmed","txId":"3a9...","confirmed":true,"blockNumber":57882265,"failed":false,"contractAddress":"TQ5nJ8mV...","deployerAddress":"TQkXm4vN...","originEnergyLimit":50000000,"feeSun":0,"energyUsed":0,"netUsed":290,"energyFeeSun":0,"netFeeSun":0,"resource":{"netUsage":290,"netFeeSun":0,"energyUsage":0,"energyFeeSun":0}},"meta":{"durationMs":6530,"warnings":[]},"chain":{"family":"tron","network":"tron:3448148188","chainId":"3448148188"}}

Output

data varies by stage:

Stage Fields
default (submit) kind: "contract-set-origin-energy-limit", stage: "submitted", txId, contractAddress, deployerAddress, originEnergyLimit
--wait (confirmed) above, plus stage: "confirmed", confirmed (boolean), blockNumber, flat settlement fields when returned (feeSun, energyUsed, netUsed, energyFeeSun, netFeeSun), their governance compatibility view resource (netUsage, netFeeSun, energyUsage, energyFeeSun), and failed

originEnergyLimit is the value now in effect.

Exit status

0 submitted (or built/signed in early-exit modes) · 1 execution failure (contract_not_found — no such contract, not_contract_deployer, watch_only_no_signer, ledger_unsupported, auth_failed) · 2 usage error (invalid_value — malformed address, or energy not an integer > 0).

See also

contract set-user-resource-percent · contract info · Energy & bandwidth · Script safety