Fixed treasury yield API
API reference for configuring fixed treasury yield and operating holder claims, treasury funding, allowance approval, and coverage reads for yield-bearing DALP tokens.
Fixed treasury yield accrues periodic yield for token holders and pays claims from a configured denomination asset treasury. API clients use this reference to configure the feature, read coverage, fund the treasury, approve wallet treasury allowance, and submit holder claims.
This page is a reference. For operator workflow guidance, see Fixed treasury yield how-to. For the architecture model and feature behaviour, see Fixed Treasury Yield.
Configuration during token creation
Configure the feature during token creation or through the configurable-token feature deployment flow.
{
"fixed-treasury-yield": {
"denominationAsset": "0x1111111111111111111111111111111111111111",
"basisPerUnit": "1000000000000000000",
"treasury": "0x2222222222222222222222222222222222222222",
"startDate": "2026-01-01T00:00:00Z",
"endDate": "2027-12-31T00:00:00Z",
"rate": 500,
"interval": "MONTHLY"
}
}| Parameter | Type | Required | Description |
|---|---|---|---|
denominationAsset | EVM address | Yes | ERC-20 address used for yield payouts. |
basisPerUnit | Integer string | Yes | Denomination asset base units per token unit used to size yield accrual. Must be greater than zero and fit within uint256. |
treasury | EVM address | Yes | Address that funds yield distributions. Must not be the zero address. |
startDate | Timestamp | Yes | Future timestamp when accrual begins. |
endDate | Timestamp | Yes | Future timestamp when accrual stops. Must be after startDate. |
rate | Integer | Yes | Per-period rate in basis points. Must be at least 1. |
interval | Enum | Yes | DALP time interval used for accrual periods. |
DALP validates the address, integer, date, rate, and interval fields before queuing feature deployment. A configuration that cannot satisfy those checks fails validation instead of entering the transaction queue.
Feature operations
Fixed treasury yield exposes token feature operations under /api/v2/tokens/{tokenAddress}/features/fixed-treasury-yield.
| Operation | Method and path | Use it for | Caller |
|---|---|---|---|
| Claim accrued yield | POST /api/v2/tokens/{tokenAddress}/features/fixed-treasury-yield/claims | Submit a holder claim for completed-period yield. | Holder wallet |
| Update treasury | PATCH /api/v2/tokens/{tokenAddress}/features/fixed-treasury-yield/treasury | Change the treasury address used for future payouts. | Governance role |
| Top up treasury | POST /api/v2/tokens/{tokenAddress}/features/fixed-treasury-yield/top-ups | Transfer denomination asset from the caller's wallet to the configured treasury. | Funding wallet |
| Approve treasury allowance | POST /api/v2/tokens/{tokenAddress}/features/fixed-treasury-yield/treasury-allowance | Let the schedule contract spend denomination asset from a wallet treasury. | Treasury wallet |
Mutation responses use DALP's asynchronous blockchain mutation envelope and return the updated token resource when the queued operation completes.
Claim behaviour
A holder claim pays yield for completed periods that remain claimable for the effective wallet. DALP performs conservative preflight checks before queueing the claim:
- After the schedule start date, if less than one configured interval has completed, the claim is rejected before queueing.
- If all completed periods have already been claimed, the claim is rejected before queueing.
- If accrued yield is zero, the claim is rejected before queueing. This can happen when accrual is closed after conversion, consumed interest offsets accrual, or the holder had no balance at completed-period boundaries.
- If schedule or holder data is temporarily unavailable, DALP lets on-chain execution decide instead of blocking on incomplete off-chain reads.
The claim transaction still depends on the treasury payout path. For wallet treasuries, the treasury wallet must approve the schedule contract to spend the denomination asset.
Treasury allowance approval
Use POST /api/v2/tokens/{tokenAddress}/features/fixed-treasury-yield/treasury-allowance when the configured treasury is a wallet and the schedule needs ERC-20 allowance to pay holders.
{
"amount": "1000000000000000000"
}| Body field | Type | Description |
|---|---|---|
amount | Integer string | Allowance in denomination asset base units. The treasury wallet must sign this transaction. |
Do not show this action for contract treasuries. Contract treasuries use their own payout logic, and wallet allowance semantics do not apply.
Top up treasury
Use POST /api/v2/tokens/{tokenAddress}/features/fixed-treasury-yield/top-ups to move denomination asset from the caller's wallet to the configured treasury.
{
"amount": "1000000000000000000"
}| Body field | Type | Description |
|---|---|---|
amount | Integer string | Denomination asset amount in base units. |
Top-up funding and allowance approval are separate controls. A funded wallet treasury can still block holder claims when allowance is too low.
Coverage monitoring
Read coverage before prompting operators or holders:
curl "https://your-platform.example.com/api/v2/tokens/0xTOKEN/stats/yield-coverage" \
-H "X-Api-Key: sm_dalp_xxxxxxxxxxxxxxxx"The coverage response includes:
| Field | Use it for |
|---|---|
hasYieldSchedule | Determine whether DALP has indexed a schedule for the token. |
isRunning | Show whether the current time falls within the configured schedule window. |
totalUnclaimedYield | Display outstanding claimable yield after consumed-interest adjustment. |
denominationAssetBalance | Compare available denomination asset balance with outstanding claims. |
denominationAssetTreasuryAllowance | Read wallet treasury allowance granted to the schedule contract. |
requiredAllowance | Size the allowance prompt for wallet treasuries. |
allowanceCoveredPercentage | Display how much of the required allowance is covered. |
treasuryIsContract | Decide whether to show wallet allowance actions. |
treasuryAddress | Show the configured treasury address when indexed. |
scheduleAddress | Identify the schedule contract address used as the allowance spender. |
Prompt for allowance only when treasuryIsContract is false and denominationAssetTreasuryAllowance is lower than requiredAllowance. If treasuryIsContract is null, wait for indexing to classify the treasury before deciding which prompt to show.
Related
- Maturity redemption — often paired for coupon-paying bonds.
- Fixed treasury yield how-to
- Fixed Treasury Yield
- Yield coverage statistics
- Token lifecycle API operations
- Blockchain monitoring
Maturity redemption API
Reference the public API routes for maturity-redemption feature attachment, maturity actions, treasury funding, allowance approval, holder redemption, and redemption-event reads.
AUM Fee API reference
API reference for configuring AUM Fee, reading accrued estimates, collecting fees, freezing the rate, and listing collection events.