Automatic Energy Pool Selling:
Which Wallet Permissions You Really Need
Letting a pool sell your staked Energy automatically doesn't mean handing over your wallet. TRON's permission system lets you grant a narrow, revocable set of powers — and nothing else. Here's exactly what's mandatory, what's optional, what you should never sign, and what the setup actually costs.
Automatic selling is one of two ways to earn on staked TRX
Once you've staked TRX and hold Energy or Bandwidth, you can put it to work in two very different ways. Understanding the difference is the whole point of this guide, because only one of them involves granting any permission at all.
Manual selling
You keep full, exclusive control of your wallet. When a buyer's offer appears on a marketplace, you personally sign a one-off DelegateResource transaction straight from your own private key to fulfil it. No standing authorization exists at any point — every delegation is a separate, deliberate action you approve.
Automatic selling
You grant a pool's address standing authorization on your account, using TRON's built-in permission system — not your keys. The pool can then delegate (and later reclaim) your Energy to match buyers around the clock, without asking you to sign each individual trade.
TRON accounts have layered permissions, not just one key
Every TRON account is created with two permission layers: an Owner permission (full control — can change permissions, unstake, transfer, everything) and an Active permission (day-to-day operations). What makes automatic selling possible without exposing your keys is that TRON lets you edit the Active permission to add a second address — the pool's — and restrict exactly which operations that address is allowed to perform on your behalf.
This is done with a single on-chain transaction called AccountPermissionUpdate. It rewrites your account's permission structure to list the pool's address alongside your own inside the Active permission, each tagged with a bitmask of which contract types it's allowed to trigger. Your Owner permission — the one that can change permissions again, or override anything the Active permission does — stays yours alone, untouched.
AccountPermissionUpdate transaction that removes their address again.Only two operations are actually required
For a pool to do its job — matching your Energy to buyers and getting it back afterwards — it needs exactly two permissions. Nothing else is functionally necessary for automatic selling to work.
DelegateResourceContract
Lets the pool delegate your Energy or Bandwidth to a buyer's address when it matches your listing to a sale. Without this, the pool has nothing to sell on your behalf.
UnDelegateResourceContract
Lets the pool reclaim previously delegated Energy — either because a rental period ended, or because it needs to reallocate your resources to a different buyer. Without this, resources you've sold could get stuck delegated indefinitely.
Together, these two are the entire operational core of automatic selling: delegate to a buyer, undelegate when it's done, repeat. Everything a pool offers beyond this — covered next — is optional convenience, not a requirement to make automatic selling work.
What pools also offer — genuinely optional, not required
Checking the onboarding flows several providers actually publish for automatic selling (Feee.io, Tronify, TokenPocket's integration, and TronDiscount's own permissions page all show the same pattern) turns up 4 recurring extra permissions offered alongside the 2 mandatory ones. They're presented as recommended, and most sellers do grant them for convenience — but they are not required for automatic selling to function. Granting only Delegate + Undelegate and handling the rest yourself is a fully supported, common configuration, not a workaround.
| Optional scope | What it automates | What it can't do |
|---|---|---|
| Vote (VoteWitnessContract) | Casts SR votes with your TRON Power so you earn voting rewards without voting yourself | Change who holds your Owner permission |
| Claim Voting Rewards | Collects accrued SR rewards and credits them straight to your balance | Send rewards to any address other than your own |
| Stake 2.0 (Freeze) | Auto-restakes new deposits so your resource pool keeps growing without manual freezing | Unfreeze or spend your existing staked TRX |
| Unstake 1.0 (legacy only) | Cleans up old Stake-1.0 frozen balances left over from before the Stake 2.0 upgrade | Touch your current Stake 2.0 position (see next section) |
Permissions no legitimate energy pool needs from you
If a pool's onboarding flow asks you to sign an AccountPermissionUpdate that includes any of the following, stop and reconsider. Unlike the permissions above, each of these can move value out of your account or change who controls it — and none of them appear in legitimate automatic-selling authorization flows.
TransferContract / TransferAssetContract
Would let the pool move your TRX or tokens directly to any address. Delegating Energy is not the same as transferring funds — a legitimate pool never needs to move your balance anywhere.
UnfreezeBalanceV2Contract
Unstakes your current Stake 2.0 principal — the TRX actually backing your Energy today. This is distinct from the legacy Stake 1.0 unfreeze mentioned above: granting this would let the platform unwind your real position at will, not just tidy up an old deprecated one.
WithdrawExpireUnfreezeContract
Pulls TRX that's finished its unstaking wait period back into your liquid, spendable balance. Combined with the unfreeze permission above, this would complete a path from "staked" to "freely movable" entirely outside your control — on its own it's still capability you shouldn't hand over for a delegation service.
AccountPermissionUpdateContract
The most important one to refuse: this is the permission that edits permissions. Granting it would let the pool rewrite your Active — or even Owner — permission again later, potentially locking you out of your own account entirely. No pool needs this to sell Energy; if the setup flow includes it, treat that as a hard stop.
Stake 1.0 unfreeze (legacy cleanup) is commonly and safely bundled in. Stake 2.0 unfreeze (your real, current principal) is not, and should never be granted. If a permission screen just says "Unstake" without specifying which version, check the actual contract type being requested — on a block explorer, not just the platform's plain-English label — before you sign.
What modifying your wallet's permissions actually costs
Granting (or later revoking) a pool's authorization isn't free, and it isn't priced like an ordinary transfer — TRON treats permission changes as a distinct, flat-fee operation.
This 100 TRX fee applies each time you submit an AccountPermissionUpdate transaction — whether you're granting a pool's address permissions for the first time, adjusting which operations it can perform, or removing it entirely later to go back to fully manual control. It's a flat network fee set by chain parameter (adjustable only through an on-chain proposal), unrelated to how much Energy or TRX you're staking.
A quick checklist before authorizing any pool
If every box checks out, you're granting exactly the narrow, revocable authority automatic selling requires — nothing your keys, your staked TRX, or your ability to walk away later depend on.
See which pools are paying the most right now
We track live APY across every automatic-selling energy pool we aggregate, so you can compare payouts before you authorize anyone.
Common questions about pool permissions
AccountPermissionUpdate transaction that removes the pool's address from your Active permission immediately ends its ability to delegate or undelegate on your behalf. This costs the same 100 TRX fee as the original grant.