Centuari Labs
  • Welcome to the Official Documentation of Centuari V1
  • Getting Started
    • Quickstart
    • Problems
  • Solutions
  • Primitive Lending
    • Flash Loan
    • Oracle
    • Liquidation
  • Currator
  • Basics
    • CLOB(deCentralized Lending Order Book)
    • Matching Transaction
    • Bond Token
    • Vault
  • Uncollateralized
    • Restaking
    • Underwriting
    • Assets Standardization
    • Slashing Mechanism
  • Resources
    • Contracts
    • Community
    • Further Update
  • Conclusion
    • Conclusion
Powered by GitBook
On this page
  • BondToken Documentation - Centuari Protocol
  • Overview
  • Core Concepts
  • Technical Implementation
  • Use Cases
  • Security Considerations
  1. Basics

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:

  1. The borrower's collateral is stored in a vault

  2. Loan funds are transferred from the order book to the borrower

  3. 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:

Field
Type
Description

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

function mint(address to_, uint256 amount_) external onlyOwner

Creates new tokens and assigns them to a specific account. Only callable by the protocol (owner).

burn

function burn(address from_, uint256 amount_) external onlyOwner

Destroys tokens from a specific account. Only callable by the protocol (owner).

Use Cases

  1. Transferable Lending Positions: Lenders can sell their positions without waiting for loan maturity

  2. Secondary Markets: Enables trading of lending positions, potentially at a discount or premium

  3. 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

PreviousMatching TransactionNextVault

Last updated 26 days ago