---
title: getSupply
description: >-
  Returns total, circulating, and non-circulating supply data.
url: /docs/rpc/http/getsupply
type: reference
hideTableOfContents: true
---

Returns total, circulating, and non-circulating supply data.

<Callout type="info" title="Source">
  [`get_supply`](https://github.com/anza-xyz/agave/blob/v3.1.8/rpc/src/rpc.rs#L1105)
</Callout>

<APIMethod>

```jsonc !!request curl
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getSupply",
  "params": [
    // !hover(1:3) config
    {
      // !hover commitment
      "commitment": "finalized"
    }
  ]
}
```

```ts !!request title="Kit"
import { createSolanaRpc } from "@solana/kit";

const rpc_url = "https://api.devnet.solana.com";
const rpc = createSolanaRpc(rpc_url);

let supply = await rpc.getSupply().send();

console.log(supply);
```

```ts !!request title="web3.js"
import { Connection, clusterApiUrl } from "@solana/web3.js";

const connection = new Connection(clusterApiUrl("devnet"), "confirmed");

let supply = await connection.getSupply();

console.log(supply);
```

### !params

#### !! config

!type object  
!optional

Configuration object containing the following fields:

##### !! commitment

!type string  
!values processed confirmed finalized  
!default finalized

Solana RPC uses the following commitment levels:

| Value       | Description                                                                                                                                                                                                                                                                |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `processed` | Return data from the highest slot this node has processed on the fork it currently considers best. This is the newest view, but it can still change if the cluster switches forks.                                                                                         |
| `confirmed` | Return data from the highest slot that at least two-thirds of active stake has directly voted to confirm. This is more stable than `processed`, but it is still a weaker guarantee than `finalized`.                                                                       |
| `finalized` | Return data from the highest slot that the cluster recognizes as finalized. In practice, this means the slot has reached maximum vote lockout in validators' vote towers and is recognized by at least two-thirds of active stake. This is the strongest commitment level. |

##### !! excludeNonCirculatingAccountsList

!type bool  
!values true false  
!default false

Exclude non circulating accounts list from response

```json title="Example"
{ "excludeNonCirculatingAccountsList": true }
```

### !!result

```jsonc !response
{
  "jsonrpc": "2.0",
  // !hover(1:14) result
  "result": {
    // !hover context
    "context": { "apiVersion": "3.1.8", "slot": 1114 },
    // !hover(1:11) value
    "value": {
      "total": 1016000,
      "circulating": 16000,
      "nonCirculating": 1000000,
      "nonCirculatingAccounts": [
        "FEy8pTbP5fEoqMV1GdTz83byuA8EKByqYat1PKDgVAq5",
        "9huDUZfxoJ7wGMTffUE7vh1xePqef7gyrLJu9NApncqA",
        "3mi1GmwEE3zo2jmfDuzvjSX9ovRXsDUKHvsntpkhuLJ9",
        "BYxEJTDerkaRWBem3XgnVcdhppktBXa2HbkHPKj2Ui4Z"
      ]
    }
  },
  "id": 1
}
```

!type object

RpcResponse object containing:

#### !! context

!type object

Slot and API version the node used to answer this request.

| Field        | Type     | Description                                                                     |
| ------------ | -------- | ------------------------------------------------------------------------------- |
| `slot`       | `u64`    | Slot at which the node evaluated this request.                                  |
| `apiVersion` | `string` | RPC API version reported by the node. This field may be omitted by older nodes. |

#### !! value

!type object

Supply object with the following fields:

| Field                    | Type    | Description                                                                                                                                        |
| ------------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `circulating`            | `u64`   | Circulating supply, in lamports.                                                                                                                   |
| `nonCirculating`         | `u64`   | Non-circulating supply, in lamports.                                                                                                               |
| `nonCirculatingAccounts` | `array` | Account addresses of non-circulating accounts, as base-58 encoded strings. If `excludeNonCirculatingAccountsList` is enabled, this array is empty. |
| `total`                  | `u64`   | Total supply, in lamports.                                                                                                                         |

</APIMethod>
