> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chipipay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# getTransactionStatus

> Fetches the on-chain status of a transaction from StarkNet. Useful for polling until confirmation.

## Usage

```typescript theme={null}
const status = await sdk.getTransactionStatus("0x...", bearerToken);
```

## Parameters

| Parameter | Type | Required | Description |
| - | - | - | - |
| `hash` | `string` | Yes | Transaction hash (`0x...`) |
| `bearerToken` | `string` | No | JWT token. Falls back to `apiSecretKey` if not provided |

## Return Value

Returns a `Promise<TransactionStatusResponse>`:

| Field | Type | Description |
| - | - | - |
| `transactionHash` | `string` | Transaction hash |
| `status` | `OnChainTxStatus` | Current on-chain status (see below) |
| `blockNumber` | `number \| undefined` | Block number if included in a block |
| `revertReason` | `string \| undefined` | Reason if status is `REVERTED` |

### OnChainTxStatus Values

| Status | Description | Terminal |
| - | - | - |
| `RECEIVED` | Transaction received by node | No |
| `PENDING` | Waiting for inclusion | No |
| `ACCEPTED_ON_L2` | Confirmed on StarkNet L2 | No |
| `ACCEPTED_ON_L1` | Proven on Ethereum L1 | Yes |
| `REJECTED` | Rejected by sequencer | Yes |
| `REVERTED` | Execution reverted on-chain | Yes |
| `NOT_RECEIVED` | Not found on network | Yes |

## Example

```typescript theme={null}
// Poll for confirmation
const poll = async (hash: string) => {
  const terminalStatuses = ["ACCEPTED_ON_L1", "REJECTED", "REVERTED", "NOT_RECEIVED"];
  const MAX_RETRIES = 60; // 60 retries * 3s = 3 minutes max

  for (let attempt = 0; attempt < MAX_RETRIES; attempt++) {
    const { status, revertReason } = await sdk.getTransactionStatus(hash, bearerToken);

    if (terminalStatuses.includes(status)) {
      if (status === "REVERTED") console.error("Reverted:", revertReason);
      return status;
    }

    await new Promise((r) => setTimeout(r, 3000));
  }

  throw new Error(`Transaction ${hash} did not reach terminal status after ${MAX_RETRIES} attempts`);
};
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.