# Bond lifecycle prerequisites

Source: https://docs.settlemint.com/docs/user-guides/system-addons/bond-lifecycle-prerequisites
Prepare bond funding, yield claims, maturity, and redemption in DALP by checking the required features, treasuries, allowances, and indexed status values before each phase.



Bond lifecycle operations depend on two separate funding surfaces. Fixed Treasury Yield funds periodic coupon or interest claims from a yield treasury. Maturity Redemption funds face value repayment from the maturity redemption treasury. Before you fund claims, trigger maturity, or enable holder redemption, check the prerequisite for that phase.

## When to use this page [#when-to-use-this-page]

Use these checks for bond tokens with yield, maturity, or redemption features attached. The scope is operational: funding, yield claims, maturity, and holder redemption.

Legal payment terms, investor eligibility, and off-chain notice obligations sit outside these checks.

## Lifecycle phases [#lifecycle-phases]

| Phase                          | What must already be true                                                                                                                                                                          | Status or route to check                                                                                                                             |
| ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| Issue the bond                 | Maturity Redemption is configured with a maturity date, denomination asset, and face value. The treasury defaults to the deploying sender unless governance sets another treasury.                 | Token feature reads show Maturity Redemption attached after indexing catches up.                                                                     |
| Fund coupon or interest claims | Fixed Treasury Yield is configured with a denomination asset, treasury, rate, interval, start date, and end date. The treasury holds enough denomination asset for completed and upcoming periods. | Yield coverage statistics show balance and allowance coverage for the yield treasury.                                                                |
| Fund maturity repayment        | The maturity redemption treasury holds enough denomination asset to cover full face value redemption of the outstanding bond supply.                                                               | Bond status shows `denominationAssetBalanceAvailable`, `denominationAssetBalanceRequired`, and `coveredPercentage`.                                  |
| Approve treasury spending      | If the maturity or yield treasury is a wallet, that wallet approves the feature contract to spend the denomination asset. Contract treasuries manage approval through their own controls.          | For maturity, check `denominationAssetTreasuryAllowance`, `allowanceCoveredPercentage`, `treasuryIsContract`, and `featureAddress` from bond status. |
| Trigger maturity               | Governance calls the maturity operation when the scheduled maturity date is reached, or an emergency actor triggers early maturity when that route is intentionally used.                          | After maturity, non-redemption transfers are blocked and holders use the maturity redemption route.                                                  |
| Redeem                         | The bond is mature, the holder has tokens to redeem, and the maturity treasury has enough balance and, for wallet treasuries, enough allowance for the payout.                                     | The maturity redemption route queues the holder redemption.                                                                                          |

## Funding yield claims [#funding-yield-claims]

Yield claims are pull based. Holders claim completed-period yield, and unclaimed yield remains in the configured treasury until claimed.

Before the yield period starts, verify these prerequisites:

1. Fixed Treasury Yield is attached to the token.
2. Historical Balances is available so the feature can calculate snapshot-based holder entitlements.
3. The configured yield treasury holds the denomination asset used for coupon or interest payments.
4. If the treasury is a wallet, the treasury wallet has approved the yield feature to spend enough denomination asset for claims.
5. At least one configured interval has completed before holders see claimable yield.

Use the yield coverage statistics route to decide whether the treasury is ready for claims. A funded treasury is not enough when the treasury is a wallet. The allowance side must also cover the required payout amount.

## Funding maturity repayment [#funding-maturity-repayment]

Maturity repayment uses the maturity redemption treasury, not the legacy bond denomination top-up path. When a bond has Maturity Redemption attached, fund the configured maturity treasury through the maturity redemption top-up flow.

Before maturity, verify these prerequisites:

1. Maturity Redemption is attached and indexed for the token.
2. The maturity redemption treasury is the intended repayment source.
3. The treasury holds the denomination asset used for face value repayment.
4. `denominationAssetBalanceAvailable` is at least `denominationAssetBalanceRequired` on bond status.
5. `solvencyKnown` is `true` before treating balance and coverage values as authoritative.

The bond status route separates unknown indexed state from known shortfall. If `solvencyKnown` is `false`, the coverage values are placeholders while the indexer catches up. Show a verifying state and retry instead of treating the treasury as empty.

## Approving wallet treasuries [#approving-wallet-treasuries]

Wallet treasuries need ERC-20 allowance because the maturity redemption feature pulls the denomination asset from the treasury when a holder redeems. Contract treasuries do not use the wallet approval route.

Use these rules before showing an approval option:

* If `treasuryIsContract` is `false`, the configured treasury wallet can call the maturity redemption treasury allowance route.
* If `treasuryIsContract` is `true`, do not show the wallet approval flow. Manage allowance through the treasury contract controls.
* If `treasuryIsContract` is `null`, wait for treasury classification to finish and retry the bond status read.
* Submit the allowance amount in denomination asset base units.

For redemptions, the platform checks wallet treasury allowance before queueing the transaction. The platform rejects the submission when the allowance is below the payout required for the holder's requested amount.

## Maturity and redemption behavior [#maturity-and-redemption-behavior]

Maturity does not happen automatically at the scheduled date. An authorized maturity operation moves the token into the post-maturity state. After that state change, normal transfers are blocked and holders redeem through the maturity redemption route.

Before enabling holder redemption, verify:

1. The token is mature.
2. The holder has a redeemable token balance.
3. The maturity treasury is funded for the expected redemption volume.
4. Wallet treasury allowance covers the payout amount when the treasury is not a contract.
5. Bond status values have caught up after recent treasury top-ups, treasury changes, approvals, or redemptions.

Redemption burns the holder's bond tokens and pays the denomination asset at the configured face value. Later redemptions can fail if earlier redemptions deplete treasury balance or wallet allowance.

## Common failure modes [#common-failure-modes]

| Symptom                                             | Likely cause                                                                                          | What to do                                                                                            |
| --------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| Yield claim is not available                        | No period has completed, the holder has no claimable entitlement, or the feature is not attached yet. | Wait for a completed interval and confirm the token feature read shows Fixed Treasury Yield attached. |
| Yield claim fails with funded treasury              | The treasury is a wallet and allowance is too low.                                                    | Check yield coverage allowance values and approve from the treasury wallet when appropriate.          |
| Bond status shows zero coverage right after setup   | The solvency view has not caught up yet.                                                              | Treat `solvencyKnown: false` as a verifying state and retry.                                          |
| Legacy denomination top-up does not fund redemption | The bond uses Maturity Redemption with a configured treasury.                                         | Use the maturity redemption top-up flow for the configured treasury.                                  |
| Redemption fails after maturity                     | Treasury balance or wallet allowance is below the required payout.                                    | Top up the maturity treasury and approve wallet allowance before retrying.                            |

## See also [#see-also]

* [Yield schedule addon](/docs/user-guides/system-addons/yield-schedule) for holder-claimed coupon, dividend, and interest schedules.
* [Fixed Treasury Yield](/docs/architecture/components/token-features/fixed-treasury-yield) for the feature contract behavior and yield coverage signals.
* [Maturity Redemption](/docs/architecture/components/token-features/maturity-redemption) for maturity state, redemption, treasury allowance, and transfer blocking behavior.
* [Yield coverage statistics](/docs/developer-guides/api-integration/yield-coverage-statistics) for API fields used to monitor yield treasury readiness.
