← All articles

The TRON Account Model: Permissions, Multi-Sig, and What Investigators Should Know

Part of Who Controls a TRON Wallet? A Complete Guide to TRON Address Attribution

Key takeaways

  • On TRON, multi-sig is built into every account at the protocol level — not a smart contract bolted on, the way Ethereum's Safe is.
  • Owner permission is the master key: it can move funds and rewrite the account's own permissions. Active permissions are scoped delegates. Attribution starts at Owner.
  • A TRON address only exists once activated, and the activation is an on-chain event attributable to whoever paid for it.
  • The key that signs a transaction may not be the key that controls the account — so the address history and the controller can diverge, and that gap is the signal.

TRON’s multi-signature system isn’t a smart contract bolted on top of the protocol — it is the protocol. Every account carries a built-in permission structure with configurable keys, weights, and thresholds, whether or not the owner ever touches those settings. So the key that sends a transaction may not be the key that controls the account, and a wallet’s original funder may have been locked out by a later permission change. Reading the permission model is a prerequisite for accurate attribution on TRON, not an edge case.

This article is the protocol layer: what an account is, how Owner and Active permissions work, how threshold signatures resolve, and how to read all of it on-chain. For the attribution methodology built on top — shared-key clustering, rotation diagnostics, the hostile-takeover playbook — see Same-Permission-Key Detection.

A TRON account has to be activated first

TRON accounts look like Ethereum accounts at a glance: a 20-byte address derived from a public key, holding native tokens, calling contracts, leaving an explorer-visible history. The first real difference is how one comes to exist. On Ethereum, sending any ETH to an address makes it exist in the ledger — the cost is just the gas the sender already pays. TRON doesn’t recognize a new address until it has been explicitly activated, and activation costs 1 TRX, deducted from the activating account. That fee buys an on-chain record of the moment and the party responsible.

New address NOT YET ON LEDGER Transfer from existing account TRX OR TRC-10 · ACTIVATES ON ARRIVAL · 1 TRX AccountCreateContract TYPE 0 · EXPLICIT, NO TRANSFER · 1 TRX Contract sends to inactive addr SIDE EFFECT · 25,000 ENERGY Active account ON-CHAIN RECORD
Three ways an address gets activated — and the cost differs.

The usual path is a transfer: an existing account sends TRX or a TRC-10 token to a new address, and if the target isn’t active yet, the network activates it in the same move. A separate transaction type, AccountCreateContract (contract type 0), creates an account explicitly with no transfer attached. A smart contract can also activate an account incidentally by sending TRX or TRC-10 to an inactive address — but that path burns 25,000 Energy instead of the 1 TRX fee, and it’s a side effect of the transfer, not an AccountCreateContract. In the common case, activation traces to a real external account: someone decided to bring that specific address online.

The more consequential difference is permissions. An Ethereum wallet has one private key; multi-sig there means deploying a contract that holds funds and gates them behind approvers. On TRON, multi-sig is a first-class feature of every account, at the protocol level.

Owner permission vs Active permission

When an account is created, the network sets up two permission groups automatically.

Owner permission is the master. It can execute any transaction type — transfers, staking, contract calls, voting — and, critically, change the account’s own permission structure. Hold Owner and you hold complete control: you can add or remove keys, move thresholds, grant or revoke Active permissions. It’s the root of the authority tree. By default Owner has one key (the account’s own address) at weight 1, threshold 1 — the minimum single-signer setup most fresh wallets carry.

Active permissions are scoped delegates. Each one is defined by three things:

  • An operations field — a 32-byte bitmask (shown as hex in explorers) where each bit maps to a TRON contract type. A bit set to 1 lets this permission execute that contract type. Typical configurations enable everything except AccountPermissionUpdateContract, so an Active holder can’t rewrite the account’s permissions.
  • A list of keys, each with a weight.
  • A threshold the combined signing weight must reach.

An account can hold up to 8 Active permissions, each with its own operation set — enough for tiered delegation: one permission for day-to-day transfers, another for staking, another for specific contract calls, each with its own signers and quorum.

