Coupon Token (CT)

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.

circle-info

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:

interest = principal × (currentIndex - prevIndex) / (prevIndex × currentIndex)

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

Last updated