# System asset statistics

Source: https://docs.settlemint.com/docs/api-reference/tokens/system-asset-statistics
Read the asset count, value breakdown, and creation and activity trends for a DALP system through the Platform API, as current figures or as time series for dashboards and reporting.



A team reporting on a tokenization programme needs a clear count of what the programme has issued, where its value sits, and how that picture is changing. The system asset statistics endpoints answer all three from the indexed ledger, so a dashboard or a board report reads each figure directly instead of listing every asset and adding it up by hand.

These endpoints sit alongside the [system value and transaction statistics](/docs/api-reference/tokens/system-value-transaction-statistics). The value and transaction reads answer "how much is the programme worth and how active is it." The endpoints on this page answer "how many assets exist, of what kind, and how is that set growing and moving." All of them read the active system from the request context.

## Three reads on one surface [#three-reads-on-one-surface]

The endpoints fall into three groups. Reach for the one that matches the question you are answering.

* **Asset snapshot** reports the current count and value of issued assets, broken down by type and by asset class. Use it for a headline tile or a programme summary.
* **Asset lifecycle** reports created and launched asset counts over time as a cumulative series. Use it to chart how the programme has grown.
* **Asset activity** reports transfer, mint, and burn event counts over time. Use it to chart how busy the programme is.

The lifecycle and activity reads each come in two variants: a range variant where your dashboard supplies the window, and a preset variant where DALP resolves a trailing window from the current time.

## Endpoints [#endpoints]

| Endpoint                                                          | Use it for                                                              |
| ----------------------------------------------------------------- | ----------------------------------------------------------------------- |
| `GET /api/v2/system/stats/assets`                                 | The current asset count and value breakdown for the active system.      |
| `GET /api/v2/system/stats/asset-lifecycle-ranges`                 | Created and launched asset counts over a custom `from` and `to` window. |
| `GET /api/v2/system/stats/asset-lifecycle-range-presets/{preset}` | Created and launched asset counts over a predefined trailing window.    |
| `GET /api/v2/system/stats/asset-activity-ranges`                  | Transfer, mint, and burn counts over a custom `from` and `to` window.   |
| `GET /api/v2/system/stats/asset-activity-range-presets/{preset}`  | Transfer, mint, and burn counts over a predefined trailing window.      |

Each endpoint returns a JSON:API single-resource envelope with `data` and `links.self`. Reads run against the active system from the request context, so a caller with assets in more than one DALP system reads one system per request. Every figure reports the whole active system, not the caller's own holdings.

## Prerequisites [#prerequisites]

Use an authenticated organization context with an active system. Server integrations authenticate with the `X-Api-Key` header shown in the examples. Browser or RPC integrations use an authenticated user session through the standard cookie or authorization flow.

The value figures are denominated in the organization's base currency. DALP converts each asset from its denomination currency using indexed feed rates and rounds the result for the response, so you display the returned value without applying another conversion.

## Read the asset snapshot [#read-the-asset-snapshot]

The asset snapshot endpoint returns the current counts and value breakdown for the active system. It takes no query parameters.

```bash
curl --request GET \
  "$DALP_API_URL/api/v2/system/stats/assets" \
  --header "X-Api-Key: $DALP_API_TOKEN"
```

```json
{
  "data": {
    "totalAssets": 12,
    "assetBreakdown": {
      "bond": 5,
      "stablecoin": 4,
      "equity": 3
    },
    "totalValue": "5000000.00",
    "valueBreakdown": {
      "bond": "3200000.00",
      "stablecoin": "1500000.00",
      "equity": "300000.00"
    },
    "valueBreakdownByClass": {
      "fixed-income": "3200000.00",
      "cash-equivalent": "1500000.00",
      "equity": "300000.00"
    },
    "tokensCreatedCount": 12,
    "tokensLaunchedCount": 9,
    "pendingLaunchesCount": 3,
    "conversionReliable": true
  },
  "links": {
    "self": "/v2/system/stats/assets"
  }
}
```

| Field                   | Meaning                                                                        |
| ----------------------- | ------------------------------------------------------------------------------ |
| `totalAssets`           | Count of issued assets in the active system.                                   |
| `assetBreakdown`        | Asset count keyed by asset type.                                               |
| `totalValue`            | Combined value of all indexed assets, in the org base currency.                |
| `valueBreakdown`        | Value keyed by asset type, in the org base currency.                           |
| `valueBreakdownByClass` | Value keyed by asset class, in the org base currency.                          |
| `tokensCreatedCount`    | Assets that have been created. Equal to `totalAssets`.                         |
| `tokensLaunchedCount`   | Assets that have been launched and are live for transfers.                     |
| `pendingLaunchesCount`  | Created assets not yet launched, the difference between created and launched.  |
| `conversionReliable`    | `false` when one or more feed rates used in the conversion fell back to unity. |

Treat `conversionReliable` as a quality signal on the value figures. When it is `false`, at least one asset's currency conversion used a fallback rate rather than a live feed rate, so the totals are an estimate rather than a fully feed-backed number. When the system holds no indexed value yet, `totalValue` is `0.00` and the breakdowns are empty.

## Read the asset lifecycle trend [#read-the-asset-lifecycle-trend]

