Jump to
Ctrl
+
/

Create Tron Contract Interaction Transaction Request

POST
/vaults/{vaultId}/transaction-requests/contract-interaction

Creates a contract interaction transaction request for TRC20 token operations on the Tron blockchain. Supports two methods — approve, which authorizes a fee-payer address to spend tokens on behalf of the holder, and transferFrom, which moves tokens from the holder to a recipient where the fee-payer covers the TRX gas cost.

Path Parameters

vaultId string Required

Sender's Vault ID.

Query Parameters

context string Optional

In batch situations the user can use the context to correlate responses with requests. This property is present regardless of whether the response was successful or returned as an error. context is specified by the user.

Request Body Schema application/json

context string Optional

In batch situations the user can use the context to correlate responses with requests. This property is present regardless of whether the response was successful or returned as an error. context is specified by the user.

data object Required
item object Required
amount string Optional

Required when method is transfer-from.

assetId string Required

TRC20 token Chain Asset ID. Native TRX is not allowed.

feePayer string Required

Address paying the TRX energy/bandwidth fee. Must belong to the same vault and have positive TRX balance.

fromAddress string Required

Holder address (must belong to the vault). For approve it is the on-chain initiator; for transfer-from it is the token holder being debited.

maxFee string Optional

Optional maximum TRX fee for the transaction.

method string Required

Contract interaction method, approve = authorize feePayer to spend tokens on behalf of fromAddress (always uint256.max), transfer-from = feePayer moves tokens from fromAddress to toAddress (requires a prior approve).

note string Required

Transaction note (max 250 characters).

toAddress string Optional

Required when method is transfer-from. Recipient of the tokens.

vaultAccountId string Optional

Unique identifier of the Vault Account.

Response Schema

apiVersion string Required

Specifies the version of the API that incorporates this endpoint.

2026-03-20
requestId string Required

Defines the ID of the request. The requestId is generated by Vaultody and it's unique for every request.

601c1710034ed6d407996b30
context string Optional

In batch situations the user can use the context to correlate responses with requests. This property is present regardless of whether the response was successful or returned as an error. context is specified by the user.

yourExampleString
data object Required
item object Required
amountUnit string Required

Token symbol

USDT
assetId string Required

Chain Asset ID of the TRC20 token.

6995822ce883e61317b3d6e8
contractInteractionData object Required

Contract interaction details.

contractAddress string Required

TRC20 token contract address.

TXLAQ63Xg1NAzckPwKHvzw7CSEmLMEqcdj
feePayer string Required

Address paying the TRX gas fee.

TNVVnKu7aAt4zZ5LstHx3B7nfg6xtKggq9
maxFee string Optional

Maximum fee for the transaction.

3
method string Required

Method invoked on the contract.

transfer-from
note string Required

Transaction note with additional details.

yourAdditionalInformationhere
recipients array Items (object) Required

For approve: a single entry pointing at the token contract address with amount=0. For transfer-from: a single entry with the recipient address and token amount.

address string Required

Destination address (token contract for approve; recipient for transfer-from)

TRQMiKnp2WcJCVbeLwKAAvQAYizsYxpA1P
amount string Required

Defines the amount sent to the destination address (when method is approve amount is 0 ).

5
amountUnit string Required

Token symbol.

USDT
convertedAmountToUSD string Required

Amount calculated in USD.

5
senders object Required

Source of the transaction (the token holder address).

address string Required

Sender's address.

TZHvDmEiHBhKt4afaD77hGX38uKM4B8Uyq
totalTransactionAmount string Required

Token amount of the transaction (0 for approve).

5
transactionRequestId string Required

Represents a unique identifier of the transaction request.

62daacdbc8a7282e9ea01c35
transactionRequestStatus string Required

Defines the status of the transaction, e.g. "created".

created

Callback parameters

walletId string Required

Unique identifier of the wallet associated with the transaction.

685121237d7d1e0007ac1a1d
webhookId string Required

Unique identifier of the webhook that triggered this callback.

68516e9c6620b0a4790ed541
idempotencyKey string Required

A unique key used to prevent duplicate processing of this callback if it's sent more than once.

928fe1786859b5e33a2f63c569a0351e0c90cbe35bc5a7bb0bb1523cd371dda9
apiVersion string Required

The version of the API that this webhook callback conforms.

2025-09-23
data object Required

Contains the event type and all related transaction information.

event string Required

Type of webhook event: TRANSACTION_REQUEST indicates a new transaction request has been created and is pending approval or rejection.

TRANSACTION_REQUEST
item object Required

Contains detailed metadata about the outgoing mined transaction

vaultAccountId string Required

The specific vault account id.

69ba58c529eb49000746b311
assetId string Required

The specific asset id.

6913471c6b2794841dc8fb6f
unit string Required

The specific asset unit.

BTC
requestId string Required

A unique identifier for the original transaction request that initiated this outgoing transaction.

686cd2860ca2f4fd25f77099
transactionType string Required

The type of asset being transferred: COIN, TOKEN, LINKING, SMART_COIN, SMART_TOKEN, FREEZE, UNFREEZE, DELEGATE, UNDELEGATE, WITHDRAW_RESOURCE,BATCH.

COIN
Was this page helpful?
Yes
No
Powered by
Language
URL

{
    "apiVersion": "2026-03-20",
    "requestId": "601c1710034ed6d407996b30",
    "context": "yourExampleString",
    "data": {
        "item": {
            "amountUnit": "USDT",
            "assetId": "6995822ce883e61317b3d6e8",
            "contractInteractionData": {
                "contractAddress": "TXLAQ63Xg1NAzckPwKHvzw7CSEmLMEqcdj"
            },
            "feePayer": "TNVVnKu7aAt4zZ5LstHx3B7nfg6xtKggq9",
            "maxFee": "3",
            "method": "transfer-from",
            "note": "yourAdditionalInformationhere",
            "recipients": [
                {
                    "address": "TRQMiKnp2WcJCVbeLwKAAvQAYizsYxpA1P",
                    "amount": "5",
                    "amountUnit": "USDT",
                    "convertedAmountToUSD": "5"
                }
            ],
            "senders": {
                "address": "TZHvDmEiHBhKt4afaD77hGX38uKM4B8Uyq"
            },
            "totalTransactionAmount": "5",
            "transactionRequestId": "62daacdbc8a7282e9ea01c35",
            "transactionRequestStatus": "created"
        }
    }
}
{
    "walletId": "685121237d7d1e0007ac1a1d",
    "webhookId": "68516e9c6620b0a4790ed541",
    "idempotencyKey": "928fe1786859b5e33a2f63c569a0351e0c90cbe35bc5a7bb0bb1523cd371dda9",
    "apiVersion": "2025-09-23",
    "data": {
        "event": "TRANSACTION_REQUEST",
        "item": {
            "vaultAccountId": "69ba58c529eb49000746b311",
            "assetId": "6913471c6b2794841dc8fb6f",
            "unit": "BTC",
            "requestId": "686cd2860ca2f4fd25f77099",
            "transactionType": "COIN"
        }
    }
}