> For the complete documentation index, see [llms.txt](https://igra-labs.gitbook.io/igralabs-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://igra-labs.gitbook.io/igralabs-docs/igra-token/circulating-supply.md).

# Circulating Supply

## API endpoint

```
GET https://apis.igralabs.com/igra-token
```

Returns `maxSupply`, `totalSupply`, `circulatingSupply`, and `nonCirculatingAddresses[]` with a `description` per address.

This endpoint is authoritative.

## Exclusion rule

Each excluded address and its reason is listed in the `nonCirculatingAddresses` response.

{% hint style="info" %}
**Excluded is not the same as locked.** Two kinds of address are excluded:

* **Contractually restricted** — tokens that cannot be moved freely: attester stake in the Attestation Diamond, and vesting allocations held in VestingPools and its PoolStakes beneficiary contracts.
* **Protocol-controlled** — held by Igra entities and not in public float: Association Treasury, Association Reimbursement Safe, Igra Team, DAO Governor, StakeRewardsController, ContinuousClearingAuction.

Not excluded, and deliberately so: IGRA in DEX liquidity pools, and IGRA deposited into third-party protocols such as Lynx liquid staking. Those are public float.
{% endhint %}

The exclusion set follows the vesting beneficiaries. When a pool's beneficiary changes, the new address is added. Always read the live list from the API rather than hardcoding it.
