> ## Documentation Index
> Fetch the complete documentation index at: https://cobo.com/products/agentic-wallet/manual/llms.txt
> Use this file to discover all available pages before exploring further.

# Transaction tracking

> Track submitted operations using transaction records, request IDs, and audit logs.

For runtime reliability, treat `request_id` as the primary correlation key. `list_user_transactions` is useful for quick inspection, but `get_user_transaction_by_request_id` is the stronger primitive for durable tracking.

## Track by request ID

<Tabs>
  <Tab title="Python SDK">
    ```python theme={null}
    record = await client.get_user_transaction_by_request_id(
        wallet_uuid=WALLET_UUID,
        request_id="swap-2026-001",
    )
    print(record["status"], record["record_type"])
    ```
  </Tab>

  <Tab title="TypeScript SDK">
    ```typescript theme={null}
    const record = (await txRecordsApi.getUserTransactionByRequestId(
      walletUuid,
      'swap-2026-001',
    )).data.result;
    console.log(record.status, record.record_type);
    ```
  </Tab>
</Tabs>

## List transaction records

<Tabs>
  <Tab title="CLI">
    ```bash theme={null}
    caw tx list --limit 20 --status submitted
    ```
  </Tab>

  <Tab title="Python SDK">
    ```python theme={null}
    records = await client.list_user_transactions(
        wallet_uuid=WALLET_UUID,
        limit=20,
        status="submitted",
    )
    for record in records.get("items", []):
        print(record["record_uuid"], record["status"], record["record_type"])
    ```
  </Tab>

  <Tab title="TypeScript SDK">
    ```typescript theme={null}
    const records = (await txRecordsApi.listUserTransactions(
      walletUuid,
      undefined, undefined, undefined,
      20,               // limit
      'submitted',      // status
    )).data.result;
    for (const record of records.items ?? []) {
      console.log(record.record_uuid, record.status, record.record_type);
    }
    ```
  </Tab>
</Tabs>

## Get a single transaction record

<Tabs>
  <Tab title="CLI">
    ```bash theme={null}
    caw tx get --tx-id <TX_ID>
    ```
  </Tab>

  <Tab title="Python SDK">
    ```python theme={null}
    record = await client.get_user_transaction(
        wallet_uuid=WALLET_UUID,
        record_uuid=TX_ID,
    )
    print(record["status"])
    ```
  </Tab>

  <Tab title="TypeScript SDK">
    ```typescript theme={null}
    const record = (await txRecordsApi.getUserTransaction(walletUuid, txId)).data.result;
    console.log(record.status);
    ```
  </Tab>
</Tabs>

## Status values

| Status         | Meaning                                |
| -------------- | -------------------------------------- |
| `pending`      | Accepted but not yet executed          |
| `broadcasting` | Broadcast to the network               |
| `confirming`   | Waiting for confirmations              |
| `completed`    | Confirmed on-chain                     |
| `failed`       | Failed before or after chain execution |

Combine transaction records with [Audit and Activity Logs](/products/agentic-wallet/manual/developer/audit) when you need both execution status and policy/approval history.
