Skip to main content
Request example
Response example
POST /api/external/transactions/ Use staking for chain-level protocol actions. These transactions can have chain-specific data requirements and may require approval before broadcast.

Request body

TransferPartyData
required
Vault that stakes the asset.
string
required
Asset symbol.
string
required
Blockchain identifier.
string
required
Decimal amount to stake.
string
One of TRON_ENERGY or TRON_BANDWIDTH.
string
required
Must be "STAKE".
string
Client reference.
string
Human-readable note.
The SDK accepts chain and serializes it as blockChain. It injects category: "STAKE".

Response

Returns the new Transaction. Its status is the lifecycle source of truth.
string
Transaction ID. Use it with Retrieve Transaction to track status.
string
Organization that owns the transaction.
string
Vault the transaction runs from.
string
Lifecycle status. Track it until COMPLETED, FAILED, or DECLINED. See TransactionStatus.
string
string
For example TRANSFER or CONTRACT_CALL. See TransactionCategory.
string
string
Creation timestamp (ISO 8601).
string
Last update timestamp (ISO 8601).
boolean
Whether the transaction is deleted.
string
Your own reference, if you set one.
string
Memo you attached, if any.
TransferPartyData
Where the funds come from. Which fields are present depends on type. See TransferPartyData.
string
Chain the transaction runs on.
string
Asset moved.
string
Amount as a decimal string.

Approve the transaction

New transactions return status: "PENDING" and wait for approval. Get the approval message for the transaction id, sign it with your API user’s key, then submit the approval. See Approvals. With the SDK, call approveChangeRequest({ entityId: transaction.id, action: "approve" }) after this call.
Request example
Response example