Background
ERC-4337 provides account abstraction without protocol/consensus changes. Users operate smart contract accounts with programmable validation/execution, signing a higher-level UserOperation gossiped in a separate alt mempool; bundlers batch UserOperations into ordinary transactions sent to a singleton EntryPoint contract, which verifies and executes them. Paymasters sponsor fees, account factories enable counterfactual (deploy-on-first-use) accounts, and signature aggregators enable aggregated signature validation for compatible accounts. This unlocks arbitrary signature schemes (e.g., passkeys/secp256r1), fee sponsorship, batching, session keys, and social recovery — all at the application layer.
TRON already has a native account permission system — weighted multi-sig and per-operation permissions (TIP-16, TIP-105) — covering part of this space, but without programmable validation (arbitrary signatures), application-layer sponsorship beyond the native model, counterfactual deployment, or a shared smart-account tooling ecosystem. We propose to track ERC-4337 and introduce it to TRON as a TIP (proposed TIP-4337) to evaluate how much of the EVM AA stack to adopt and how it should interact with native features. Because 4337 is partly infrastructure (mempool/bundlers) rather than a pure contract interface, the initial focus is the on-chain pieces (EntryPoint, account/paymaster interfaces, UserOperation) plus scoping the off-chain infrastructure TRON requires.
Scope
- Follow ERC-4337's on-chain interfaces (EntryPoint, account validation, paymaster,
UserOperation) as closely as possible.
- Choose a target EntryPoint version and document the ABI impact (v0.6 uses an unpacked
UserOperation; v0.7+ uses PackedUserOperation; v0.8 aligns with EIP-7702), and align the account surface with the ERC-7579 track.
- Document — as non-normative discussion — how bundling, the alt mempool, and fee handling map onto TRON, since these differ structurally from Ethereum.
Compatibility Topics for Discussion
- Native account abstraction & EIP-7702 overlap. TRON's native permissions (TIP-16/TIP-105) already offer weighted multi-sig and scoped permissions, and TIP-7702 (#728) is a separate path giving EOAs programmable code. Open: what does 4337 add beyond native permissions — arbitrary signatures (passkeys via TIP-7951 (#785)), application-layer sponsorship, counterfactual deployment, session keys — and which are worth the complexity; should TRON pursue 4337, 7702, native enhancements, or a combination; can a 4337 account also be a native-permission account.
- Energy/Bandwidth vs. UserOperation gas fields. A
UserOperation carries callGasLimit/verificationGasLimit/preVerificationGas/maxFeePerGas/maxPriorityFeePerGas, but TRON has no EIP-1559 priority market and meters execution in energy (staked or burned TRX) while charging calldata/transport in bandwidth (a separate fee track). How these map — callGasLimit/verificationGasLimit to energy, preVerificationGas to per-operation outer overhead (which on TRON includes bandwidth) — what maxFeePerGas/maxPriorityFeePerGas mean without a fee auction, and how EntryPoint settles costs and refunds against its deposit balances (bandwidth is not refunded through EntryPoint).
- UserOperation hash, signing, and address encoding. How
userOpHash is constructed and bound to a TRON network: the TIP-712 domain strips the 0x41 address prefix and uses chainId = block.chainid & 0xffffffff, which affects the operation hash, EntryPoint domain binding, and cross-network/cross-chain replay protection.
- Native sponsorship & paymaster funding. TRON contracts can already subsidize callers' energy via the deployer-configurable
consume_user_resource_percent — protocol-level sponsorship without a paymaster. How a 4337 paymaster relates to or competes with this and whether it is even necessary for simple sponsorship (vs. only conditional/token-fee cases); and how paymaster funding works given that an EntryPoint deposit is a liquid, on-demand balance whereas Stake 2.0 (TIP-467) provides energy with lock/unlock delays — these are distinct and should not be conflated.
- EntryPoint singleton: deployment, version, governance. TVM
CREATE2 yields a 0x41-prefixed address, so Ethereum's canonical EntryPoint address can't be reproduced — what is TRON's canonical EntryPoint deployment, who governs/audits it, which version to target (weighing unpacked v0.6 vs. PackedUserOperation v0.7+ vs. v0.8/EIP-7702 alignment vs. ERC-7579 compatibility and migration path), and how cross-version upgrades are handled.
- Bundlers and the alt mempool. TRON uses Super Representative block production with no Ethereum-style public fee-priority mempool. Whether bundlers just submit normal
TriggerSmartContract transactions to EntryPoint with the alt mempool kept off-chain, what their economic incentive is without a priority-fee market (relayer fees, sponsorship, service operation), and whether any node/SR-side support (e.g., a UserOperation RPC) is needed.
tx.origin semantics under bundling. With a bundler, tx.origin is the bundler and msg.sender is the account — neither is the user's key. Existing TRON contracts that gate on tx.origin == msg.sender or read tx.origin for access control behave differently when invoked via a 4337 account; the TIP should surface this and recommend msg.sender + TIP-1271 patterns.
- Validation rules (ERC-7562). To keep the alt mempool DoS-resistant, 4337 uses tiered validation rules that are stake- and reputation-aware (not a static opcode blacklist) — restrictions on opcodes/storage access during validation depend on whether the entity is staked. How to map these rules, reputation, and staking onto TVM, and how to retune limits given energy/bandwidth-based DoS economics (specific opcode examples to be filled once a target version is chosen).
- Cost overhead on TRON (open). Given bandwidth-priced calldata and native sponsorship, whether the per-operation overhead of routing through EntryPoint is materially different from Ethereum, and whether it changes the 4337-vs-native-permissions trade-off for common flows (simple transfers, approvals).
References
Background
ERC-4337 provides account abstraction without protocol/consensus changes. Users operate smart contract accounts with programmable validation/execution, signing a higher-level
UserOperationgossiped in a separate alt mempool; bundlers batchUserOperations into ordinary transactions sent to a singleton EntryPoint contract, which verifies and executes them. Paymasters sponsor fees, account factories enable counterfactual (deploy-on-first-use) accounts, and signature aggregators enable aggregated signature validation for compatible accounts. This unlocks arbitrary signature schemes (e.g., passkeys/secp256r1), fee sponsorship, batching, session keys, and social recovery — all at the application layer.TRON already has a native account permission system — weighted multi-sig and per-operation permissions (TIP-16, TIP-105) — covering part of this space, but without programmable validation (arbitrary signatures), application-layer sponsorship beyond the native model, counterfactual deployment, or a shared smart-account tooling ecosystem. We propose to track ERC-4337 and introduce it to TRON as a TIP (proposed TIP-4337) to evaluate how much of the EVM AA stack to adopt and how it should interact with native features. Because 4337 is partly infrastructure (mempool/bundlers) rather than a pure contract interface, the initial focus is the on-chain pieces (EntryPoint, account/paymaster interfaces,
UserOperation) plus scoping the off-chain infrastructure TRON requires.Scope
UserOperation) as closely as possible.UserOperation; v0.7+ usesPackedUserOperation; v0.8 aligns with EIP-7702), and align the account surface with the ERC-7579 track.Compatibility Topics for Discussion
UserOperationcarriescallGasLimit/verificationGasLimit/preVerificationGas/maxFeePerGas/maxPriorityFeePerGas, but TRON has no EIP-1559 priority market and meters execution in energy (staked or burned TRX) while charging calldata/transport in bandwidth (a separate fee track). How these map —callGasLimit/verificationGasLimitto energy,preVerificationGasto per-operation outer overhead (which on TRON includes bandwidth) — whatmaxFeePerGas/maxPriorityFeePerGasmean without a fee auction, and how EntryPoint settles costs and refunds against its deposit balances (bandwidth is not refunded through EntryPoint).userOpHashis constructed and bound to a TRON network: the TIP-712 domain strips the0x41address prefix and useschainId = block.chainid & 0xffffffff, which affects the operation hash, EntryPoint domain binding, and cross-network/cross-chain replay protection.consume_user_resource_percent— protocol-level sponsorship without a paymaster. How a 4337 paymaster relates to or competes with this and whether it is even necessary for simple sponsorship (vs. only conditional/token-fee cases); and how paymaster funding works given that an EntryPoint deposit is a liquid, on-demand balance whereas Stake 2.0 (TIP-467) provides energy with lock/unlock delays — these are distinct and should not be conflated.CREATE2yields a 0x41-prefixed address, so Ethereum's canonical EntryPoint address can't be reproduced — what is TRON's canonical EntryPoint deployment, who governs/audits it, which version to target (weighing unpacked v0.6 vs.PackedUserOperationv0.7+ vs. v0.8/EIP-7702 alignment vs. ERC-7579 compatibility and migration path), and how cross-version upgrades are handled.TriggerSmartContracttransactions to EntryPoint with the alt mempool kept off-chain, what their economic incentive is without a priority-fee market (relayer fees, sponsorship, service operation), and whether any node/SR-side support (e.g., aUserOperationRPC) is needed.tx.originsemantics under bundling. With a bundler,tx.originis the bundler andmsg.senderis the account — neither is the user's key. Existing TRON contracts that gate ontx.origin == msg.senderor readtx.originfor access control behave differently when invoked via a 4337 account; the TIP should surface this and recommendmsg.sender+ TIP-1271 patterns.References