Owner permission — the master key TYPE 0 · ID 0 · EXECUTES ANY TX · CAN REWRITE THE ACCOUNT'S OWN PERMISSIONS grants & revokes every Active permission below — root of the authority tree GRANT / REVOKE Active — transfers OPERATIONS BITMASK own signers & threshold Active — staking OPERATIONS BITMASK own signers & threshold Active — contract calls OPERATIONS BITMASK own signers & threshold Up to 8 Active permissions · type 2, IDs from 2 · each scoped to a contract-type set Typical bitmask = every contract type except AccountPermissionUpdateContract — Active can't rewrite permissions
Owner is the root; Active permissions are scoped branches it can grant or revoke.

This split is the most investigatively important part of the model. Knowing an address is a signer on an Active permission tells you it can run that permission’s allowed operations — and nothing about who holds Owner, and so nothing about who can ultimately reconfigure or seize the account. Ownership investigation always starts at Owner permission.

How threshold signatures resolve

Owner and every Active permission share the same mechanic: a list of keys, each with a weight, and a threshold. A transaction signed under a permission is valid when the combined weight of the provided signatures meets or exceeds the threshold. The network doesn’t count signatures — it sums weights and compares.

Single-signer default THRESHOLD 1 · EVERY ACCOUNT STARTS HERE key A W 1 sum 1 ≥ threshold 1 behaves like a plain EOA 2-of-3 multi-sig THRESHOLD 2 · ANY TWO KEYS AUTHORIZE AW 1 BW 1 CW 1 any 2 weights = 2 ≥ threshold 2 one key alone cannot High-threshold lockout THRESHOLD > TOTAL KEY WEIGHT AW 1 BW 1 max sum 2 < threshold 3 no combination can sign
The same weight-versus-threshold rule produces a plain wallet, a multisig, or a freeze.

Three configurations cover the range:

Keys are TRON addresses, not raw public keys — each address is a key-holder who can sign for the account. The address doesn’t have to be active or funded; it only has to be able to produce a valid signature. A permission group supports up to 5 keys.

Changing permissions on-chain

AccountPermissionUpdateContract (contract type 46) is the only transaction that modifies an account’s permission structure. It carries a protocol fee of 100 TRX — chain parameter #22, which an SR vote could change but never has: the parameter appears in none of the 67 proposals in TRON’s entire on-chain governance history — plus an extra 1 TRX multi-sig fee when the current Owner permission already needs a quorum to sign.

The update is all-or-nothing: the transaction has to specify the complete desired state of every permission at once. You can’t touch only Owner and leave the Actives alone — any Active permission that exists but isn’t included in the update gets removed. So every permission-update transaction in a wallet’s history is a full snapshot of the account’s new configuration.

BEFORE Owner Active 1 Active 2 Active 3 AccountPermissionUpdate TYPE 46 · 100 TRX FEE carries the COMPLETE new permission set OVERWRITE AFTER (TX OMITS 2 & 3) Owner (new keys) Active 1 Active 2 — removed Active 3 — removed The broadcasting "from" address pays the fee — but need not be the account being updated. Any holder of the target's Owner permission can sign and broadcast the rewrite.
One transaction replaces the entire permission set — whatever it omits is dropped.

On Tronscan it shows up as an AccountPermissionUpdate, with the detail view listing the new Owner permission (keys and threshold) and any Active permissions being set. Two things trip people up. The from address is whoever broadcast and paid for the transaction — not necessarily the account whose permissions changed, since any other account holding the target’s Owner permission could have signed it. And the 100 TRX comes out of the account paying transaction costs, usually but not necessarily the one being updated.

An AccountPermissionUpdateContract transaction affecting a wallet is a marker that permission rotation has occurred — a meaningful event in the history of control, and one worth flagging in any careful attribution review. The most useful way to read a series of these is chronologically: each update is a dated point at which the key set changed, and stringing them together shows how control of the account moved over time. See Same-Permission-Key Detection for how that rotation evidence fits into a dated control trail.

Why this matters for attribution

