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
Block reference bytes — 4 hex characters. Must be fetched fresh from chain before signing (expires in ~60s). Use TronWeb.trx.getCurrentRefBlockParams().
The signed transaction hex: rawDataHex + signatureHex. The signature occupies the last 130 hex
characters (65 bytes). Pass directly to POST /wallet/broadcasthex on a Tron full node, or use
TronWeb.trx.sendRawTransaction().