Sign a Tron transaction and broadcast it to the network. Privy automatically fetches block reference fields (ref_block_bytes, ref_block_hash, expiration) if you omit them.
To sign without broadcasting — for example when using a custom RPC or gas sponsor — use
tron_signTransaction instead.
The wallet RPC endpoint is a synchronous endpoint, and a successful response indicates that the
transaction has been broadcasted to the network. Transactions may get broadcasted but still fail
to be confirmed by the network. The endpoint does not wait for confirmation or retry if the
transaction fails to be confirmed. To handle these scenarios, see our guide on speeding up
transactions.
Learn more about sending Tron transactions using our SDKs here.
Idempotency on errors: On 4xx or 5xx, Privy caches the response and replays it for the same
key. Generate a new key to retry after a server error. Policy violations are an exception and
allow same-key retries.
Array of exactly one contract object. Use TransferContract for native TRX transfers; use TriggerSmartContract for TRC-20 transfers and other smart contract calls. All addresses must be 41-prefixed hex (use TronWeb.address.toHex() to convert from base58check).TransferContract:
type: "TransferContract"
owner_address: sender, 41-prefixed hex
to_address: recipient, 41-prefixed hex
amount: sun (1 TRX = 1,000,000 sun)
TriggerSmartContract:
type: "TriggerSmartContract"
owner_address: caller, 41-prefixed hex
contract_address: contract, 41-prefixed hex
data (optional): ABI-encoded calldata, hex string
call_value (optional): TRX value in sun sent with the call