TokenVesting

circle-info

📋 Contract Overview

Property
Value

📁 File

src/TokenVesting.sol

🔧 Type

Upgradeable UUPS Proxy

⚙️ Solidity

0.8.33

📜 License

MIT

circle-info

🎯 Purpose: Manages BLTBY token vesting schedules for investors, team members, and stakeholders—ensuring tokens are released gradually over time.


📊 Vesting Types

Type
Cliff
Duration
Release

👼 Investor (Angel)

3 months

12 months

Linear

💰 Investor (VentureOne)

6 months

24 months

Linear

🏛️ Investor (Trust)

6 months

36 months

Custom

👥 Team

12 months

48 months

Linear

🎓 Advisor

6 months

24 months

Linear

🌐 Ecosystem

0

36 months

Linear


🔧 Functions

📝 Schedule Creation

Create Single Schedule

function createVestingSchedule(
    address beneficiary,
    uint256 amount,
    uint256 startTime,
    uint256 cliffDuration,
    uint256 vestingDuration,
    VestingType vestingType,
    bool revocable
) external onlyRole(VESTING_ADMIN_ROLE) returns (bytes32 scheduleId)

Requirements:

  • Beneficiary not zero address

  • Amount greater than zero

  • Sufficient BLTBY in contract

  • Duration greater than cliff

Batch Create


📈 Vesting Calculation

circle-info

Linear vesting after cliff period.


📊 Timeline Example

circle-info

Example: 1,000,000 BLTBY over 24 months with 6-month cliff

Month
Vested
Releasable

0-6 (Cliff)

0

0

7

~291,667

291,667

12

500,000

500,000 - released

24

1,000,000

1,000,000 - released


📜 Events & Errors


🔗 Contract Interactions

Contract
Interaction

Holds and transfers vesting tokens

Creates investor schedules

Receives revoked unvested tokens


🔗 Investor Integration

The InvestorMintContract creates vesting schedules automatically:


chevron-right💻 Integration Exampleshashtag

Creating a Schedule

Checking Releasable

Releasing Tokens


BLTBYTokenchevron-rightInvestorMintContractchevron-rightInvestment Tierschevron-right

Last updated