Background
ERC-7730 defines a JSON format for describing how wallets and other signing tools should display structured data for clear signing. It covers smart contract calls and typed messages, including EVM calldata and EIP-712 style messages, by providing contextual metadata, display rules, field formatting, and intent descriptions.
This is relevant to TRON because clear signing can improve the user experience and reduce phishing or frontend attack risks when users review contract interactions or structured messages before signing.
Proposal
We propose to track ERC-7730 and introduce it to the TRON ecosystem as a TIP.
The current plan is to keep the standard content unchanged, so TRON wallets, DApps, SDKs, and tooling can follow the same JSON schema and semantics as ERC-7730 without introducing TRON-specific modifications to the standard itself.
Scope
The proposed TIP should:
- Follow ERC-7730 as closely as possible.
- Preserve the original standard structure, including
context, metadata, and display.
- Maintain compatibility with existing ERC-7730 tooling and schemas.
- Provide TRON ecosystem guidance only where necessary, such as examples or non-normative implementation notes.
Current Plan
At this stage, we do not plan to modify the ERC-7730 standard content.
If TRON-specific details need to be clarified, such as address representation, chain ID usage, or integration with existing TRON signing standards, those should be handled as explanatory notes or examples rather than changes to the normative specification.
Compatibility Topics for Discussion
Although the current plan is to keep ERC-7730 unchanged, several TRON-specific details may need to be clarified before wallets and tooling can implement it consistently.
TIP-712 and trcToken
TIP-712 follows EIP-712 but introduces TRON-specific handling for some fields, including trcToken as an atomic type encoded as uint256.
Questions:
- Should ERC-7730 files for TRON typed data allow
trcToken in display.formats type definitions when the underlying message follows TIP-712?
- Should
trcToken be formatted as a raw uint256, or should wallets treat it as a token identifier and resolve metadata such as token name, symbol, decimals, and issuer?
- If a field contains both a
trcToken id and an amount, should the recommended ERC-7730 pattern use tokenAmount, a TRON-specific metadata path, or a plain amount plus a separate token label?
- Can this be documented as TRON implementation guidance without changing the ERC-7730 schema or field format list?
Address Representation
TRON addresses may appear as Base58Check addresses, hex addresses with the 0x41 prefix, or ABI-level 20-byte values after removing the TRON prefix. ERC-7730 examples generally use Ethereum-style hex addresses.
Questions:
- What should be the canonical address representation in TRON ERC-7730 files, especially under
context.contract.deployments.address and context.eip712.deployments.address?
- Should wallets accept multiple address encodings for matching, while recommending one canonical form for authored files?
- Should displayed addresses prefer the user-facing Base58Check form even if the ERC-7730 file uses a hex form for matching?
- How should
addressName resolution work in TRON contexts, and should it be limited to wallet-local address books unless a trusted TRON naming source is available?
Chain ID and Domain Binding
ERC-7730 uses chainId in deployment and EIP-712 domain contexts. TIP-712 defines the domain chainId as block.chainid & 0xffffffff.
Questions:
- Should TRON ERC-7730 files use the TIP-712
chainId value for context.eip712.deployments.chainId and EIP-712 domain matching?
- Should the same value be used for smart contract call contexts under
context.contract.deployments.chainId?
- How should wallets prevent accidental cross-network matching between Mainnet, Nile, Shasta, and private networks?
- Do we need non-normative examples showing the expected
chainId values for common TRON networks?
TRON Transaction Container Mapping
ERC-7730 currently describes EVM calldata and EIP-712 messages. TRON smart contract calls are ABI-compatible at the calldata level, but the outer transaction container is TRON-specific.
Questions:
- Can wallets map TRON
TriggerSmartContract fields into the same container-level paths used by ERC-7730, such as @.from, @.to, @.value, and @.chainId?
- Should
@.to refer to the called contract address and @.from refer to the transaction owner address in TRON transactions?
- Should
@.value represent only TRX call_value, or should call_token_value and token_id require additional container paths?
- Should the first TRON implementation scope be limited to TVM smart contract calldata and TIP-712 messages, leaving native TRX and TRC-10 system transactions for later discussion?
TRX, TRC-10, and TRC-20 Display
Clear signing needs consistent display for native TRX, TRC-10 assets, and TRC-20 tokens.
Questions:
- Should TRX values be formatted using
sun as the base unit with 6 decimals, and should this be captured only as implementation guidance?
- For TRC-20 transfers and approvals, can existing ERC-7730
tokenAmount patterns be reused directly when token metadata is available from the contract?
- For TRC-10 assets, should wallets resolve token metadata by token id, and how should missing or ambiguous metadata be displayed?
- Should unlimited approval thresholds and token decimal handling follow existing ERC-7730 conventions without TRON-specific changes?
Registry and Security Considerations
ERC-7730 relies on correct binding between the file, contract or message context, and the data being signed.
Questions:
- How should a TRON ERC-7730 registry normalize addresses and chain IDs before matching files?
- How should wallets avoid applying an ERC-7730 file to a proxy, factory deployment, or contract clone unless the binding context is verified?
- Should TRON wallets require stricter matching when the file contains TRON-specific metadata or examples?
- What review process should be used before a TRON ERC-7730 file is considered trusted by wallets?
Naming and Documentation
Questions:
- Should the TRON proposal refer to the standard as ERC-7730 for compatibility, or introduce a TRON-facing TIP title while preserving the ERC-7730 name in the specification?
- Should the eventual TIP include TRON examples only, or should it also include a short compatibility note for TIP-712, TRC-10, TRC-20, and TRON address formats?
- Should any TRON-specific behavior be placed in an appendix or implementation guide to make clear that the ERC-7730 standard content remains unchanged?
References
Background
ERC-7730 defines a JSON format for describing how wallets and other signing tools should display structured data for clear signing. It covers smart contract calls and typed messages, including EVM calldata and EIP-712 style messages, by providing contextual metadata, display rules, field formatting, and intent descriptions.
This is relevant to TRON because clear signing can improve the user experience and reduce phishing or frontend attack risks when users review contract interactions or structured messages before signing.
Proposal
We propose to track ERC-7730 and introduce it to the TRON ecosystem as a TIP.
The current plan is to keep the standard content unchanged, so TRON wallets, DApps, SDKs, and tooling can follow the same JSON schema and semantics as ERC-7730 without introducing TRON-specific modifications to the standard itself.
Scope
The proposed TIP should:
context,metadata, anddisplay.Current Plan
At this stage, we do not plan to modify the ERC-7730 standard content.
If TRON-specific details need to be clarified, such as address representation, chain ID usage, or integration with existing TRON signing standards, those should be handled as explanatory notes or examples rather than changes to the normative specification.
Compatibility Topics for Discussion
Although the current plan is to keep ERC-7730 unchanged, several TRON-specific details may need to be clarified before wallets and tooling can implement it consistently.
TIP-712 and
trcTokenTIP-712 follows EIP-712 but introduces TRON-specific handling for some fields, including
trcTokenas an atomic type encoded asuint256.Questions:
trcTokenindisplay.formatstype definitions when the underlying message follows TIP-712?trcTokenbe formatted as a rawuint256, or should wallets treat it as a token identifier and resolve metadata such as token name, symbol, decimals, and issuer?trcTokenid and an amount, should the recommended ERC-7730 pattern usetokenAmount, a TRON-specific metadata path, or a plain amount plus a separate token label?Address Representation
TRON addresses may appear as Base58Check addresses, hex addresses with the
0x41prefix, or ABI-level 20-byte values after removing the TRON prefix. ERC-7730 examples generally use Ethereum-style hex addresses.Questions:
context.contract.deployments.addressandcontext.eip712.deployments.address?addressNameresolution work in TRON contexts, and should it be limited to wallet-local address books unless a trusted TRON naming source is available?Chain ID and Domain Binding
ERC-7730 uses
chainIdin deployment and EIP-712 domain contexts. TIP-712 defines the domainchainIdasblock.chainid & 0xffffffff.Questions:
chainIdvalue forcontext.eip712.deployments.chainIdand EIP-712 domain matching?context.contract.deployments.chainId?chainIdvalues for common TRON networks?TRON Transaction Container Mapping
ERC-7730 currently describes EVM calldata and EIP-712 messages. TRON smart contract calls are ABI-compatible at the calldata level, but the outer transaction container is TRON-specific.
Questions:
TriggerSmartContractfields into the same container-level paths used by ERC-7730, such as@.from,@.to,@.value, and@.chainId?@.torefer to the called contract address and@.fromrefer to the transaction owner address in TRON transactions?@.valuerepresent only TRXcall_value, or shouldcall_token_valueandtoken_idrequire additional container paths?TRX, TRC-10, and TRC-20 Display
Clear signing needs consistent display for native TRX, TRC-10 assets, and TRC-20 tokens.
Questions:
sunas the base unit with 6 decimals, and should this be captured only as implementation guidance?tokenAmountpatterns be reused directly when token metadata is available from the contract?Registry and Security Considerations
ERC-7730 relies on correct binding between the file, contract or message context, and the data being signed.
Questions:
Naming and Documentation
Questions:
References