⚙️Mechanics & Calculations

How Tranche Works

Understanding cTokens, aTokens and Others

cTokens and aTokens provide a mechanism to accrue interest just by holding a digital asset. These tokens are minted and redeemed when users deposit or withdraw a digital asset in Compound, Aave or other similar protocols. As the money market accrues interest, which is a function of borrowing demand, cTokens / aTokens become convertible into an increasing amount of the underlying digital asset. In this way, earning interest is as simple as holding a a token. These tokens effectively represent your balance, including interest.

Understanding Tranches

Tranche is the french word for $SLICE or portion. Tranches are segments created from a pool of financial instruments. In traditional finance, these are often bonds or mortgages. These instruments are pooled and sliced to create new instruments with different risk profiles, or other characteristics to make them suitable for different groups of market participants. Using this mechanism we can create a high-risk instrument and a low-risk instrument, appealing to those who want higher volatility as well as those looking for a safe return on their investment.

Tranche Calculations

In our protocol, we divide tranches into two clear pools:

Tranche A — Investment Grade — Fixed Rate: In our Tranche A, we calculate the fixed rate return for each . This value is voted on by the community through Major Tranche Improvement Proposals (TRIPs). The rate is converted into a fixed Rate per Block (RpB), which is then rewarded on a block by block basis. This allows us to translate an Annual Percentage Yield into a return that is calculated with every block.

Interest is traditionally calculated as follows:

taRate=(1+fixedRate)ytaRate = (1+fixedRate)^y

Converting years for Ethereum:

y=(currentBlocktGenesisBlock)/blocksPerYeary = (currentBlock - tGenesisBlock)/ blocksPerYear

Combining these:

Since this is a bit computationally intensive, we calculate a per block return and convert the equation to:

taRate=(1+fixedRPB)(currentBlocktGenesisBlock)taRate = (1+fixedRPB) *(currentBlock-tGenesisBlock)


fixedRPB=fixedRatevalueLockedfixedRPB = fixedRate * valueLocked

This converts our line graph into one that looks laddered, but it is exponential in the long-run.

Tranche B— Junk Grade — Variable Rate: Our Junk Grade pool captures the remainder of the return that is unallocated to Tranche A. In the event of a default, Tranche B is the first to take the hit. However, as long as the total return remains above the Tranche A fixed rate, Tranche B profits off Tranche A holders. This is because Tranche A holders indirectly invest in the integrated protocol (e.g. Compound) but forgo the total variable return for the security of a risk mitigated fixed rate. The higher the number of Tranche A holders, the higher the return for Tranche B.

This is calculated as follows:


While Tranche A holders receive a fixed rate as long as the Tranche Protocol has that amount available, Tranche B holders return is dependent on several factors:

Good Times — Underlying protocol has a higher return than the fixed rate:

  1. Number of Tranche A holders — Higher, better: The more Tranche A holders there are, the more Dai is invested in the underlying protocol at a higher return.

  2. Number of Tranche B holders — Lower, better: The fewer Tranche B holders there are, the fewer participants there are to share in the protocol surplus. If there are fewer B holders, they each take a higher share.

Bad Times — Underlying protocol has a lower return than the fixed rate:

  1. Number of Tranche A holders — Lower, better: The more Tranche A holders there are, the more Dai is required to provide their fixed return, the larger the deficit that Tranche B holders will incur.

  2. Number of Tranche B holders — Higher, better: The higher Tranche B holders there are, the more participants there are to incur the burden of the deficit. If there are many Tranche B holders, they each take a smaller loss, as compared to when a few holders incur the losses.

Last updated