# KUMA Bond Clone Tokens (KBCT)

When the central bank rate drops lower than the current `KIBToken` yield, Clone Bonds lower the coupon of bonds that were bought by users from the `KUMASwap` contract. This ensures that at any point in time there are enough KIBTokens in circulation to buy all the bonds from the `KUMASwap` reserve.

The lowest paying yield corresponds to the lowest yield between the central bank rate and the lowest coupon in the `KUMASwap` reserve. The `KIBToken` yield always corresponds to the lowest paying yield.

To understand why `KIBTSupply` might be a problem without clone NFTs, consider the case where the `KUMASwap` contract holds 2 different one year bonds $1,000 bonds - one with a 3% coupon and one with a 5% coupon. If we also assume the central bank rate is higher than either bond coupon, the KIBT yield will be that of the lowest bond in the swap contract (in this case 3%). Since the 5% bond appreciates more quickly than the `KIBT` total supply, there won't be enough `KIBT` for users to buy both bonds from the `KUMASwap`. Clone NFTs fix this through lowering the reward coupons of the bond so that they can be redeemed by the circulating KIBT supply. In this case, a Clone NFT would be issued for the 5% bond so that it can be redeemed as a 3% bond.

A clone bond is always paired with a parent bond from the reserve and will have a lower coupon overriding its parent coupon when the bond is valued. For each clone bond present, the parent bond cannot be redeemed by a user and can only be redeemed by the MCAG multisig when the clone bond has been redeemed by MCAG. KBCT contain the following metadata:

```json
struct CloneBond {
   uint256 parentId; - The parentId of the `CloneBond`'s parent bond
   uint256 issuance; - The timestamp of the time the clone bond was issued (different than that of the parent bond's issuance)
   uint256 coupon; - The coupon of the `CloneBond`
   uint256 principal; - The principal of the `CloneBond`; equal to the realizedValue of the parent bond on the `CloneBond`'s issuance
}
```

KBCT can only be issued by the `KUMASwap` in the `buyBond` function.

Clone bond coupons are only created if the bond's face value is greater than that of the amount of `KIBT` the bond has backed in the `KUMASwap` contract. This happens when the central bank bond rate for a given risk category decreases past the minimum coupon held by the `KUMASwap` contract.
