# List Assets

Your tenant's assets on every chain and network — its own, and the catalogue's on the chains where it lists none —, each with its key, your metadata and the last reading of its contract.

## Overview

- `assets`: your tenant's own assets first — every chain and network, active or not, `source` `tenant` —, then Aurea's catalogue's active assets on the chains where your tenant lists none of its own, `source` `catalogue`: the assets your tenant uses there. Each part by network (mainnet first), chain, native coin first, then symbol. What each field means: [Asset & Chain Registry](https://docs.aureahub.com/docs/guide-asset-registry.md).
- **Filters**, all optional, add up. `chainId`: a chain id the Hub supports, which names the chain and its network — another answers `400` `ASSET_CHAIN_UNKNOWN`, and with an `isTestnet` that is not its network the page is empty. `family`: `evm`, `solana`… `type`: `native` or `token`. `active` `false`: your inactive assets only — the catalogue's are all active. `symbol`: exactly that symbol, in any letter case.
- **Pages**: `offset` (from 0) and `limit` (1–500, default 100); `total` counts every asset that passes the filters.
- A query parameter that is not one of these, or a value of the wrong form, answers `400` `ASSET_REQUEST_INVALID`, each problem in `details.errors`.
- For `owner`, `tenantadmin`, `non_signing_admin`, `signer`, `approver`, `editor`, `viewer` and `auditor`, on their own tenant, with their access token.

## Endpoint

### `GET /v1/assets`

Authentication: bearer token required.

Your tenant's assets — its own, and the catalogue's where it lists none — filtered and paged.

**Query parameters**

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `chainId` | integer | no | Only this chain id — which names the network, e.g. `8453` Base, `84532` Base Sepolia |
| `family` | string | no | `evm`, `solana`… |
| `isTestnet` | boolean | no | Only this network |
| `source` | string | no | `tenant` or `catalogue` |
| `type` | string | no | `native` or `token` |
| `active` | boolean | no | `false`: your inactive assets only |
| `symbol` | string | no | Exactly this symbol, in any letter case; 1–20 characters |
| `offset` | integer | no | Assets to skip; default 0 |
| `limit` | integer | no | 1–500, default 100 |

**Responses**

`200` OK

```json
{
  "assets": [
    {
      "assetId": "7e5df737-88f9-4c90-8fc8-0f70429c2d17",
      "assetKey": "evm:8453:0xdbfbe194c514a645bb0fcb5230adaf85efea3fe7",
      "policyAsset": "base:0xdbfbe194c514a645bb0fcb5230adaf85efea3fe7",
      "family": "evm",
      "chain": "base",
      "chainId": 8453,
      "isTestnet": false,
      "type": "token",
      "address": "0xdBfbe194c514a645Bb0FCb5230aDaF85EFea3fe7",
      "symbol": "GBND31",
      "name": "Green Bond 2031",
      "decimals": 6,
      "logoUri": "https://cdn.example.com/tokens/gbnd31.png",
      "coingeckoId": null,
      "isActive": true,
      "source": "tenant",
      "registeredVia": "registry",
      "metadata": {
        "desk": "treasury",
        "isin": "XS2964021187"
      },
      "contractCheck": {
        "result": "matched",
        "checkedAt": "2026-10-14T09:12:40.517Z"
      },
      "createdAt": "2026-10-14T09:12:40.517Z",
      "updatedAt": "2026-10-14T09:12:40.517Z"
    },
    {
      "assetId": "c143eae8-f636-41ce-860a-6e781ed1c6d1",
      "assetKey": "evm:42161:native",
      "policyAsset": "arbitrum:native",
      "family": "evm",
      "chain": "arbitrum",
      "chainId": 42161,
      "isTestnet": false,
      "type": "native",
      "address": null,
      "symbol": "ETH",
      "name": "Ether",
      "decimals": 18,
      "logoUri": null,
      "coingeckoId": "ethereum",
      "isActive": true,
      "source": "catalogue",
      "registeredVia": null,
      "metadata": null,
      "contractCheck": null,
      "createdAt": "2026-10-01T07:30:12.204Z",
      "updatedAt": "2026-10-01T07:30:12.204Z"
    }
  ],
  "total": 38,
  "offset": 0,
  "limit": 2
}
```

`400` Unknown chain

```json
{
  "statusCode": 400,
  "error": "BadRequestError",
  "message": "Chain 12345 is no chain the Hub supports",
  "details": { "code": "ASSET_CHAIN_UNKNOWN", "chainId": 12345 }
}
```

`400` Form

```json
{
  "statusCode": 400,
  "error": "BadRequestError",
  "message": "Invalid request",
  "details": {
    "code": "ASSET_REQUEST_INVALID",
    "errors": ["limit: Number must be less than or equal to 500"]
  }
}
```

**Example request**

```bash
curl "https://api.aureahub.com/v1/assets?isTestnet=false&limit=2" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
```

---

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