---
title: "GET /v2/tx/status"
method: GET
path: "/v2/tx/status"
tags: ["Transaction"]
---

# GET /v2/tx/status

`GET /v2/tx/status`

Get the status of the specified transaction and any subsequent IBC or Axelar transfers if routing assets cross chain. The transaction must have previously been submitted to either the /submit or /track endpoints.

## Query parameters

- `tx_hash` string, required
- `chain_id` string, required

## Response `200`

The status of the transaction and any subsequent ibc or Axelar transfers.

- object
  - `transfers` TransferStatus[] — Transfer status for all transfers initiated by the transaction in the order they were initiated.
    - `error` StatusError
      - `details` TransactionExecutionErrorDetails
        - `code` number — Error code
        - `message` string — Error message
      - `message` string — Error message
      - `type` 'STATUS_ERROR_UNKNOWN' | 'STATUS_ERROR_TRANSACTION_EXECUTION' | 'STATUS_ERROR_INDEXING' | 'STATUS_ERROR_TRANSFER' — Packet error types: * `STATUS_ERROR_UNKNOWN` - Unknown error * `STATUS_ERROR_TRANSACTION_EXECUTION` - Error was encountered during transaction execution * `STATUS_ERROR_INDEXING` - Error was encountered while indexing the transaction and packet data * `STATUS_ERROR_TRANSFER` - The transfer failed to complete successfully
    - `next_blocking_transfer` object, nullable — Indicates which entry in the `transfer_sequence` field that the transfer is blocked on. Will be null if there is no blocked transfer.
      - `transfer_sequence_index` integer — The index of the entry in the `transfer_sequence` field that the transfer is blocked on.
    - `state` 'STATE_SUBMITTED' | 'STATE_PENDING' | 'STATE_COMPLETED_SUCCESS' | 'STATE_COMPLETED_ERROR' | 'STATE_ABANDONED' | 'STATE_PENDING_ERROR' — Transaction state: * `STATE_SUBMITTED` - The initial transaction has been submitted to Skip Go API but not observed on chain yet * `STATE_PENDING` - The initial transaction has been observed on chain, and there are still pending actions * `STATE_COMPLETED_SUCCESS` - The route has completed successfully and the user has their tokens on the destination. (indicated by `transfer_asset_release`) * `STATE_COMPLETED_ERROR` - The route errored somewhere and the user has their tokens unlocked in one of their wallets. Their tokens are either on the source chain, an intermediate chain, or the destination chain but as the wrong asset. (Again, `transfer_asset_release` indicates where the tokens are) * `STATE_ABANDONED` - Tracking for the transaction has been abandoned. This happens if the cross-chain sequence of actions stalls for more than 10 minutes or if the initial transaction does not get observed in a block for 5 minutes. * `STATE_PENDING_ERROR` - The overall transaction will fail, pending error propagation
    - `transfer_asset_release` TransferAssetRelease — Indicates location and denom of transfer asset release.
      - `chain_id` string — The chain ID of the chain that the transfer asset is released on.
      - `denom` string — The denom of the asset that is released.
      - `amount` string, nullable — The amount of the asset that is released.
      - `released` boolean — Indicates whether assets have been released and are accessible. The assets may still be in transit.
    - `transfer_sequence` TransferEvent[] — Lists any IBC and Axelar transfers as they are seen. — unresolved $ref
  - `state` 'STATE_SUBMITTED' | 'STATE_PENDING' | 'STATE_COMPLETED_SUCCESS' | 'STATE_COMPLETED_ERROR' | 'STATE_ABANDONED' | 'STATE_PENDING_ERROR' — Transaction state: * `STATE_SUBMITTED` - The initial transaction has been submitted to Skip Go API but not observed on chain yet * `STATE_PENDING` - The initial transaction has been observed on chain, and there are still pending actions * `STATE_COMPLETED_SUCCESS` - The route has completed successfully and the user has their tokens on the destination. (indicated by `transfer_asset_release`) * `STATE_COMPLETED_ERROR` - The route errored somewhere and the user has their tokens unlocked in one of their wallets. Their tokens are either on the source chain, an intermediate chain, or the destination chain but as the wrong asset. (Again, `transfer_asset_release` indicates where the tokens are) * `STATE_ABANDONED` - Tracking for the transaction has been abandoned. This happens if the cross-chain sequence of actions stalls for more than 10 minutes or if the initial transaction does not get observed in a block for 5 minutes. * `STATE_PENDING_ERROR` - The overall transaction will fail, pending error propagation
  - `transfer_sequence` TransferEvent[] — **DEPRECATED.** This field provides a flat list of all transfer events. For a more structured and detailed status of each transfer leg, including its individual events, please use the 'transfers' array instead. This field may be removed in a future version. — unresolved $ref
  - `next_blocking_transfer` object, nullable — Details about the next transfer in the sequence that is preventing further progress, if any.
    - `transfer_sequence_index` integer
  - `transfer_asset_release` TransferAssetRelease — Indicates location and denom of transfer asset release.
    - `chain_id` string — The chain ID of the chain that the transfer asset is released on.
    - `denom` string — The denom of the asset that is released.
    - `amount` string, nullable — The amount of the asset that is released.
    - `released` boolean — Indicates whether assets have been released and are accessible. The assets may still be in transit.
  - `error` StatusError
    - `details` TransactionExecutionErrorDetails
      - `code` number — Error code
      - `message` string — Error message
    - `message` string — Error message
    - `type` 'STATUS_ERROR_UNKNOWN' | 'STATUS_ERROR_TRANSACTION_EXECUTION' | 'STATUS_ERROR_INDEXING' | 'STATUS_ERROR_TRANSFER' — Packet error types: * `STATUS_ERROR_UNKNOWN` - Unknown error * `STATUS_ERROR_TRANSACTION_EXECUTION` - Error was encountered during transaction execution * `STATUS_ERROR_INDEXING` - Error was encountered while indexing the transaction and packet data * `STATUS_ERROR_TRANSFER` - The transfer failed to complete successfully
  - `status` string — A high-level status indicator for the transaction's completion state.

## Other responses

- `404` — The specified tx was not found.
- `500` — Internal server error

## Changes

- **2025-05-23** `25c1afa93adb` — 18 warning, 18 info
  - removed the optional property `transfer_sequence/items/axelarTransfer` from the response with the `200` status
  - removed the optional property `transfer_sequence/items/cctpTransfer` from the response with the `200` status
  - removed the optional property `transfer_sequence/items/eurekaTransfer` from the response with the `200` status
  - removed the optional property `transfer_sequence/items/goFastTransfer` from the response with the `200` status
  - …32 more
- **2025-05-20** `6ba512ad5ec2` — 1 info
  - api operation id `getTransactionStatusV2` removed and replaced with `status`
- **2025-05-20** `a32b3a7c3a14` — 1 info
  - response property `transfers/items/transfer_sequence` reactivated
- **2025-05-20** `d0713e9b7ec4` — 2 info
  - response property `transfer_sequence` deprecated
  - response property `transfers/items/transfer_sequence` deprecated
- …earlier changes not shown

[Full history](https://skmtc.dev/skip-mev/apis/skip-go-api/changes/v2/tx/status/get.md)

---

[API](https://skmtc.dev/skip-mev/apis/skip-go-api.md) · [All operations](https://skmtc.dev/skip-mev/apis/skip-go-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/skip-mev/skip-go-api/revisions/283f01dfabe2/schema)
