Feature inventory API for token-feature rollups
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 | 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. The rollup covers the active system only.
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 reference. Use that section to read what a given feature does before you act on its count.
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
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.
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"{
"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
| 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
| 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
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
latestAttachedAtor sorting by recency. - Build an operator dashboard that shows feature coverage across the asset estate.
To read what each feature does, see Token features. To understand how the active organisation and system bound every read, see Organization and system scope.
Organization settings
Read, list, create, update, and delete an organization's key-value settings through the DALP Platform API, including the base currency, system address, target currencies, and account abstraction toggle.
Token lifecycle API
How to sequence API calls for token creation, minting, transfers, burns, feature detach, and event reconciliation with safe idempotent retries.