Skip to main content
After initiating a transfer from a custodial wallet via POST /v1/wallets/{wallet_id}/transfer, the transfer is represented as a wallet action with a custodian_transaction step. The custodian (e.g. Bridge) must conduct transaction screening and compliance checks before the transaction is executed on-chain.

Action-level status

The top-level wallet action status reflects the overall outcome:
StatusDescription
pendingThe transfer is in progress — the custodian is reviewing or executing it.
succeededThe transfer has been confirmed on-chain (terminal).
rejectedThe transfer was rejected before any on-chain effect, e.g. due to custodian compliance checks (terminal). Safe to retry.
failedThe transfer failed after being initiated on-chain (terminal). May have partial on-chain effects.

Step-level status

For custodial transfers, the wallet action has a single step of type custodian_transaction. The step status provides more granular detail about where the transfer is in its lifecycle:
Step statusDescription
preparingThe transfer request is being prepared and validated.
queuedThe transfer is queued, waiting for a prior step to complete.
custodian_reviewingThe custodian is conducting compliance screening and approval checks. The transaction has not yet been initiated on-chain.
pendingThe custodian has approved and initiated the transaction. It is now pending confirmation on the blockchain.
confirmedThe transaction has been confirmed on-chain (terminal, success).
rejectedThe custodian rejected the transfer during review (terminal, failure).
failedThe transaction failed after being initiated (terminal, failure).

Typical flow

preparing → custodian_reviewing → pending → confirmed
If the custodian rejects the transfer during review, the step transitions directly to rejected:
preparing → custodian_reviewing → rejected

Tracking status

Use the wallet action ID returned from the transfer request to poll for status:
GET /v1/wallets/{wallet_id}/actions/{action_id}
Add ?include=steps to the request to see step-level status details for debugging.
Or subscribe to webhooks to receive push notifications when the transfer reaches a terminal state.

Next steps

Transfer webhooks

Monitor transfer status and lifecycle events

Authorization controls

Configure policies and multi-party approvals for custodial wallets