On-chain Operations
Create a Contract Call
Submit an arbitrary contract call from a vault, such as EVM call data, an ICP canister call, a raw-signing message, or an Alephium method.
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. Itsstatus 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
See TransactionType.
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 returnstatus: "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