# Supported Chains (Token Meta)

Retrieve the authoritative runtime list of chain identifiers enabled for your tenant. Aurea is cross-chain by design — any blockchain network or token in the market can be added upon request.

## Overview

Use this endpoint to dynamically populate chain dropdowns in your UI instead of hardcoding the chain list. This ensures that if new chains are added to your tenant's token registry, your application picks them up automatically without a code change.

> 💡 The chains returned are the ones currently enabled for your tenant. Aurea supports **any blockchain network and any token** in the market — contact us to expand your tenant's chain coverage.

### `GET /v1/tokens/meta/chains`

Lists chains that have an enabled blockchain config and at least one active token for the caller's tenant (the system tenant when no bearer token is sent).

**Responses**

`200` OK

```json
{
  "chains": [
    { "id": "gnosis", "name": "Gnosis", "chainId": 100, "nativeToken": { "symbol": "xDAI", "name": "xDAI", "decimals": 18 } }
  ]
}
```

## Implementation

```javascript
// Fetch supported chains at app startup and cache them
let supportedChains = null;

async function getSupportedChains(token) {
  if (supportedChains) return supportedChains; // Use cached value

  const res = await fetch(
    'https://api.aureahub.com/v1/tokens/meta/chains',
    { headers: { Authorization: `Bearer ${token}` } }
  );
  const { chains } = await res.json();
  supportedChains = chains; // Cache for the session
  return chains;
}

// Populate a chain <select> dropdown dynamically
async function populateChainSelect(token, selectEl) {
  const chains = await getSupportedChains(token);
  selectEl.innerHTML = chains
    .map(c => `<option value="${c.id}">${c.name}</option>`)
    .join('');
}
```

---

Web version: https://docs.aureahub.com/#tokens-chains
