# Yield coverage statistics

Source: https://docs.settlemint.com/docs/developer-guides/api-integration/yield-coverage-statistics
Read indexed yield funding and allowance coverage for a fixed-treasury-yield token through the DALP API.



Yield coverage statistics show whether a token's configured yield schedule has enough denomination asset balance and wallet allowance for holder claims. Use this endpoint before prompting a treasury wallet to approve allowance or when building monitoring around fixed treasury yield programmes.

## Read yield coverage [#read-yield-coverage]

Call the token statistics endpoint with the token address in the path.

```bash
curl "https://your-platform.example.com/api/v2/tokens/0xTOKEN/stats/yield-coverage" \
  -H "X-Api-Key: sm_dalp_xxxxxxxxxxxxxxxx"
```

The response uses the single-resource envelope:

```json
{
  "data": {
    "yieldCoverage": 150,
    "hasYieldSchedule": true,
    "isRunning": true,
    "totalUnclaimedYield": "500.000000000000000000",
    "denominationAssetBalance": "750.000000000000000000",
    "denominationAssetTreasuryAllowance": "2000.000000000000000000",
    "allowanceCoveredPercentage": "100",
    "requiredAllowance": "2000.000000000000000000",
    "treasuryIsContract": false,
    "treasuryAddress": "0x1111111111111111111111111111111111111111",
    "scheduleAddress": "0x2222222222222222222222222222222222222222"
  },
  "links": {
    "self": "/v2/tokens/0xTOKEN/stats/yield-coverage"
  }
}
```

## Fields [#fields]

| Field                                | Type            | Notes                                                                                                                                           |
| ------------------------------------ | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| `tokenAddress`                       | path string     | Token contract address.                                                                                                                         |
| `yieldCoverage`                      | number          | Percentage of total unclaimed yield covered by the available denomination asset balance. Values can exceed 100 when the treasury is overfunded. |
| `hasYieldSchedule`                   | boolean         | Whether DALP has indexed a yield schedule for the token.                                                                                        |
| `isRunning`                          | boolean         | Whether the current time is between the indexed yield schedule start and end dates.                                                             |
| `totalUnclaimedYield`                | decimal string  | Total indexed unclaimed yield amount.                                                                                                           |
| `denominationAssetBalance`           | decimal string  | Available denomination asset balance used for the yield coverage calculation.                                                                   |
| `denominationAssetTreasuryAllowance` | decimal string  | ERC-20 allowance granted by the treasury wallet to the yield schedule contract.                                                                 |
| `allowanceCoveredPercentage`         | decimal string  | Percentage of `requiredAllowance` covered by `denominationAssetTreasuryAllowance`. The percentage is capped at full coverage.                   |
| `requiredAllowance`                  | decimal string  | Suggested allowance for keeping holder claims unblocked. DALP sizes it as indexed unclaimed yield plus one period of headroom.                  |
| `treasuryIsContract`                 | boolean or null | `true` for a contract treasury, `false` for a wallet treasury, and `null` when the treasury has not been classified yet.                        |
| `treasuryAddress`                    | address or null | Configured yield treasury address, or `null` when no fixed-treasury-yield feature row is indexed.                                               |
| `scheduleAddress`                    | address or null | Yield schedule contract address. For wallet treasuries, this is the spender that needs the denomination asset allowance.                        |

Amount fields are serialized as locale-independent decimal strings. Preserve them as strings or decimal-safe values in clients so large token amounts do not lose precision.

## Empty and indexing states [#empty-and-indexing-states]

If the token has no indexed yield schedule, DALP returns `hasYieldSchedule: false`, zero balance and allowance fields, and `null` treasury and schedule addresses.

If the schedule exists but the treasury feature row has not indexed yet, DALP can return `hasYieldSchedule: true` and a `scheduleAddress` while `treasuryAddress` and `treasuryIsContract` are `null`. Treat that as an indexing catch-up state and retry later instead of prompting for allowance.

## Wallet allowance guidance [#wallet-allowance-guidance]

Only prompt for an allowance transaction when `treasuryIsContract` is `false` and the allowance is below the required amount. Prefer the direct amount comparison:

* `denominationAssetTreasuryAllowance` is lower than `requiredAllowance`

You can also use `allowanceCoveredPercentage` for display, but only treat it as undercovered when `requiredAllowance` is greater than zero.

Do not ask a contract treasury to approve wallet allowance. When `treasuryIsContract` is `true`, contract-specific treasury logic supplies the payout path. When `treasuryIsContract` is `null`, wait for indexing to classify the treasury before deciding which action to show.

## How values are calculated [#how-values-are-calculated]

The statistic is indexer-backed. DALP reads the indexed yield schedule, unclaimed yield totals, denomination asset balance, fixed-treasury-yield feature row, and ERC-20 allowance row for the active chain.

`yieldCoverage` compares the available denomination asset balance with total unclaimed yield. `allowanceCoveredPercentage` compares the indexed allowance with `requiredAllowance` and caps the percentage at full coverage, while still returning the actual allowance amount.

## Related [#related]

* [Fixed Treasury Yield](/docs/architecture/components/token-features/fixed-treasury-yield)
* [Token volume statistics](/docs/developer-guides/api-integration/token-volume-statistics)
* [Token holders and transfers](/docs/developer-guides/api-integration/token-holders-transfers)
* [Asset decimals](/docs/developer-guides/api-integration/asset-decimals)
