Bond Token
BondToken Documentation - Centuari Protocol
Overview
BondToken is a specialized ERC20 token implementation used in the Centuari Protocol to represent lending positions. These tokens enable lenders to have tradable assets that represent their lending positions, providing liquidity for otherwise locked capital.
Core Concepts
Bond Tokens
Bond Tokens are ERC20-compliant tokens issued to lenders that represent the collateral provided by borrowers. Key features:
They are fully liquid and can be freely traded
Each token represents a claim on the underlying collateral
If a borrower fails to repay their loan by the maturity date, the collateral will be liquidated
Lending Process
When a borrower and lender reach an agreement:
The borrower's collateral is stored in a vault
Loan funds are transferred from the order book to the borrower
The vault mints Bond Tokens and sends them to the lender
Technical Implementation
The BondToken
contract inherits from:
Ownable
- Manages access control (only the Centuari protocol can mint/burn tokens)ERC20
- Provides standard token functionality
Token Configuration
Each BondToken instance contains specific configuration data stored in the BondTokenConfig
struct:
loanToken
address
Address of the token being lent
collateralToken
address
Address of the token used as collateral
rate
uint256
The interest rate (scaled by 10^14)
maturity
uint256
Timestamp when the loan expires
maturityMonth
string
String representation of maturity month (e.g., "JAN")
maturityYear
uint256
Year when the loan matures
decimals
uint256
Decimal precision of the token
Token Naming Convention
The BondToken automatically generates its name and symbol based on the configuration:
Name format: CTI [LoanTokenSymbol]/[CollateralTokenSymbol] [Rate]RATE [MaturityMonth]-[MaturityYear]
Symbol format: poc[LoanTokenSymbol][CollateralTokenSymbol][Rate]R[MaturityMonth][MaturityYear]
For example: CTI USDC/ETH 5RATE JAN-2025
with symbol pocUSDCETH5RJAN2025
Key Functions
Constructor
Initializes a new BondToken with its configuration parameters and performs validation checks:
Verifies that token addresses are not zero addresses
Confirms that rate is not zero
Ensures maturity date is in the future
Validates that maturity month and year are specified
mint
Creates new tokens and assigns them to a specific account. Only callable by the protocol (owner).
burn
Destroys tokens from a specific account. Only callable by the protocol (owner).
Use Cases
Transferable Lending Positions: Lenders can sell their positions without waiting for loan maturity
Secondary Markets: Enables trading of lending positions, potentially at a discount or premium
Portfolio Management: Lenders can diversify or consolidate their lending positions
Security Considerations
Only the protocol (owner) can mint or burn tokens
Validation checks ensure tokens are created with valid parameters
Standard ERC20 security practices apply to these tokens
Last updated