The core contract that facilitates an IBO (Initial Bond Offering)
Recall that any deposit into the CBB requires the assets of both the lender and borrower. This means that if the owner is primarily a borrower or primarily a lender, they will need a mechanism to trustless-ly collect the assets of the opposite side prior to the reinitialization of the CBB.
The StagingBox is a refundable escrow responsible for facilitating an IBO (Initial Bond Offering) for the owner of any CBB. During the IBO period, users can deposit collateral/stableTokens for BorrowSlips/LendSlips. When the owner is satisfied with the initial deposits, they can use the funds in the StagingBox to reinitialize the CBB. Borrowers and Lenders can swap their BorrowSlips/LendSlips for StableTokens/SafeSlips. Alternatively, lenders have the option of waiting until maturity to redeem their LendSlips for StableTokens or SafeTranches.
A Staging Box is first deployed by an
initialPrice()and is tied to a given CBB. Borrowers can deposit their collateral for BorrowSlips, and lenders can deposit their
stableToken()for LendSlips. When the
owneris ready, they can call transmitReInit - which will reinitialize the CBB and start the clock. Borrowers/Lenders can then redeem their BorrowSlips/LendSlips for RiskSlips/SafeSlips at the staging box. Whichever side there was excess demand for can withdraw their original deposit.
For example, if a DAO wanted to borrow $1M worth, but there was only $0.5M of lending demand, they will be able to redeem half of their BorrowSlips for RiskSlips + $0.5M loan and they will be able to withdraw half of their original collateral with their remaining BorrowSlips.
- The arbitary initialPrice that the CBB will be reinitialized with. This price is set when the StagingBox is deployed
- This is the owner address of the StagingBox (should be the same as owner of CBB). They have the access to reinitialize the CBB
Prior to the reinitialization of the CBB, borrowers can deposit tranches for BorrowSlips and lenders can deposit StableTokens for LendSlips.
If a borrower/lender changes their mind prior to the reinitialization of the CBB, they can retract their original deposit in whole.
Recall that any deposit into the CBB requires the assets of both the lender and borrower. This means that at the end of the IBO, there will be either an excess of lenders OR borrowers. After reinitializing, the side that was in excess will be able to retract the amount that was excess of the CBB-reinitialization amount.
After reinitialization of the CBB, BorrowSlip holders can withdraw (or "redeem") RiskSlip and the StableToken Loan. Meanwhile LendSlip holders can withdraw SafeSlips according to the initalPrice of the SafeTranche.
The chart below summarizes the options for slips at each phase.