The lifecycle endpoints return created and launched asset counts over time, so a dashboard can chart how the programme has grown rather than read a single instant. Use the range endpoint when your dashboard supplies the window, and the preset endpoint when DALP should resolve the window from the current time.

`interval` accepts `hour` or `day`. `from` and `to` are timestamps, and `from` must be before or equal to `to`.

```bash
curl --request GET \
  "$DALP_API_URL/api/v2/system/stats/asset-lifecycle-ranges?interval=day&from=2026-06-01T00:00:00.000Z&to=2026-06-08T00:00:00.000Z" \
  --header "X-Api-Key: $DALP_API_TOKEN"
```

The preset variant resolves both the window and the interval for you, so you name a trailing window rather than supply timestamps. Each preset fixes its own interval:

| Preset            | Interval |
| ----------------- | -------- |
| `trailing24Hours` | `hour`   |
| `trailing7Days`   | `day`    |

```bash
curl --request GET \
  "$DALP_API_URL/api/v2/system/stats/asset-lifecycle-range-presets/trailing7Days" \
  --header "X-Api-Key: $DALP_API_TOKEN"
```

Both variants return the same shape: the resolved range and a cumulative series.

```json
{
  "data": {
    "range": {
      "interval": "day",
      "from": "2026-06-01T00:00:00.000Z",
      "to": "2026-06-08T00:00:00.000Z",
      "isPreset": false
    },
    "data": [
      {
        "timestamp": "2026-06-01T00:00:00.000Z",
        "assetsCreated": 8,
        "assetsLaunched": 6
      },
      {
        "timestamp": "2026-06-02T00:00:00.000Z",
        "assetsCreated": 10,
        "assetsLaunched": 7
      }
    ]
  },
  "links": {
    "self": "/v2/system/stats/asset-lifecycle-ranges"
  }
}
```

`range` reports the window DALP actually used. `isPreset` is `true` for a preset request and `false` for a custom range. DALP clamps a `to` that is in the future to the current time, so the resolved range can differ from a window you sent. `assetsCreated` and `assetsLaunched` accumulate, so each point is the running total up to and including that bucket. The first bucket carries the totals from before the window, which keeps the line continuous when you chart a window that starts after the programme began.

## Read the asset activity trend [#read-the-asset-activity-trend]

The activity endpoints return transfer, mint, and burn event counts over time, so a dashboard can chart how busy the programme is. They take the same `interval`, `from`, and `to` parameters and the same presets as the lifecycle endpoints.

```bash
curl --request GET \
  "$DALP_API_URL/api/v2/system/stats/asset-activity-ranges?interval=day&from=2026-06-01T00:00:00.000Z&to=2026-06-08T00:00:00.000Z" \
  --header "X-Api-Key: $DALP_API_TOKEN"
```

```bash
curl --request GET \
  "$DALP_API_URL/api/v2/system/stats/asset-activity-range-presets/trailing24Hours" \
  --header "X-Api-Key: $DALP_API_TOKEN"
```

```json
{
  "data": {
    "range": {
      "interval": "day",
      "from": "2026-06-01T00:00:00.000Z",
      "to": "2026-06-08T00:00:00.000Z",
      "isPreset": false
    },
    "data": [
      {
        "timestamp": "2026-06-01T00:00:00.000Z",
        "transferEventsCount": 42,
        "mintEventsCount": 5,
        "burnEventsCount": 1
      },
      {
        "timestamp": "2026-06-02T00:00:00.000Z",
        "transferEventsCount": 37,
        "mintEventsCount": 2,
        "burnEventsCount": 0
      }
    ]
  },
  "links": {
    "self": "/v2/system/stats/asset-activity-ranges"
  }
}
```

Unlike the lifecycle series, the activity counts report the events within each bucket rather than a running total, so each point stands alone. DALP fills every bucket in the resolved range, so a quiet bucket reports zero counts rather than dropping out of the series.

## Choose the right scope [#choose-the-right-scope]

These endpoints always report the active system as a whole, regardless of the caller. That makes them the system-wide counterpart to the participant-scoped reads.

| Question                                                | Endpoint                                                                                                  |
| ------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| How many assets exist and what are they worth?          | [Asset snapshot](#read-the-asset-snapshot)                                                                |
| How has the asset set grown over time?                  | [Asset lifecycle trend](#read-the-asset-lifecycle-trend)                                                  |
| How much transfer, mint, and burn activity is there?    | [Asset activity trend](#read-the-asset-activity-trend)                                                    |
| What does one participant hold?                         | [Portfolio statistics](/docs/api-reference/tokens/portfolio-statistics)                                   |
| What is the whole programme worth and how active is it? | [System value and transaction statistics](/docs/api-reference/tokens/system-value-transaction-statistics) |

## Related [#related]

* [System value and transaction statistics](/docs/api-reference/tokens/system-value-transaction-statistics) for total system value and transfer activity.
* [Portfolio statistics](/docs/api-reference/tokens/portfolio-statistics) for the authenticated participant's portfolio value and asset-type breakdown.
* [Token volume statistics](/docs/api-reference/tokens/token-volume-statistics) for per-token transfer volume.
* [Getting started with API integration](/docs/api-reference/reference/getting-started)
