Vesting Schedule
Team & Advisors Vesting — 10% allocation = 100,000,000 SUDIGITAL tokens
Parameters
| Parameter | Value |
|---|---|
| Total Allocation | 100,000,000 SUDIGITAL |
| Cliff Duration | 12 months |
| Total Vesting | 48 months (cliff included, not on top of it) |
| Release Type | Linear from start over 48 months, so 25% is vested at the cliff |
| Monthly Release | 2,083,333 tokens after the cliff |
| Daily Release | ~68,493 tokens |
| Revocable | EVM: yes, unvested part only. Solana: no revoke instruction |
packages/nft/src/constants/tokenomics.ts: VESTING_SCHEDULE.CLIFF_DURATION = 365 × 24 × 60 × 60 seconds, VESTING_SCHEDULE.TOTAL_DURATION = 4 × 365 × 24 × 60 × 60 (48 months). The vesting clock starts when a stream is created, so no team token is claimable before 12 months after its stream starts.
Visual Timeline
Tokens Vested
(Millions)
│
100M ├───────────────────────────────────────────────────●─
│ ╱
75M ├─────────────────────────────────────────────────╱───
│ ╱
50M ├───────────────────────────────────────────────╱─────
│ ╱
25M ├─────────────────────────────────────────────╱───────
│ ╱
0 ├───────────────────────────────────────●─────────────
│◄─────── CLIFF ──────►│◄─────── LINEAR RELEASE ─────►
└─────────────────────────────────────────────────────
0 6 12 18 24 36 48
MonthsMonthly Release Schedule
Year 1 (Cliff Period)
Months 0-11: No tokens released. All tokens remain locked.
At month 12 (cliff end): 25,000,000 tokens (25%) become available.
Year 2 (Linear Release)
| Month | Monthly Release | Cumulative | % Vested |
|---|---|---|---|
| 12 | 25,000,000 (cliff) | 25,000,000 | 25.0% |
| 13-15 | 2,083,333/mo | 31,250,000 | 31.3% |
| 16-18 | 2,083,333/mo | 37,500,000 | 37.5% |
| 19-21 | 2,083,333/mo | 43,750,000 | 43.8% |
| 22-24 | 2,083,333/mo | 50,000,000 | 50.0% |
Year 3
| Month | Monthly Release | Cumulative | % Vested |
|---|---|---|---|
| 25-27 | 2,083,333/mo | 56,250,000 | 56.3% |
| 28-30 | 2,083,333/mo | 62,500,000 | 62.5% |
| 31-33 | 2,083,333/mo | 68,750,000 | 68.8% |
| 34-36 | 2,083,333/mo | 75,000,000 | 75.0% |
Year 4 (Final)
| Month | Monthly Release | Cumulative | % Vested |
|---|---|---|---|
| 37-39 | 2,083,333/mo | 81,250,000 | 81.3% |
| 40-42 | 2,083,333/mo | 87,500,000 | 87.5% |
| 43-45 | 2,083,333/mo | 93,750,000 | 93.8% |
| 46-48 | 2,083,333/mo | 100,000,000 | 100.0% |
Quarterly Summary
| Quarter | Period | Tokens Released | Cumulative | % of Total |
|---|---|---|---|---|
| Q1 | Months 1-3 | 0 | 0 | 0.0% |
| Q2 | Months 4-6 | 0 | 0 | 0.0% |
| Q3 | Months 7-9 | 0 | 0 | 0.0% |
| Q4 | Months 10-12 | 0 | 0 | 0.0% |
| Year 1 | Cliff | 0 | 0 | 0.0% |
| Q5 | Months 13-15 | 31,250,000 | 31,250,000 | 31.3% |
| Q6 | Months 16-18 | 6,250,000 | 37,500,000 | 37.5% |
| Q7 | Months 19-21 | 6,250,000 | 43,750,000 | 43.8% |
| Q8 | Months 22-24 | 6,250,000 | 50,000,000 | 50.0% |
| Year 2 | 50,000,000 | 50,000,000 | 50.0% | |
| Q9-Q12 | Months 25-36 | 25,000,000 | 75,000,000 | 75.0% |
| Year 3 | 25,000,000 | 75,000,000 | 75.0% | |
| Q13-Q16 | Months 37-48 | 25,000,000 | 100,000,000 | 100.0% |
| Year 4 | 25,000,000 | 100,000,000 | 100.0% |
Release Milestones
| Milestone | Month | Tokens Released | % Complete |
|---|---|---|---|
| Cliff Ends | 12 | 25,000,000 | 25% |
| Halfway | 24 | 50,000,000 | 50% |
| Three-Quarters | 36 | 75,000,000 | 75% |
| Fully Vested | 48 | 100,000,000 | 100% |
Release Calculation
javascript
function calculateReleasable(currentTime, startTime, totalAmount) {
const CLIFF_DURATION = 365 * 24 * 60 * 60; // 12 months
const VESTING_DURATION = 1460 * 24 * 60 * 60; // 48 months
if (currentTime < startTime + CLIFF_DURATION) {
return 0; // still in cliff
}
const elapsed = currentTime - startTime;
if (elapsed >= VESTING_DURATION) {
return totalAmount - alreadyReleased; // fully vested
}
const vested = (totalAmount * elapsed) / VESTING_DURATION;
return vested - alreadyReleased; // linear portion
}Revocation Scenarios (EVM only)
sudigital-vesting has no revoke instruction, so on Solana a scheduled amount vests and cannot be clawed back. The scenarios below describe VestingModule.sol on Base.
Revoked During Cliff (e.g. Month 6)
| Field | Value |
|---|---|
| Vested | 0 (still in cliff) |
| Beneficiary keeps | 0 |
| Returned to admin | 100,000,000 |
Revoked Mid-Vesting (e.g. Month 30)
| Field | Value |
|---|---|
| Vested at Month 30 | 62,500,000 (62.5%) |
| Already released | 50,000,000 |
| Still claimable | 12,500,000 |
| Beneficiary keeps | 62,500,000 (vested) |
| Returned to admin | 37,500,000 (unvested) |
Smart Contract References
Solana
rust
// sudigital-token/src/state/vesting.rs
pub struct VestingAccount {
pub beneficiary: Pubkey,
pub total_amount: u64,
pub released_amount: u64,
pub start_time: i64,
pub cliff_duration: i64, // 12 months
pub vesting_duration: i64, // 48 months
pub last_release: i64,
pub revoked: bool,
pub bump: u8,
}EVM (Solidity)
solidity
// VestingModule.sol
struct VestingSchedule {
address beneficiary;
uint256 totalAmount;
uint256 releasedAmount;
uint256 startTime;
uint256 cliffDuration; // 365 days
uint256 vestingDuration; // 1460 days
uint256 lastRelease;
bool revoked;
bool exists;
}Related Documentation
- Token Overview — summary and contract addresses
- Distribution & Burn — allocation and burn mechanics
- Architecture — how the backend supports vesting
Last updated: November 4, 2026