ERC-7715 standardizes wallet-facing JSON-RPC methods for requesting, listing, and revoking execution permissions. A DApp asks a wallet to grant a scoped permission to a DApp-controlled session account (to), so that the session account can later act on behalf of the granting account (from) within user-approved limits. The core methods are wallet_requestExecutionPermissions, wallet_revokeExecutionPermission, wallet_getSupportedExecutionPermissions, and wallet_getGrantedExecutionPermissions.
The request model is intentionally narrow at the wallet boundary and extensible at the permission layer: PermissionRequest carries chainId, optional from, to, permission, and rules; if from is omitted, the wallet may let the user choose which account grants the permission. permission and rules use base shapes such as BasePermission and BaseRule, with expiry as a defined rule, while concrete permission/rule registries are left to additional standards. isAdjustmentAllowed tells the wallet whether it may reduce or increase the requested permission before approval to match the conditions accepted by the user.
ERC-7715 is wallet-side but its execution path is tied to ERC-7710 and ERC-4337 concepts. A successful response includes context, an opaque identifier used for permission revocation or redemption, which ERC-7710 consumes as the permission context for redeemDelegation(...) calls; dependencies, an array of ERC-4337 factory/factoryData pairs for accounts that must be deployed before redemption; and delegationManager, the ERC-7710 contract address that receives redeemDelegation(...) calls. Revocation uses wallet_revokeExecutionPermission with a permissionContext parameter corresponding to the returned context.
The value is "scoped future execution through one wallet approval": recurring payments, subscriptions, games, automated swaps, limit orders, session keys, and agent workflows without asking the user to sign every individual transaction. On TRON this could enable bounded, revocable permissions for DApps and agents, but the Ethereum-specific redemption and deployment fields cannot be assumed to work unchanged. We propose to track ERC-7715 and introduce it to TRON as a TIP, tentatively referred to as TIP-7715, with the wallet RPC flow preserved where possible and TRON-specific execution semantics made explicit. Landing the wallet permission request layer first gives the ERC-7710 delegation track a shared negotiation interface.
-
Wallet RPC compatibility. Whether TRON wallets expose the same ERC-7715 method names and request/response objects through the TRON DApp provider, or use a TRON-specific namespace. The closer the method names and shapes remain to ERC-7715, the easier it is for wallets, SDKs, and DApps to share tooling.
-
Permission request fields. from is optional in ERC-7715 and allows wallet-side account selection; to identifies the DApp session account or delegated executor; isAdjustmentAllowed allows the wallet to reduce or increase the requested permission before approval; and context is returned for later revocation or execution. The TIP should preserve these meanings if the fields are retained, and state clearly when a field is TRON-specific or unsupported.
-
Permission and rule registry. ERC-7715 deliberately leaves concrete permission and rule types to additional standards: all types inherit from BasePermission or BaseRule, and type-name collisions are a compatibility risk. TRON has native TRX, TRC-10 assets, TRC-20 contracts, TVM contract calls, and resource costs that do not map one-to-one to Ethereum examples. Open: whether TRON defines canonical types such as native-trx-allowance, trc10-token-allowance, trc20-token-allowance, and contract-call-permission, and which rules are required or recommended first (expiry, spend limits, rate limits, recipient/contract/method allowlists, energy/bandwidth limits).
-
Dependencies and account deployment. In ERC-7715, dependencies is an array of ERC-4337 factory/factoryData pairs for accounts that must be deployed before a permission can be redeemed. TRON does not currently share that account-deployment model. Open: should TRON v1 require dependencies to be empty and reject requests that need factory/factoryData, or define a TRON-native deployment dependency mechanism in a later companion TIP.
-
Delegation Manager and redemption. In ERC-7715, delegationManager is the ERC-7710 contract that receives redeemDelegation(...) with the permission context, execution mode, and encoded execution calldata. If TRON does not implement ERC-7710-compatible redemption, this field has no direct execution meaning. Open: whether TIP-7715 only standardizes the wallet permission request layer, replaces delegationManager with a TRON-native permissionManager, or sequences behind a TRON ERC-7710 track.
-
Wallet-local permissions vs. on-chain enforcement. ERC-7715 is the request layer; enforcement depends on the wallet and execution framework. TRON should decide whether a minimal v1 permits wallet-local enforcement, requires an on-chain permission manager, maps to smart-account implementations, or integrates with TRON's native account permission system. TRON native permissions include owner, active, and witness permissions, weighted keys, thresholds, and operation allowlists; they authorize transaction operations/keys directly, while ERC-7715-style permissions are DApp-requested scoped capabilities.
-
Address representation. ERC-7715 examples assume Ethereum Address values, i.e. 20-byte hex addresses normally rendered in EIP-55 checksum form. TRON addresses may be Base58Check, 21-byte hex addresses with leading byte 0x41, or ABI-level 20-byte values after removing the TRON leading byte, so direct reuse of Ethereum address assumptions can cause mismatches in from, to, token addresses, contract allowlists, and permission manager addresses. Open: the canonical authored form for TRON permission requests/responses, whether wallets accept multiple encodings for matching, and whether user-facing displays prefer Base58Check.
-
Multi-signature approval flow. ERC-7715 models permission approval as a wallet decision and does not define multi-signer approval flows. TRON accounts can require weighted multi-signature approval for account operations, so a wallet_requestExecutionPermissions request for a from account may require more than one signer before the permission is considered granted. Open: whether wallets abstract this into a single approval result, expose partial approval state to DApps, or require the permission request to fail until the account's threshold is satisfied.
-
Chain ID and network binding. ERC-7715 uses EIP-155-style chainId to bind a permission request to a chain, and the returned context is later used for revocation or redemption. TRON has Mainnet, Nile, Shasta, and private networks, plus TRON-specific chain ID conventions in related signing flows. Open: whether permission requests use an existing TRON chain ID convention, CAIP-2 style identifiers, or another TRON network identifier, and whether context should bind both account and network to prevent cross-network permission reuse.
-
TRX, TRC-10, and TRC-20 assets. ERC-7715 only defines the envelope for permission data; concrete token permissions are expected to be defined separately, with Ethereum examples naturally centered on native-token and ERC-20-style allowances. TRON needs equivalent representation for native TRX, TRC-10 token IDs, TRC-20 contracts, and TVM value fields. TRON uses sun as the base unit (1 TRX = 10^6 sun). Open: whether TRC-20 follows ERC-20-style allowance patterns, how token metadata is resolved and trusted, how TRC-10 token IDs are represented, and how call_value, call_token_value, and token_id are handled for contract-call permissions.
-
Contract-call permissions and TVM resources. ERC-7715 can carry contract-call permissions as a permission type, but the source ERC does not standardize the full shape of target, selector, parameter, or value constraints. TRON smart contract calls are ABI-compatible at the calldata level, while the outer transaction container and resource model are TRON-specific. Open: whether contract-call-permission supports target contract allowlists, selectors, parameter constraints, TRX/TRC-10 value limits, and energy/bandwidth bounds; and whether batch execution is in v1 scope.
-
Revocation semantics. ERC-7715 revokes by passing permissionContext, corresponding to the granted permission's context, to wallet_revokeExecutionPermission. TRON must decide whether revocation is wallet-local, on-chain, or both; whether revocation requires a TRON transaction; and how DApps discover revoked, expired, partially used, or active permissions.
-
User consent and safety. In its Security Considerations, ERC-7715 states that wallets must clearly display requested permissions and warn users against granting dangerous permissions. TRON wallets need equivalent review surfaces for future execution authority, including the granting account, session account, network, asset, amount, target contract, allowed method, limits, and expiry. Open: when wallets should reject unknown or overly broad permission types, how strongly they warn on unlimited or long-lived permissions, and what security requirements apply to session keys, delegated executors, permission managers, and stored permission state.
-
Naming and documentation. What the formal TRON TIP title should be, and how it should reference ERC-7715 as the upstream standard. Ethereum-specific terms such as delegationManager may need TRON alternatives such as permissionManager, with a clear note separating source ERC semantics from TRON adaptation guidance.
Background
ERC-7715 standardizes wallet-facing JSON-RPC methods for requesting, listing, and revoking execution permissions. A DApp asks a wallet to grant a scoped permission to a DApp-controlled session account (
to), so that the session account can later act on behalf of the granting account (from) within user-approved limits. The core methods arewallet_requestExecutionPermissions,wallet_revokeExecutionPermission,wallet_getSupportedExecutionPermissions, andwallet_getGrantedExecutionPermissions.The request model is intentionally narrow at the wallet boundary and extensible at the permission layer:
PermissionRequestcarrieschainId, optionalfrom,to,permission, andrules; iffromis omitted, the wallet may let the user choose which account grants the permission.permissionandrulesuse base shapes such asBasePermissionandBaseRule, withexpiryas a defined rule, while concrete permission/rule registries are left to additional standards.isAdjustmentAllowedtells the wallet whether it may reduce or increase the requested permission before approval to match the conditions accepted by the user.ERC-7715 is wallet-side but its execution path is tied to ERC-7710 and ERC-4337 concepts. A successful response includes
context, an opaque identifier used for permission revocation or redemption, which ERC-7710 consumes as the permission context forredeemDelegation(...)calls;dependencies, an array of ERC-4337factory/factoryDatapairs for accounts that must be deployed before redemption; anddelegationManager, the ERC-7710 contract address that receivesredeemDelegation(...)calls. Revocation useswallet_revokeExecutionPermissionwith apermissionContextparameter corresponding to the returnedcontext.The value is "scoped future execution through one wallet approval": recurring payments, subscriptions, games, automated swaps, limit orders, session keys, and agent workflows without asking the user to sign every individual transaction. On TRON this could enable bounded, revocable permissions for DApps and agents, but the Ethereum-specific redemption and deployment fields cannot be assumed to work unchanged. We propose to track ERC-7715 and introduce it to TRON as a TIP, tentatively referred to as TIP-7715, with the wallet RPC flow preserved where possible and TRON-specific execution semantics made explicit. Landing the wallet permission request layer first gives the ERC-7710 delegation track a shared negotiation interface.
Scope
wallet_getSupportedExecutionPermissions,wallet_requestExecutionPermissions,wallet_getGrantedExecutionPermissions, andwallet_revokeExecutionPermission.chainId, optionalfrom,to,permission,rules,context, and the extensibleBasePermission/BaseRulemodel.dependencies(factory/factoryData) and ERC-7710delegationManageras execution-layer fields that require explicit TRON support, replacement, or rejection.Compatibility Topics for Discussion
Wallet RPC compatibility. Whether TRON wallets expose the same ERC-7715 method names and request/response objects through the TRON DApp provider, or use a TRON-specific namespace. The closer the method names and shapes remain to ERC-7715, the easier it is for wallets, SDKs, and DApps to share tooling.
Permission request fields.
fromis optional in ERC-7715 and allows wallet-side account selection;toidentifies the DApp session account or delegated executor;isAdjustmentAllowedallows the wallet to reduce or increase the requested permission before approval; andcontextis returned for later revocation or execution. The TIP should preserve these meanings if the fields are retained, and state clearly when a field is TRON-specific or unsupported.Permission and rule registry. ERC-7715 deliberately leaves concrete permission and rule types to additional standards: all types inherit from
BasePermissionorBaseRule, and type-name collisions are a compatibility risk. TRON has native TRX, TRC-10 assets, TRC-20 contracts, TVM contract calls, and resource costs that do not map one-to-one to Ethereum examples. Open: whether TRON defines canonical types such asnative-trx-allowance,trc10-token-allowance,trc20-token-allowance, andcontract-call-permission, and which rules are required or recommended first (expiry, spend limits, rate limits, recipient/contract/method allowlists, energy/bandwidth limits).Dependencies and account deployment. In ERC-7715,
dependenciesis an array of ERC-4337factory/factoryDatapairs for accounts that must be deployed before a permission can be redeemed. TRON does not currently share that account-deployment model. Open: should TRON v1 requiredependenciesto be empty and reject requests that needfactory/factoryData, or define a TRON-native deployment dependency mechanism in a later companion TIP.Delegation Manager and redemption. In ERC-7715,
delegationManageris the ERC-7710 contract that receivesredeemDelegation(...)with the permissioncontext, execution mode, and encoded execution calldata. If TRON does not implement ERC-7710-compatible redemption, this field has no direct execution meaning. Open: whether TIP-7715 only standardizes the wallet permission request layer, replacesdelegationManagerwith a TRON-nativepermissionManager, or sequences behind a TRON ERC-7710 track.Wallet-local permissions vs. on-chain enforcement. ERC-7715 is the request layer; enforcement depends on the wallet and execution framework. TRON should decide whether a minimal v1 permits wallet-local enforcement, requires an on-chain permission manager, maps to smart-account implementations, or integrates with TRON's native account permission system. TRON native permissions include owner, active, and witness permissions, weighted keys, thresholds, and operation allowlists; they authorize transaction operations/keys directly, while ERC-7715-style permissions are DApp-requested scoped capabilities.
Address representation. ERC-7715 examples assume Ethereum
Addressvalues, i.e. 20-byte hex addresses normally rendered in EIP-55 checksum form. TRON addresses may be Base58Check, 21-byte hex addresses with leading byte0x41, or ABI-level 20-byte values after removing the TRON leading byte, so direct reuse of Ethereum address assumptions can cause mismatches infrom,to, token addresses, contract allowlists, and permission manager addresses. Open: the canonical authored form for TRON permission requests/responses, whether wallets accept multiple encodings for matching, and whether user-facing displays prefer Base58Check.Multi-signature approval flow. ERC-7715 models permission approval as a wallet decision and does not define multi-signer approval flows. TRON accounts can require weighted multi-signature approval for account operations, so a
wallet_requestExecutionPermissionsrequest for afromaccount may require more than one signer before the permission is considered granted. Open: whether wallets abstract this into a single approval result, expose partial approval state to DApps, or require the permission request to fail until the account's threshold is satisfied.Chain ID and network binding. ERC-7715 uses EIP-155-style
chainIdto bind a permission request to a chain, and the returnedcontextis later used for revocation or redemption. TRON has Mainnet, Nile, Shasta, and private networks, plus TRON-specific chain ID conventions in related signing flows. Open: whether permission requests use an existing TRON chain ID convention, CAIP-2 style identifiers, or another TRON network identifier, and whethercontextshould bind both account and network to prevent cross-network permission reuse.TRX, TRC-10, and TRC-20 assets. ERC-7715 only defines the envelope for permission data; concrete token permissions are expected to be defined separately, with Ethereum examples naturally centered on native-token and ERC-20-style allowances. TRON needs equivalent representation for native TRX, TRC-10 token IDs, TRC-20 contracts, and TVM value fields. TRON uses sun as the base unit (1 TRX = 10^6 sun). Open: whether TRC-20 follows ERC-20-style allowance patterns, how token metadata is resolved and trusted, how TRC-10 token IDs are represented, and how
call_value,call_token_value, andtoken_idare handled for contract-call permissions.Contract-call permissions and TVM resources. ERC-7715 can carry contract-call permissions as a permission type, but the source ERC does not standardize the full shape of target, selector, parameter, or value constraints. TRON smart contract calls are ABI-compatible at the calldata level, while the outer transaction container and resource model are TRON-specific. Open: whether
contract-call-permissionsupports target contract allowlists, selectors, parameter constraints, TRX/TRC-10 value limits, and energy/bandwidth bounds; and whether batch execution is in v1 scope.Revocation semantics. ERC-7715 revokes by passing
permissionContext, corresponding to the granted permission'scontext, towallet_revokeExecutionPermission. TRON must decide whether revocation is wallet-local, on-chain, or both; whether revocation requires a TRON transaction; and how DApps discover revoked, expired, partially used, or active permissions.User consent and safety. In its Security Considerations, ERC-7715 states that wallets must clearly display requested permissions and warn users against granting dangerous permissions. TRON wallets need equivalent review surfaces for future execution authority, including the granting account, session account, network, asset, amount, target contract, allowed method, limits, and expiry. Open: when wallets should reject unknown or overly broad permission types, how strongly they warn on unlimited or long-lived permissions, and what security requirements apply to session keys, delegated executors, permission managers, and stored permission state.
Naming and documentation. What the formal TRON TIP title should be, and how it should reference ERC-7715 as the upstream standard. Ethereum-specific terms such as
delegationManagermay need TRON alternatives such aspermissionManager, with a clear note separating source ERC semantics from TRON adaptation guidance.Suggested Minimal v1 Scope
permissionContext.BasePermission,BaseRule, andexpirycompatibility.References