Permissions open a gap between the addresses in a wallet’s transaction history and the addresses that actually control it. Take a wallet activated in 2022 by an exchange hot wallet, since funded by two personal addresses. A naive read gives you three ownership candidates. But if the Owner permission was updated in 2023 — two new keys, a 2-of-2 threshold — the activation source and the personal funders are irrelevant to current control. Control belongs to whoever holds those two new keys.

That’s why rotation is one of the clearest signals of a deliberate transfer of control. A plain outbound transfer could be a payment; rotating the Owner keys is an administrative act — someone with existing Owner access chose to change who controls the account. It can mean a legitimate handoff (an account sold or transferred), a security measure (old keys deprecated after a device compromise), or a hostile takeover (an attacker with temporary Owner access replacing every key before being locked out). Timing sharpens the read: a rotation right before a large outbound transfer reads differently from one after a long dormant stretch, a rotation adding a known custodian’s key suggests a formal arrangement, and a rotation that strips every original key for unfamiliar addresses is the highest-priority signal that control has changed hands.

The key that signs a transaction may not be the key that controls the account — so the address history and the current controller can point at different people, and that divergence is the signal worth chasing.

Permission state is direct evidence, and the most reliable way to read it is rule-first: look at who holds the Owner keys now and how the key set has changed, rather than inferring control from indirect proxies. When origin evidence (activation and funding) and the current controller point at the same addresses, the wallet has a clean story; when they diverge — especially with a rotation visible in between — it’s a more complicated one. See The Origin & Architecture of TRON for why TRON’s structure creates these attribution challenges.

Reading permission state on-chain

Two ways to inspect an account’s current permissions.

Tronscan. On the account page, find the “Permissions” section or tab (the layout shifts between UI versions; as of 2026 it sits under the account detail section). It shows the Owner permission’s keys and threshold, then each Active permission with its id, name, threshold, keys, and operations scope — the fastest check for whether an account is default single-signer or configured for multi-sig.

The wallet/getaccount API. POST /wallet/getaccount returns the full account object. owner_permission holds the threshold and a keys array — each key an address (hex) and a weight. active_permission is an array of Active permission objects, each with a threshold, keys, and an operations hex bitmask. A default fresh account shows one key (its own address), weight 1, threshold 1 in both Owner and the single Active permission. A witness_permission field, if present, means the account is a registered SR candidate.

When you review permission state, four things matter:

  • Keys per permission. More than one in Owner means full control needs coordinated signing; multiple in Active means routine operations are shared.
  • Unfamiliar addresses. Owner keys that never appear in the transaction history point to control through a channel the transaction graph doesn’t show.
  • Threshold versus total weight. Threshold equal to the sum of all weights means every signer has to agree; lower means a quorum suffices and some key-holders can be locked out.
  • Recency of the last update. wallet/getaccount tells you who controls the account now; the transaction history tells you when that changed.

Patterns worth recognizing

Exchange custody wallets usually split by role. The hot wallet that user withdrawals come from runs single-key Owner permission because it has to move fast and at volume. The cold or settlement wallet uses a high-threshold multi-sig Owner — often 3-of-5 or similar — requiring coordinated signatures from geographically distributed hardware security modules. An exchange-annotated hot wallet address turning up in an Active permission key list is unusual and worth a look.

DAO and protocol treasuries push Owner permission to high-quorum multi-key setups — 4-of-7, 5-of-9 — and often carry no Active permissions at all, so every operation needs Owner-level approval. The key addresses frequently match known governance participants.

A personal hardware-wallet rotation looks different: an account first controlled by a software-wallet key rotates Owner to a hardware-wallet key, then sometimes re-adds the old software key as a lower-weight Active permission for convenience. The rotation is on-chain, and the new Owner key is the hardware wallet.

The compromise pattern is the one to watch. An account sits with stable permissions for months or years, then an AccountPermissionUpdateContract appears — adding unfamiliar keys or replacing existing ones — and large outbound transfers follow shortly after. The new keys have no prior history on the account. That’s the on-chain signature of a hostile takeover: an attacker gained temporary signing capability, rotated permissions, and drained value. The timestamp of that AccountPermissionUpdateContract is the earliest moment of attacker control.

Sources

Primary and authoritative sources used for the facts in this article: