Coupon Token (CT) is the floating-yield token in Fira's yield tokenization system, representing a claim on variable yield generated by the underlying asset.
Overview
CT represents the floating-yield component of the yield split. Holding CT entitles you to the yield generated by the underlying FW between the time of minting and expiry. Interest accrues automatically and can be claimed at any time.
CT is the stateful contract that drives the entire BT/CT lifecycle. It manages minting, redemption, interest accounting, and post-expiry behavior.
How it works
Interest accrual
CT uses a per-user interest tracking system. On every CT transfer (including mints and burns), interest is distributed to both sender and receiver. The interest formula is:
Users can claim accrued interest at any time via redeemDueInterestAndRewards. A configurable interestFeeRate is deducted at claim time and sent to the treasury.
BC Index caching
If doCacheIndexSameBlock is enabled, the BC Index is only updated once per block. This prevents sandwich attacks where the FW exchange rate is manipulated within a block to extract value from CT holders.
Post-expiry behavior
On the first interaction after expiry, the CT contract snapshots the BC Index and freezes it. After this point:
Interest index is frozen — No new yield accrues to CT holders
Post-expiry yield flows to treasury — Any yield generated after expiry belongs to the protocol
CT is not burned on redemption — Post-expiry, only BT is required for redemption; CT has zero economic value
Key features
Floating yield exposure — Earn variable yield from the underlying asset
Automatic interest tracking — Interest is distributed on every transfer
Post-expiry treasury sweep — Unclaimed post-expiry yield can be swept to treasury
Reentrancy protected — All external mutating functions use nonReentrant