Transactions are the core operation of the Custody API. Every transfer moves through a deterministic state machine from creation to on-chain confirmation.Documentation Index
Fetch the complete documentation index at: https://docs.quantumapi.io/llms.txt
Use this file to discover all available pages before exploring further.
Creating a transaction
Submit a transfer with source, destination, amount, and asset:Source and destination types
| Type | Description |
|---|---|
VAULT_ACCOUNT | A vault account managed by the Custody API |
ONE_TIME_ADDRESS | An external address used for a single transfer |
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
| State | Description | Duration |
|---|---|---|
SUBMITTED | Accepted by the API; awaiting policy and screening evaluation | Instant |
QUEUED | Held briefly because of an idempotency conflict or rate limit | Seconds |
PENDING_AUTHORIZATION | Awaiting manual approval per policy | Until approved/rejected |
PENDING_AML_SCREENING | Compliance screening in flight | Until provider responds |
APPROVED | Authorization granted, transitioning to signing | Instant |
PENDING_SIGNATURE | Awaiting external post-quantum signature | Until you sign |
SIGNED | Signature received and verified | Seconds |
BROADCASTING | Submitted to Quantum Chain nodes | Seconds |
CONFIRMING | In a block, waiting for confirmation depth | ~15–60 seconds |
COMPLETED | Confirmed with sufficient block depth | Final |
FAILED | Reverted, broadcast failure, or invalid signature | Final |
REJECTED | Denied by policy or approver | Final |
CANCELLED | Cancelled by the caller before broadcast | Final |
BLOCKED | Compliance screening flagged or blocked the transaction | Final |
Signing flow
Get the signing payload
Sign with your quantum-safe key
Use your external key management system to produce a post-quantum signature over the digest bytes.
Approval and rejection
If a policy requires manual approval, the transaction enters aPENDING_AUTHORIZATION state.
Cancellation
Cancel a transaction before it has been broadcast:Idempotency
Include anIdempotency-Key header to safely retry requests without creating duplicate transactions: