Skip to main content
Transactions are the core operation of the Custody API. Every transfer moves through a deterministic state machine from creation to on-chain confirmation.

Creating a transaction

Submit a transfer with source, destination, amount, and asset:

Source and destination types

State machine

Transactions move through a deterministic state machine of 14 states. The diagram below shows the most common path; see Transaction state machine for the full transition table.

States

Signing flow

1

Get the signing payload

Returns a hex-encoded byte array representing the unsigned transaction digest.
2

Sign with your quantum-safe key

Use your external key management system to produce a post-quantum signature over the digest bytes.
3

Submit the signature

The API verifies the signature against the registered wallet’s public key before accepting it.

Approval and rejection

If a policy requires manual approval, the transaction enters a PENDING_AUTHORIZATION state.

Cancellation

Cancel a transaction before it has been broadcast:
You can only cancel transactions in SUBMITTED, PENDING_AUTHORIZATION, APPROVED, or PENDING_SIGNATURE. Once a transaction is SIGNED, BROADCASTING, or CONFIRMING, it cannot be cancelled.

Idempotency

Include an Idempotency-Key header to safely retry requests without creating duplicate transactions:
Idempotency keys expire after 24 hours.

Listing and filtering