Skip to content

Track and Introduce ERC-4337 Account Abstraction Using Alt Mempool to TRON #881

Description

@yanghang8612

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions