# List Transactions

Page through the authenticated user's blockchain transaction records, newest first.

## Overview

Returns the transaction records the API holds for the authenticated user — sends created with [Create Transaction](https://docs.aureahub.com/docs/tx-create.md) as well as other on-chain records such as receives and swaps — ordered by creation time, newest first. Only mainnet records are returned unless you pass `isTestnet=true`. For a feed that also includes bank ramp fiat activity, use the [Unified Transaction Feed](https://docs.aureahub.com/docs/agg-tx-list.md).

> ℹ️ `status` is one of `pending`, `confirmed`, `failed` or `cancelled`. Stored statuses are refreshed by [Get Tx Status](https://docs.aureahub.com/docs/tx-status.md) and by a background job, so a listed status can trail the chain.

## Endpoint

### `GET /v1/transactions/`

Authentication: bearer token required.

Returns the authenticated user's transaction records with page-based pagination.

**Query parameters**

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `page` | integer | no | Page number, starting at 1. Default `1`. |
| `limit` | integer | no | Results per page, 1–100. Default `20`. |
| `walletId` | string (uuid) | no | Only records of this wallet. |
| `chain` | string | no | Only records on this chain. |
| `type` | string | no | `send`, `receive`, `swap`, `noah_payin` or `noah_payout`. See **Filters** before relying on it. |
| `status` | string | no | `pending`, `confirmed`, `failed` or `cancelled`. |
| `isTestnet` | boolean | no | `true` for testnet records, `false` for mainnet. Default `false`. |

**Responses**

`200` OK

```json
{
  "data": [
    {
      "id": "0b9d4c1e-3f6a-4b8e-9d2c-7a5e1f3b6c90",
      "txHash": "0x7f3a…",
      "chain": "gnosis",
      "type": "send",
      "status": "confirmed",
      "fromAddress": "0x2f4B…",
      "toAddress": "0x52908400098527886E0F7030069857D2E4169EE7",
      "token": { "address": null, "symbol": "xDAI", "name": null, "decimals": 18 },
      "amount": "10000000000000000",
      "amountUsd": null,
      "amountEur": null,
      "fee": { "amount": "21000000000000", "usd": null },
      "gasUsed": "21000",
      "gasPrice": null,
      "blockNumber": "41234567",
      "blockTimestamp": "2026-09-11T10:00:15.000Z",
      "createdAt": "2026-09-11T10:00:00.000Z",
      "updatedAt": "2026-09-11T10:01:00.000Z"
    }
  ],
  "pagination": { "page": 1, "limit": 20, "total": 1, "totalPages": 1 }
}
```

The fields of each record are described on [Get Transaction](https://docs.aureahub.com/docs/tx-get.md). A `page` or `limit` outside its range, or an unknown `type` or `status` value, is rejected with `400`.

## Filters

- `walletId`, `chain` and `status` match exactly.
- `isTestnet` returns either testnet or mainnet records, never both.
- `type`: in the current API source every accepted value is translated to the stored record type `transfer`, which is the type used for native-coin sends and receives. With `type` set, token transfers and swaps are not returned, and `send` and `receive` return the same records. To tell sends from receives, compare `fromAddress` with your wallet address, or use the Unified Transaction Feed, whose item types distinguish them.

## Implementation

```javascript
async function listTransactions(token, { walletId, status, page = 1, limit = 20 } = {}) {
  const params = new URLSearchParams({ page: String(page), limit: String(limit) });
  if (walletId) params.set('walletId', walletId);
  if (status) params.set('status', status);

  const res = await fetch('https://api.aureahub.com/v1/transactions/?' + params, {
    headers: { Authorization: 'Bearer ' + token },
  });
  if (!res.ok) throw new Error('List failed: ' + res.status);
  return res.json(); // { data, pagination: { page, limit, total, totalPages } }
}

// Walk every page
async function* allTransactions(token, filters = {}) {
  for (let page = 1; ; page++) {
    const { data, pagination } = await listTransactions(token, { ...filters, page, limit: 100 });
    yield* data;
    if (page >= pagination.totalPages) return;
  }
}

for await (const tx of allTransactions(token, { status: 'pending' })) {
  console.log(tx.id, tx.chain, tx.amount);
}
```

---

Web version: https://docs.aureahub.com/#tx-list
