These are the methods that wallets should implement to handle Tron transactions and messages via WalletConnect.
Session Properties
To enable the new simplified transaction structure, wallets should include tron_method_version: "v1" in their sessionProperties during the connection handshake:
{
"sessionProperties": {
"tron_method_version": "v1"
}
}
When tron_method_version is set to "v1", the transaction structure is simplified to remove the nested transaction.transaction format. If not set, the legacy nested format is used for backward compatibility.
tron_signTransaction
Sign a Tron transaction without executing it.
Parameters
- The transaction to sign:
address (string) - The sender’s Tron address
transaction (object) - The transaction object to sign
Returns
- The signed transaction:
txID (string) - The transaction ID (deterministically derived from raw transaction)
signature (array) - Array of signature strings
raw_data (object) - The raw transaction data
raw_data_hex (string) - The hex-encoded raw transaction data
visible (boolean) - Whether addresses are in visible format
Request with the simplified format:
{
"request": {
"method": "tron_signTransaction",
"params": {
"address": "TKZRPqoV7WLFvjhT4cEyBLv27Rvv1RNWGj",
"transaction": {
"visible": false,
"txID": "539f218871fdd87e94eb03a0dd617107ba722005f37a5ddb82cb65aa4f3b73b0",
"raw_data": {
"contract": [
{
"parameter": {
"value": {
"data": "095ea7b300000000000000000000000069319ea845b1c35a1f7b0e1429f4f303e8f791330000000000000000000000000000000000000000000000000000000000000000",
"owner_address": "4169319ea845b1c35a1f7b0e1429f4f303e8f79133",
"contract_address": "41eca9bc828a3005b9a3b909f2cc5c2a54794de05f"
},
"type_url": "type.googleapis.com/protocol.TriggerSmartContract"
},
"type": "TriggerSmartContract"
}
],
"ref_block_bytes": "7803",
"ref_block_hash": "16138f9255a1db91",
"expiration": 1756201572000,
"fee_limit": 200000000,
"timestamp": 1756201512720
},
"raw_data_hex": "0a027803220816138f9255a1db9140a0ad95ae8e335aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a154169319ea845b1c35a1f7b0e1429f4f303e8f79133121541eca9bc828a3005b9a3b909f2cc5c2a54794de05f2244095ea7b300000000000000000000000069319ea845b1c35a1f7b0e1429f4f303e8f79133000000000000000000000000000000000000000000000000000000000000000007090de91ae8e3390018084af5f"
}
},
"expiryTimestamp": 1756201811
},
"chainId": "tron:0xcd8690dc"
}
{
"visible": false,
"txID": "539f218871fdd87e94eb03a0dd617107ba722005f37a5ddb82cb65aa4f3b73b0",
"raw_data": {
"contract": [
{
"parameter": {
"value": {
"data": "095ea7b300000000000000000000000069319ea845b1c35a1f7b0e1429f4f303e8f791330000000000000000000000000000000000000000000000000000000000000000",
"owner_address": "4169319ea845b1c35a1f7b0e1429f4f303e8f79133",
"contract_address": "41eca9bc828a3005b9a3b909f2cc5c2a54794de05f"
},
"type_url": "type.googleapis.com/protocol.TriggerSmartContract"
},
"type": "TriggerSmartContract"
}
],
"ref_block_bytes": "7803",
"ref_block_hash": "16138f9255a1db91",
"expiration": 1756201572000,
"fee_limit": 200000000,
"timestamp": 1756201512720
},
"raw_data_hex": "0a027803220816138f9255a1db9140a0ad95ae8e335aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a154169319ea845b1c35a1f7b0e1429f4f303e8f79133121541eca9bc828a3005b9a3b909f2cc5c2a54794de05f2244095ea7b300000000000000000000000069319ea845b1c35a1f7b0e1429f4f303e8f79133000000000000000000000000000000000000000000000000000000000000000007090de91ae8e3390018084af5f",
"signature": [
"1c2dd921c15fd83ca1dec4fd999b801f08c8bb073702f4bfafa4132a6e129421ed6267ec81c7dd2e4ef04ce077b101186ec2cda86d69f9f44255c216398cc9c601"
]
}
tron_signMessage
Sign a personal message.
Parameters
The message to sign:
message (string) - The message to sign (plain text)
address (string) - The account address to sign with
Returns
The signed message:
signature (string) - The signature string
Example
{
"request": {
"method": "tron_signMessage",
"params": {
"address": "TXUEmLr...",
"message": "This is a message to be signed for Tron"
},
"expiryTimestamp": 1758269816
},
"chainId": "tron:0xcd8690dc"
}
- dApp result (what client.request(…) resolves to):
{ "signature": "0x1ec623ee6e4716f5a116d0a2755b158ac05dfbc3e9118cca..." }
The methods below are not part of the required wallet surface in the Reown official Tron Wallet example.
dApps may perform these directly against a Tron node or gateway. Wallets may implement them for convenience, but they’re not required.
tron_sendTransaction (optional)
Broadcast a signed transaction to the Tron network.
Parameters
The signed transaction object:
txID (string) - The transaction ID
signature (array) - Array of signature strings
raw_data (object) - The raw transaction data
raw_data_hex (string) - The hex-encoded raw transaction data
Returns
The transaction result:
result (boolean) - Whether the transaction was successfully broadcast
txid (string) - The transaction ID that can be used to look up the transaction
Example
{
"jsonrpc": "2.0",
"id": 1,
"method": "tron_sendTransaction",
"params": {
"signedTransaction": {
"txID": "66e79c6993f29b02725da54ab146ffb0453ee6a43b4083568ad9585da305374a",
"signature": [
"7e760cef94bc82a7533bc1e8d4ab88508c6e13224cd50cc8da62d3f4d4e19b99514f..."
],
"raw_data_hex": "0a02885b2208baa1c278fd0a309f4090c1dbe5e7325aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a15411cb0b7348eded93b8d0816bbeb819fc1d7a51f31121541a614f803b6fd780986a42c78ec9c7f77e6ded13c2244095ea7b30000000000000000000000001cb0b7348eded93b8d0816bbeb819fc1d7a51f3100000000000000000000000000000000000000000000000000000000000000007082f4d7e5e73290018084af5f"
}
}
}
{
"jsonrpc": "2.0",
"result": {
"result": true,
"txid": "66e79c6993f29b02725da54ab146ffb0453ee6a43b4083568ad9585da305374a"
},
"id": 1
}
tron_getBalance (optional)
Get the TRX balance of a Tron address.
Parameters
address (string) - The Tron address to query
Returns
number - The balance in SUN (1 TRX = 1,000,000 SUN)
Example
- Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tron_getBalance",
"params": {
"address": "TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH"
}
}
{
"jsonrpc": "2.0",
"result": 1000000000,
"id": 1
}
Additional Resources
For more information about Tron RPC methods and implementation details, please refer to the official Tron documentation.