# Feature inventory API for token-feature rollups

Source: https://docs.settlemint.com/docs/api-reference/reference/feature-inventory
Read the active system's per-feature attachment rollup through the DALP Platform API. See which token-feature capabilities are live, how many tokens carry each, and when each was last attached.



A feature inventory answers one question an operator or auditor asks across a whole asset estate: which token-feature capabilities are live right now, and how widely. Each token in a system can carry features such as a transaction fee, a maturity redemption, or fixed treasury yield. Counting that by hand across many tokens is slow and error-prone. This endpoint returns the rollup directly, so you read one row per feature type, with the number of distinct tokens carrying it and the most recent time it was attached.

The surface is read-only. It reports what is already attached on chain and indexed. It does not attach features or change any token.

## Endpoint [#endpoint]

| Endpoint                               | Use it for                                                                        |
| -------------------------------------- | --------------------------------------------------------------------------------- |
| `GET /api/v2/system/feature-inventory` | List the active system's per-feature attachment rollup, one row per feature type. |

The response uses the collection envelope with `data`, `meta`, and pagination `links`. The active organisation and system context bound the read, as described in [Organization and system scope](/docs/api-reference/reference/organization-system-scope). The rollup covers the active system only.

## Response fields [#response-fields]

Each row describes one token-feature type and how it is used across the system.

| Field                | Type             | Description                                                                                                                            |
| -------------------- | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `featureTypeId`      | string           | The canonical token-feature type identifier, such as `transaction-fee` or `fixed-treasury-yield`.                                      |
| `attachedTokenCount` | number           | The number of distinct tokens in the active system that currently carry a live attachment of this feature.                             |
| `latestAttachedAt`   | string or `null` | The timestamp of the most recent live attachment across all tokens, or `null` when the feature has never been attached in this system. |

`featureTypeId` matches the identifier used for each capability in the [Token features](/docs/api-reference/token-features) reference. Use that section to read what a given feature does before you act on its count.

## Feature types [#feature-types]

The inventory reports these feature types. A feature appears in the response only when at least one token in the system carries it, so a feature with no attachments is absent rather than returned with a zero count.

| Feature type                 | Capability                                      |
| ---------------------------- | ----------------------------------------------- |
| `aum-fee`                    | Assets-under-management fee accrual.            |
| `transaction-fee`            | Per-transfer fee collection.                    |
| `transaction-fee-accounting` | Accounting records for collected transfer fees. |
| `external-transaction-fee`   | Transfer fees routed to an external collector.  |
| `maturity-redemption`        | Redemption of a token at maturity.              |
| `conversion`                 | Conversion of one token into another.           |
| `conversion-minter`          | Minting tied to a conversion.                   |
| `fixed-treasury-yield`       | Scheduled fixed yield paid from a treasury.     |
| `historical-balances`        | Snapshotted balances for point-in-time reads.   |
| `voting-power`               | Governance voting weight derived from balances. |
| `metadata`                   | On-chain metadata extension.                    |
| `permit`                     | Signature-based approvals.                      |

## List the feature inventory [#list-the-feature-inventory]

`GET /api/v2/system/feature-inventory` returns the rollup ordered by the most recent attachment first.

The endpoint supports pagination, sorting, filtering, faceted counts, and global search. The default sort is `latestAttachedAt` descending, so the features attached most recently appear first. A feature that has never been attached sorts last because its `latestAttachedAt` is `null`.

```bash
curl --globoff "https://your-platform.example.com/api/v2/system/feature-inventory?sort=-latestAttachedAt&page[limit]=50&page[offset]=0" \
  -H "x-api-key: YOUR_API_KEY"
```

```json
{
  "data": [
    {
      "featureTypeId": "transaction-fee",
      "attachedTokenCount": 3,
      "latestAttachedAt": "2026-05-22T11:23:45.000Z"
    },
    {
      "featureTypeId": "aum-fee",
      "attachedTokenCount": 1,
      "latestAttachedAt": "2026-05-18T08:02:10.000Z"
    }
  ],
  "meta": {
    "total": 2,
    "facets": {
      "featureTypeId": [
        { "value": "transaction-fee", "count": 1 },
        { "value": "aum-fee", "count": 1 }
      ]
    }
  },
  "links": {
    "self": "/v2/system/feature-inventory?sort=-latestAttachedAt&page[limit]=50&page[offset]=0",
    "first": "/v2/system/feature-inventory?sort=-latestAttachedAt&page[limit]=50&page[offset]=0",
    "prev": null,
    "next": null,
    "last": "/v2/system/feature-inventory?sort=-latestAttachedAt&page[limit]=50&page[offset]=0"
  }
}
```

## Filtering and sorting [#filtering-and-sorting]

| Field                | Filter                                  | Sort | Notes                                                                                                              |
| -------------------- | --------------------------------------- | ---- | ------------------------------------------------------------------------------------------------------------------ |
| `featureTypeId`      | `filter[featureTypeId]=transaction-fee` | No   | Exact match on a feature type. Faceted, so `meta.facets` reports the per-type breakdown of the current result set. |
| `attachedTokenCount` | `filter[attachedTokenCount][gte]=1`     | Yes  | Numeric. Filter to features above a threshold, or sort by adoption.                                                |
| `latestAttachedAt`   | `filter[latestAttachedAt][gte]=...`     | Yes  | Date. Filter by attachment time, or sort by recency. Use ISO 8601 UTC timestamps.                                  |

Global search with `filter[q]` matches against the feature type identifier. Sort with `sort=<field>` for ascending order, or `sort=-<field>` for descending. Page with `page[offset]` and `page[limit]`; the default page size is 50 and the maximum is 200.

Sort by `attachedTokenCount` descending to rank features by adoption across the estate. Filter `attachedTokenCount` with `gte` to list only features that are actually in use.

## Errors [#errors]

| Status | Error                 | When it happens                                                                                                                           |
| ------ | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `404`  | `SYSTEM_NOT_DEPLOYED` | The active organisation has no indexed system deployment, so there is nothing to roll up. Deploy a system, wait for indexing, then retry. |

## When to use it [#when-to-use-it]

Use this endpoint when you need to:

* Audit which token-feature capabilities are live across the whole system in one call, rather than inspecting tokens one at a time.
* Rank features by adoption, by sorting on `attachedTokenCount`.
* Spot recently introduced capabilities, by reading `latestAttachedAt` or sorting by recency.
* Build an operator dashboard that shows feature coverage across the asset estate.

To read what each feature does, see [Token features](/docs/api-reference/token-features). To understand how the active organisation and system bound every read, see [Organization and system scope](/docs/api-reference/reference/organization-system-scope).
