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.

Status
Description
Is Terminal?

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

Reason
Description

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

Status
Description

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