Skip to main content
Request example
Response example
POST /api/external/transactions/ Use a contract call for arbitrary contract execution. These transactions can have chain-specific data requirements and may require approval before broadcast.

Request body

string
required
Vault that signs and submits the call.
string
required
Blockchain identifier.
string
Decimal amount of native asset sent with the call.
string
required
Must be "CONTRACT_CALL".
object
Chain-specific call payload. Use one of the following shapes.
string
Client reference.
object
Gas settings for the call.
object
Creation options.
The SDK accepts chain and serializes it as blockChain. It injects category: "CONTRACT_CALL".

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.
TransferPartyData
Where the funds come from. Which fields are present depends on type. See TransferPartyData.
string
Chain the transaction runs on.
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