Token treasury health
Read treasury funding readiness for maturity-redemption and fixed-treasury-yield features.
Token treasury health returns one funding-readiness badge for a token that uses maturity-redemption or fixed-treasury-yield features. DALP combines indexed allowance ceilings, treasury implementation classification, and a live ERC-20 balance read so an integration can show whether the treasury looks ready for the next redemption or yield obligation.
Use this endpoint as an operational readiness read. It does not move funds, approve allowances, guarantee legal availability of treasury assets, or replace the operator's funding and custody controls.
Read treasury health
Call the endpoint with the token address in the path:
curl "https://your-platform.example.com/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/treasury/health" \
-H "X-Api-Key: sm_dalp_xxxxxxxxxxxxxxxx"A green response means the configured treasury balance covers the projected next-period need and any applicable indexed allowance ceilings are satisfied:
{
"data": {
"approvals": [
{
"kind": "maturity-redemption",
"featureAddress": "0x71c7656ec7ab88b098defb751b7401b5f6d8976f",
"treasury": "0x8ba1f109551bd432803012645ac136ddd64dba72",
"denominationAsset": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"allowance": "1000.00",
"required": "1000.00",
"satisfied": true
}
],
"implementation": {
"treasuryIsContract": false
},
"availableBalance": "1250.00",
"projectedNeed": "1000.00",
"status": "green",
"reason": null,
"measuredAt": "2026-05-23T22:13:25Z"
},
"links": {
"self": "/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/treasury/health"
}
}What the status means
| Status | Meaning | Operator action |
|---|---|---|
green | Approval ceilings are satisfied, or they do not apply, and the live treasury balance covers the projected need. | Continue with the funding-dependent operation after your normal review checks. |
yellow | Approval ceilings are satisfied, or they do not apply, but the live balance is below the projected need. | Fund the treasury or update the expected redemption or yield setup before relying on the next payout. |
red | At least one applicable allowance row is below its required ceiling. | Update the ERC-20 allowance from the treasury to the feature contract before treating the treasury as ready. |
Allowance rows apply to externally owned treasury wallets. Contract or vault treasuries, and treasuries that the indexer has not classified yet, fall through to the balance check instead of forcing a red status.
Fields
| Field | Type | Notes |
|---|---|---|
approvals[] | array | One row for each maturity-redemption or fixed-treasury-yield feature that needs an allowance ceiling check. Empty when neither feature is attached. |
approvals[].kind | string | maturity-redemption or fixed-treasury-yield. |
approvals[].featureAddress | address | Feature contract that holds the allowance ceiling. |
approvals[].treasury | address | Treasury wallet measured for the feature. |
approvals[].denominationAsset | address | ERC-20 asset used for the allowance and balance check. |
approvals[].allowance | decimal string | Indexed treasury-to-feature ERC-20 allowance, scaled by the denomination asset decimals. |
approvals[].required | decimal string | Required allowance ceiling for the feature, scaled by the denomination asset decimals. |
approvals[].satisfied | boolean | true when the indexed allowance is greater than or equal to the required ceiling. |
implementation.treasuryIsContract | boolean or null | true for a contract treasury, false for an externally owned account, and null when the indexer has not classified the treasury yet. |
availableBalance | decimal string | Live balanceOf(treasury) for the resolved denomination asset. This is the endpoint's only live on-chain read. |
projectedNeed | decimal string | Projected next-period denomination need for the next scheduled redemption or unclaimed yield. |
status | string | green, yellow, or red. |
reason | string or null | Human-readable reason for a non-green result. null when the status is green. |
measuredAt | timestamp | Server timestamp captured immediately after the live balance read. |
When to call it
Call treasury health before an operator depends on redemption or yield funding being ready:
- Read the token and attached features.
- Call
GET /api/v2/tokens/{tokenAddress}/treasury/health. - If the response is yellow, fund the treasury before relying on the next payout.
- If the response is red, update the treasury allowance for the feature contract and call the endpoint again.
- Re-check the relevant token feature, holder, or event endpoint after the funding operation completes.
For maturity-redemption setup and redemption events, see maturity redemption and token lifecycle. For fixed treasury yield setup, see fixed treasury yield. For broader feed-based valuation, see token price resolution.
Failure cases
The endpoint fails closed when a single badge would be misleading. Common setup failures include:
| Condition | Result | Fix |
|---|---|---|
| The resolved treasury is the zero address. | The API returns an error instead of a green, yellow, or red badge. | Configure a non-zero treasury wallet for the bond or yield feature, then call the endpoint again. |
The live balanceOf(treasury) read fails. | The API returns an upstream dependency error. | Retry after the chain provider is reachable, then verify the RPC endpoint and denomination asset if the failure persists. |
| Maturity-redemption and fixed-treasury-yield resolve to different treasury, denomination asset, or implementation values on the same token. | The API refuses to compose one treasury badge. | Align the feature treasury configuration or read each feature's setup before presenting a combined status. |