Understanding Transaction Status
When monitoring a transaction’s execution via /status, you may encounter various statuses that indicate the current stage of the transaction lifecycle. This page aims to give a high-level explanation of expected statuses in the response schema.
Top-level Status
Users may refer to the top-level status to locate the funds transferred upon execution. The list of status enums below is in approximately chronological order.
origin_tx_pending
The origin transaction is pending and has not landed on-chain.
origin_tx_succeeded
The origin transaction has been included in a block but is not confirmed yet.
origin_tx_confirmed
The origin transaction has at least 3 confirmations on-chain. Note that it is very unlikely for a bridge transaction to remain in this stage, as the bridge status is fetched immediately after the origin transaction is confirmed.
origin_tx_reverted
The origin transaction is reverted. The transaction has reached the end of the lifecycle, and the funds still remain in the originAddress.
bridge_pending
The bridge is in flight. The quoted bridge provider has received the funds from the originAddress and is in process of executing the trade.
bridge_filled
The bridge has been fulfilled. The funds have landed in the destinationAddress.
bridge_failed
The bridge is unable to be fulfilled. The transaction has reached a terminal stage, but a manual action may need to be initiated by the user to recover the funds. Please refer to the failure field for additional context.
unknown
The transaction status is unknown. Please reach out to 0x, as it is likely that there is an internal error.
Failure Context
The failure context is provided when a transaction enters the bridge_failed state. It includes the failure reason (why the bridge failed), the failure status (the status of the recovery step), and the recovery metadata. Combined, these fields allow users to keep track of the funds and perform further actions if needed.
Failure Reason
expired
The bridge provider is unable to execute the cross-chain transaction before its expiry.
cancelled
The bridge has been cancelled by the user or a third-party entity. This can occur only if someone bypasses 0x’s recommended flow and interacts directly with the bridge provider’s system, or if the bridge provider experiences a technical failure.
out_of_gas
The bridge provider was unable to complete the cross-chain transaction after running out of gas mid-execution. Often times, the user may need to perform a manual action to rectify the failure and unstuck the funds.
internal
The bridge provider ran into a technical failure. Often times, the user may need to perform a manual action to rectify the failure and unstuck the funds.
unknown
The reason of the bridge failure cannot be determined by 0x.
Failure Status
refund_pending
An automatic recovery process has been initiated by the bridge provider.
refund_succeeded
The refund has been issued by the bridge provider. The user receives the funds either in originAddress or destinationAddress, depending on the chain from which the funds are recovered. Please check failure.recovery for more information.
manual_action_required
The recovery process needs to be manually initiated by the user. The user may submit the manual transaction provided as failure.recovery.manualTransaction to the chain that corresponds to failure.recovery.chainId to unstuck the funds. The /status endpoint does not track the status of this manual transaction.
no_actions_required
The bridge ran into a failure before transferring the tokens from the origin chain. The user has already received the funds and no further actions are required.
failed
The catch-all failure status. Unfortunately, there is nothing that the user can do at this point. Please contact 0x for support.
If you have any clarifying questions or need help recovering funds, please reach out to 0x developer support for assistance.
Last updated