Skip to content

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

@yanghang8612

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

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions