Skip to main content
These are the methods that wallets should implement to handle Tron transactions and messages via WalletConnect.

Network / Chain Information

CAIP-2Chain IDNameRPC EndpointNamespace
tron:0x2b6653dc0x2b6653dcTron Mainnethttps://api.trongrid.iotron
tron:0xcd8690dc0xcd8690dcTron Shastahttps://api.shasta.trongrid.iotron
tron:0x94a9059e0x94a9059eTron Nilehttps://nile.trongrid.iotron

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

Example (New Format with tron_method_version: “v1”)

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"
}
  • Response:
{
  "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:
{
  "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

  • Request:
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tron_sendTransaction",
  "params": {
    "signedTransaction": {
      "txID": "66e79c6993f29b02725da54ab146ffb0453ee6a43b4083568ad9585da305374a",
      "signature": [
        "7e760cef94bc82a7533bc1e8d4ab88508c6e13224cd50cc8da62d3f4d4e19b99514f..."
      ],
      "raw_data_hex": "0a02885b2208baa1c278fd0a309f4090c1dbe5e7325aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a15411cb0b7348eded93b8d0816bbeb819fc1d7a51f31121541a614f803b6fd780986a42c78ec9c7f77e6ded13c2244095ea7b30000000000000000000000001cb0b7348eded93b8d0816bbeb819fc1d7a51f3100000000000000000000000000000000000000000000000000000000000000007082f4d7e5e73290018084af5f"
    }
  }
}
  • Response:
{
  "jsonrpc": "2.0",
  "result": {
    "result": true,
    "txid": "66e79c6993f29b02725da54ab146ffb0453ee6a43b4083568ad9585da305374a"
  },
  "id": 1
}

tron_getBalance (optional)

Get the TRX balance of a Tron address.

Parameters

  1. 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"
  }
}
  • Response:
{
  "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.