๐ Section 12: Tokenomics & Economic Model
๐ The complete OTCM Security Token economic model โ token parameters, vesting schedules, the perpetual 5% fee engine, staking rewards architecture, and SOL treasury strategy.
๐ 12.1 OTCM Token Parameters
The OTCM utility token serves as the native currency of the OTCM Protocol ecosystem, providing governance rights, fee discounts, staking rewards, and access to premium platform features. This section detailsUnder the fundamentalSEC's parametersMarch governing17, 2026 interpretation (Release No. 33-11412), the OTCM governance/utility token's supply,classification backing,as a "Digital Tool" vs. Digital Security is under active legal review. Pending formal legal opinion, OTCM conservatively treats the governance token as a security under Regulation D Rule 506(c) and economicapplies design.full accredited investor verification.
๐น 12.1.1 Total Supply & Denomination
| Parameter | Value |
|---|---|
| Total Token Supply | 1,000,000,000 (One Billion) OTCM |
| Token Standard | SPL Token-2022 (Solana) |
| Decimal Precision | 9 decimals (0.000000001 OTCM minimum unit) |
| Mint Authority | Disabled after initial mint (immutable supply) |
| Freeze Authority | Retained for compliance ( |
| Transfer Hook | Enabled ( |
// OTCM Token Parameters (TypeScript)interface OTCMTokenParameters {
/**
Core OTCM utility token specificationsDeployed on Solana mainnet using SPL Token-2022 standard
*/
// Supply parameterstotalSupply: 1_000_000_000; // 1 billion tokens
decimals: 9; // Standard Solana precision
minimumUnit: 0.000000001; // 1 lamport equivalent
// Token standardstandard: 'SPL_TOKEN_2022';
extensions: [
'TRANSFER_HOOK', // Compliance enforcement
'METADATA', // On-chain metadata
'PERMANENT_DELEGATE', // Protocol operations
];
// Authority configurationauthorities: {
mintAuthority: null; // Disabled (fixed supply)
freezeAuthority: Pubkey; // Compliance enforcement
transferHookAuthority: Pubkey;
// Hook program authority
};
// On-chain metadatametadata: {
name: 'OTCM Protocol Token';
symbol: 'OTCM';
uri: 'https://otcm.io | invest@otcm.io/io/token-metadata.json';
image: 'https://otcm.io/assets/otcm-logo.png'png';
};
}
๐น 12.1.2 1:1 Backing Structure
Every OTCM token is backed 1:1 by Preferred Series "M" shares held in custody at Empire Stock Transfer, aan SEC-registered transfer agent. This backing structure ensures intrinsic value and enables token holders to redeem underlying equity:
"Unlike unbacked utility tokens common in the cryptocurrency industry, OTCM tokens represent fractional ownership of real equity securities. Each token is mathematically guaranteed to be backed by proportional Series M preferred shares."
Component Quantity Verification OTCM Tokens 1,000,000,000 Solana blockchain Series M Preferred Shares 1,000,000,000 Empire Stock Transfer Backing Ratio 1:1 (100%) On-chain attestation every ~400ms // 1:1 Backing Structure Implementationinterface BackingStructure {
/**
1:1 backing verification systemEmpire Stock Transfer provides real-time attestations
*/// Backing parametersbackingAsset: {
type: 'PREFERRED_SERIES_M';
issuer: 'Groovy Company, Inc. dba OTCM
Protocol,Protocol';Inc.';cusip: string;
parValue: 0.001; // $0.001 per share
};
// Custody verificationcustody: {
custodian: 'Empire Stock Transfer';
custodyType: 'QUALIFIED_CUSTODY';
auditFrequency: 'MONTHLY';
attestationFrequency: 'EVERY_SOLANA_SLOT'; // ~400ms
};
// Redemption capabilityredemption: {
enabled: true;
minimumRedemption: 1000; // 1,000 OTCM minimum
processingTime: '3_5_BUSINESS_DAYS';
deliveryMethod: ['DRS', 'PHYSICAL_CERTIFICATE'];
};
// Backing verification formula // backingRatio = custodiedShares / circulatingTokens // Must equal 1.0000 (100%) at all timesrequiredRatio: 1.0000;
toleranceRange: 0.0000; // Zero tolerance
}
๐น 12.1.3 Token Technical Specifications
// OTCM Token Mint Configuration (Rust) // OTCM Token Mint Configurationpub struct OTCMTokenConfig {
/// Total supply (fixed at genesis)pub total_supply: u64, // 1_000_000_000_000_000_000 (with decimals)
/// Decimal precisionpub decimals: u8, // 9
/// Token standard extensionspub extensions: TokenExtensions {
transfer_hook: TransferHook {
program_id: Pubkey, // Hook program address
extra_accounts: Vec<AccountMeta>,
},
metadata: TokenMetadata {
name: String, // "OTCM Protocol Token"
symbol: String, // "OTCM"
uri: String, // Metadata URI
},
},
/// Authority configurationpub mint_authority: Option<Pubkey>, // None (disabled)
pub freeze_authority: Option<Pubkey>, // Some(compliance_multisig)
}
impl OTCMTokenConfig {
pub fn is_supply_fixed(&self) -> bool {self.mint_authority.is_none() // True
-โ no new tokens can be minted}
}
๐น 12.1.4 Initial Liquidity Pool Configuration
The OTCM token launches with an initial liquidity pool seeded with protocol capital to ensure immediate trading capability:
LP Parameter Value Purpose Initial USD Liquidity $100,000 USDC Stable trading pair Initial OTCM Allocation 200,000,000 OTCM (20%) LP token supply Initial Price $0.0005 per OTCM Starting valuation Initial Market Cap $500,000 FDV Fully diluted valuation LP Lock Period PERMANENT Rugpull prevention
๐น 12.1.5 Graduation Mechanism
The OTCM token utilizes a bonding curve structure with a graduation threshold, after which it transitions to DEX trading:
Graduation Parameter Specification Graduation Threshold $250,000 Market Capitalization Pre-Graduation Trading CEDEX Linear Bonding Curve โ P(n) = P0 + (g xร n)Post-Graduation Trading CEDEX CPMM Liquidity Pool Migration Trigger Automatic when market cap reaches $250,000 Migration Process Bonding curve funds migrate to CPMM LP (atomic transaction)
๐น 12.1.6 Post-Graduation Token Economics
Upon reaching the graduation threshold, accumulated bonding curve funds are burned and permanently locked in the CPMM liquidity pool:
// Graduation Mechanism Implementationinterface GraduationMechanism {
/**
Graduation from bonding curve to CPMM LP
*/// Graduation triggertrigger: {
metric: 'MARKET_CAP';
threshold: 250_000; // $250,000 USD
checkFrequency: 'EACH_TRADE';
automaticExecution: true;
};
// Migration processmigration: {
// Step 1: Pause bonding curve tradingpauseBondingCurve: true;
// Step 2: Calculate LP allocationbondingCurveFunds: number; // Accumulated USDC
remainingTokens: number; // Unsold OTCM from curve
// Step 3: Create CPMM poolcpmmPool: {
usdcSide: bondingCurveFunds;
otcmSide: remainingTokens;
initialK: bondingCurveFunds * remainingTokens;
};
// Step 4: Lock LP tokens permanentlylpTokens: {
recipient: 'BURN_ADDRESS'; // 0x000...dead
lockDuration: 'PERMANENT';
withdrawable: false;
};
};
// Post-graduation statepostGraduation: {
tradingVenue: 'CEDEX_CPMM';
liquidityLocked: true;
priceDiscovery: 'AMM_DRIVEN';
slippageControl: 'CIRCUIT_BREAKER';
};
}
โ Permanent Liquidity
Lock:LockPost-graduation, LP tokens are sent to
athe burnaddress,address โ making liquidity withdrawal mathematically impossible. This creates a "rugpull-proof" structure where underlying liquidity can never be extracted by any party.
โณ 12.2 Token Vesting Schedule
๐น 12.2.1 Vesting Philosophy
OTCM Protocol implements a structured vesting schedule designed to align issuer incentives with long-term token success, prevent market manipulation through sudden large sells, and create predictable supply dynamics that enable informed investment decisions.
"Vesting ensures that token issuers maintain skin-in-the-game throughout the protocol's growth phase. Immediate large-scale selling is structurally impossible, protecting all participants from dump scenarios."
๐น 12.2.2 ST22 Issuer Token Allocation
When issuers mint ST22 tokens (ST22 Security Token 2022s), they receive a fixed allocation subject to the vesting schedule:
Allocation Category Percentage Purpose Liquidity Pool (Locked) 40% Permanent trading liquidity Issuer Allocation (Vesting) 60% Subject to vesting schedule Total Minted 100% 1 Billion tokens per ST22
๐น 12.2.3 Vesting Timeline
The 60% issuer allocation follows a structured release schedule over 30
months:months:
Phase Trigger Release % Cumulative Unlocked 1 Token Minting (Day 0) 20% 20% (200M tokens) 2 Graduation ($250K MC) 20% 40% (400M tokens) 3 6 months post-graduation 20% 60% (600M tokens) 4 12 months post-graduation 20% 80% (800M tokens) 5 18 months post-graduation 20% 100% (1B tokens) Total
VestingvestingPeriod:period: 30 months (time from minting to final release, assuming immediate graduation)
๐น 12.2.4 Vesting Smart Contract Implementation
Version: 6.
01 | Implementation: Rust/Anchor on-chain enforcement โ Transfer Hook integratedVesting is enforced at the Transfer Hook layer (Control 24) โ locked tokens cannot be transferred regardless of wallet owner action. There is no administrative override and no grace period.
The vesting schedule below is enforced by on-chain state, not policy.rust/// On-chain vesting account โ one per ST22 issuer allocation#[account] pub struct VestingAccount { pubversion: u8, /// The wallet that receives tokens as they unlock pubbeneficiary: Pubkey,/// The ST22 mint this vesting schedule applies to pub mint: Pubkey, /// Total tokens allocated to this vesting schedulepub total_allocation: u64,/// Tokens claimed so farpub total_claimed: u64,/pub claimed_phases: u8, //Unix timestamp of graduation eventBitmask โset1bybitBondingCurveperprogram on graduation /// Zero until graduation occursphase pub graduation_timestamp: i64, ///BitmaskSetofbywhichBondingCurvephasesonhave been claimed (bit 0 = phase 1, etc.)graduation pubclaimed_phases:creation_timestamp:u8, /// Bump seed for PDA derivation pub bump: u8,i64, }/// Five vesting phases โ enforced by Transfer Hook Control 24#[derive(BorshSerialize, BorshDeserialize, Clone, Copy, PartialEq)] pub enum VestingPhase { Phase1MintCompletion = 0, // 20% โ immediate at mint Phase2Graduation = 1, // 20% โ at $250K market cap Phase3SixMonths = 2, // 20% โ 6 months post-graduation Phase4TwelveMonths = 3, // 20% โ 12 months post-graduation Phase5EighteenMonths = 4, // 20% โ 18 months post-graduation }impl VestingAccount { pub const PHASE_ALLOCATION_BPS: u64 = 2000; // 20% per phase (basis points) pub const MONTHS_6_SECONDS: i64 = 15_778_800; // 6 months in seconds pub const MONTHS_12_SECONDS: i64 = 31_557_600; // 12 months in seconds pub const MONTHS_18_SECONDS: i64 = 47_336_400; // 18 months in seconds /// Returns the unlockable amount for a given phase at the current time pub fn unlockable_for_phase( &self, phase: VestingPhase, current_timestamp: i64, ) -> Result { // Already claimed โ return zero let phase_bit = 1u8 << (phase as u8); if self.claimed_phases & phase_bit != 0 { return Ok(0); } let phase_allocation = self.total_allocation .checked_mul(Self::PHASE_ALLOCATION_BPS) .ok_or(VestingError::Overflow)? .checked_div(10_000) .ok_or(VestingError::Overflow)?; let is_unlocked = match phase { VestingPhase::Phase1MintCompletion => true, // Immediate VestingPhase::Phase2Graduation => { self.graduation_timestamp > 0 // Graduation has occurred } VestingPhase::Phase3SixMonths => { self.graduation_timestamp > 0 && current_timestamp >= self.graduation_timestamp .checked_add(Self::MONTHS_6_SECONDS) .ok_or(VestingError::Overflow)? } VestingPhase::Phase4TwelveMonths => { self.graduation_timestamp > 0 && current_timestamp >= self.graduation_timestamp .checked_add(Self::MONTHS_12_SECONDS) .ok_or(VestingError::Overflow)? } VestingPhase::Phase5EighteenMonths => { self.graduation_timestamp > 0 && current_timestamp >= self.graduation_timestamp .checked_add(Self::MONTHS_18_SECONDS) .ok_or(VestingError::Overflow)? } }; if is_unlocked { Ok(phase_allocation) } else { Ok(0) } } /// Total currently claimable across all phases pub fn total_claimable(&self, current_timestamp: i64) -> Result { let phases = [ VestingPhase::Phase1MintCompletion, VestingPhase::Phase2Graduation, VestingPhase::Phase3SixMonths, VestingPhase::Phase4TwelveMonths, VestingPhase::Phase5EighteenMonths, ]; phases.iter().try_fold(0u64, |acc, &phase| { let unlockable = self.unlockable_for_phase(phase, current_timestamp)?; acc.checked_add(unlockable).ok_or(error!(VestingError::Overflow)) }) } } /// Transfer Hook Control 24 โ enforces vesting locks /// Called by Hook layer before every ST22 transfer pub fn check_vesting_lock( vesting_account: &VestingAccount, transfer_amount: u64, sender_wallet: &Pubkey, current_timestamp: i64, ) -> Result<()> { // Only applies to the beneficiary wallet if &vesting_account.beneficiary != sender_wallet { return Ok(()); } // Calculate how many tokens are currently locked let total_unlocked = vesting_account .total_claimable(current_timestamp)? .checked_add(vesting_account.total_claimed) .ok_or(VestingError::Overflow)?; let locked_amount = vesting_account.total_allocation .saturating_sub(total_unlocked); // Reject if transfer would require locked tokens // (sender must hold sufficient unlocked balance) require!( transfer_amount <= vesting_account.total_allocation .saturating_sub(locked_amount), TransferHookError::TokensLocked // Error 6024 ); Ok(()) } #[error_code] pub enum VestingError { #[msg("Arithmetic overflow in vesting calculation")] Overflow, #[msg("Graduation timestamp not yet set โ graduation has not occurred")] GraduationNotOccurred, #[msg("Phase already claimed")] AlreadyClaimed, }Vesting Schedule
SummarySummary:
Phase Trigger Unlock % Cumulative Enforcement 1 Token minting complete 20% 20% Immediate โ Transfer Hook allows from day 1 2 Graduation ($250K MC) 20% 40% BondingCurve sets graduation_timestampon-chain3 6 months post-graduation 20% 60% Unix timestamp comparison โ no oracle 4 12 months post-graduation 20% 80% Unix timestamp comparison โ no oracle 5 18 months post-graduation 20% 100% Unix timestamp comparison โ no oracle 24-Hour Cooldown: Control 23 (velocity limit) enforces a minimum 24-hour gap between vesting claims for the same wallet โ preventing rapid sequential claim-and-sell patterns.
๐น 12.2.5 Anti-Dump Mechanisms
Beyond vesting, additional anti-dump mechanisms protect token holders:
- Daily Sell
Limit:Limit โ Maximum 1% of daily volume can be sold by any single wallet- Price Impact Circuit
Breaker:Breaker โ Transactions exceeding 2% price impact are rejected- Velocity
Detection:Detection โ Rapid sequential sells from related wallets trigger freeze- Cool-Down
Period:Period โ 24-hour minimum between vesting claims
๐น 12.2.6 Vesting Visualization
// Vesting Timeline Visualization // Visual representation of vesting scheduleMonth 0 (Mint) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ 20%
Month 0+ (Grad) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ 40%
Month 6 โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ 60%
Month 12 โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ 80%
Month 18 โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ 100%
โ = Unlocked tokens โ = Locked tokens
Key Events:
โ---โโ Day 0: Token minting โ 20% immediately available โ---โโ Graduation: $250K MC reached โ Additional 20% unlocked โ---โโ +6 months: Time-based release โ Additional 20% unlocked โ---โโ +12 months: Time-based release โ Additional 20% unlocked โ---โโ +18 months: Final release โ All tokens fully vested
๐ธ 12.3 Revenue Model: Perpetual 5% Transaction Fee
๐น 12.3.1 Fee Structure Overview
The OTCM Protocol generates sustainable revenue through a 5% transaction fee applied to all trades executed on
CEDEX. This fee structure provides predictable, volume-based revenue while remaining competitive with traditional securities trading costs.CEDEX:
Fee Component Description Rate Total Transaction Fee Applied to all CEDEX trades (buy and sell) 5.00% โ OTCM Protocol Protocol operations,operationsdevelopment,ยท development ยท treasury4.00% โ SMTST22 IssuerIssuer revenue share for hosting token 1.00%
๐น 12.3.2 Fee Distribution Mechanism
// Fee Distribution Mechanisminterface FeeDistribution {
/**
5% transaction fee distribution mechanismExecuted automatically on each CEDEX trade
*/// Fee calculationcalculation: {
totalFeeRate: 500; // 5.00% in basis points
appliedTo: 'TRADE_VALUE';
// USD equivalentcollectOn: ['BUY', 'SELL'];
// Both directions};
// Distribution splitdistribution: {
otcmProtocol: {
percentage: 80; // 4% of trade (80% of fee)
recipient: OTCM_TREASURY_ADDRESS;
usage: [
'PROTOCOL_DEVELOPMENT',
'OPERATIONAL_COSTS',
'LIQUIDITY_PROVISION',
'TREASURY_GROWTH',
];
};
smtIssuer:st22Issuer: {percentage: 20; // 1% of trade (20% of fee)
recipient: ISSUER_REVENUE_ADDRESS;
usage: [
'ISSUER_REVENUE',
'STAKING_REWARDS_FUNDING',
'OPERATIONAL_SUPPORT',
];
};
};
// Fee collectioncollection: {
timing: 'ATOMIC_WITH_TRADE';
// Same transactioncurrency: 'TRADE_CURRENCY';
// USDC/SOL/etcsettlement: 'IMMEDIATE';
};
}
๐น 12.3.3 Revenue Projections by Volume
Annual Protocol Revenuescales=linearlyDailywithVolumetradingรvolume.4%Theรfollowing365table illustrates revenue at various volume levels:
Daily Volume Daily Fee (5%) OTCM Share (4%) Annual OTCM RevRevenue$100,000 $5,000 $4,000 $1.46M $500,000 $25,000 $20,000 $7.30M $1,000,000 $50,000 $40,000 $14.60M $5,000,000 $250,000 $200,000 $73.00M $10,000,000 $500,000 $400,000 $146.00M
Annual Protocol Revenue = Daily Volume ร 4% ร 365
๐น 12.3.4 Fee Collection Implementation
collect_trading_fee(// Fee Collection Smart Contract (Rust/Anchor) // Fee collection executed atomically with each tradepub fncollect_transaction_fee(ctx: Context<CollectFee>,
trade_amount: u64,
) -> Result<()> {
// Calculate total fee (5%)let total_fee = trade_amount.checked_mul(FEE_RATE_BPS as u64) // 500 bps
.ok_or(ErrorCode::Overflow)?
.checked_div(10_000)
.ok_or(ErrorCode::Overflow)?;
// Calculate splitslet protocol_share = total_fee.checked_mul(80) // 80% of fee = 4% of trade
.ok_or(ErrorCode::Overflow)?
.checked_div(100)
.ok_or(ErrorCode::Overflow)?;
let issuer_share = total_fee.checked_sub(protocol_share)
.ok_or(ErrorCode::Overflow)?; // 20% of fee = 1% of trade
// Transfer to protocol treasurytransfer_to_treasury(
&ctx.accounts.trade_account,&ctx.accounts.protocol_treasury,
)protocol_share)?;// Transfer to issuertransfer_to_issuer(
&ctx.accounts.trade_account,&ctx.accounts.issuer_revenue,
)issuer_share)?;// Emit event for trackingemit!(FeeCollected {trade_amount,
total_fee,
timestamp: Clock::get()?.unix_timestamp,
});
Ok(()) }
}
๐น 12.3.5 Comparative Fee Analysis
OTCM's 5% transaction fee compares favorably with traditional securities trading costs when considering the full service bundle:
Venue/Venue / ServiceTotal Cost Includes Traditional OTC Markets 5-5โ10% spreadExecution only Broker-Dealer Commission 1-1โ5%Execution + advice DeFi DEX (Raydium) 0.25% + MEV Execution only,only ยท no complianceOTCM CEDEX 5% flat Execution + compliance + custody + registry ๐ก Value
Proposition:PropositionOTCM's 5% fee includes comprehensive compliance infrastructure (KYC/
AML,AML ยท accreditation), SEC-registered transfer agent custody, shareholder registry, immutable audit trail, and 24/7 trading. Traditional alternatives require separate fees for each service.
๐น 12.3.6 Five-Year Revenue Projections
Year SMTST22 IssuersDaily Volume Annual Volume Protocol RevRevenueGrowth Year 1 50 $500K $182.5M $7.30M โ Year 2 200 $2M $730M $29.20M +300% Year 3 500 $5M $1.825B $73.00M +150% Year 4 1,000 $10M $3.65B $146.00M +100% Year 5 2,000 $20M $7.30B $292.00M +100%
๐๏ธ 12.4 Staking Rewards Architecture
๐น 12.4.1 Staking Model Overview
OTCM Protocol implements a staking mechanism that enables token holders to earn passive income through participation in the protocol's security and governance. Individual ST22 staking nodes provide continuous rewards with industry-leading compounding frequency.
"Staking transforms passive token holding into active protocol participation, aligning holder incentives with long-term network success while providing sustainable passive income."
๐น 12.4.2 APY Configuration & Ranges
Parameter Value Notes Minimum APY 8% Protocol floor rate Maximum APY 60% Issuer-configurable ceiling Default APY 15% Standard issuer configuration APY Configurability Issuer-controlled Adjustable within 8-8โ60% range
๐น 12.4.3 Epoch Duration & Compounding
OTCM staking utilizes short epochs for maximized compounding benefit:
Compounding Metric OTCM Staking Traditional Dividend Epoch Duration 2.6 days 90 days (quarterly) Annual Compounding Events ~140 events 4 events Compounding Multiplier 52x35ร more frequentBaseline
๐น 12.4.4 Compounding Mathematics
The effective APY differs from nominal APY due to compounding frequency. The following formula calculates effective annual yield:APY_effective = (1 + APY_nominal / n)^n-โ 1Where n =
number~140of(compounding periods per year(~140for OTCM staking).
Nominal APY Quarterly Compound OTCM Compound Advantage 8% 8.24% 8.33% +0.09% 15% 15.87% 16.18% +0.31% 30% 33.55% 34.99% +1.44% 60% 74.90% 82.21% +7.31%
๐น 12.4.5 Staking Pool Implementation
// Staking Pool Configurationinterface StakingPool {
/**
ST22 staking pool configurationEach SMT issuer maintains separate staking pool
*/// Pool identificationpoolId: Pubkey;
issuerId: string;
tokenMint: Pubkey;
// APY configurationapyConfig: {
currentApy: number; // Basis points (1500 = 15%)
minApy: 800; // 8% minimum
maxApy: 6000; // 60% maximum
adjustmentFrequency: 'EPOCH';
// Can adjust each epoch};
// Epoch configurationepochConfig: {
durationSlots: 5616; // ~2.6 days at 400ms/slot
currentEpoch: number;
epochStartSlot: number;
nextDistribution: Date;
};
// Pool statepoolState: {
totalStaked: number;
totalStakers: number;
rewardsAvailable: number;
rewardsDistributed: number;
lastDistributionEpoch: number;
};
// Rewards fundingrewardsFunding: {
source: 'ISSUER_REVENUE'; // 1% transaction fee share
autoReplenish: true;
reserveTarget: number; // 3 epochs worth of rewards
};
}
๐น 12.4.6 LP Reinvestment Mechanism
A portion of staking rewards automatically flows back to the OTCM Liquidity Pool, strengthening protocol reserves:
LP Reinvestment Details Reinvestment Rate 2% of all staking rewards Destination OTCM Protocol Master Liquidity Pool Purpose Continuous liquidity depth growth,growth ยท protocol sustainabilityExecution Automatic,Automatic ยท atomic with reward distribution
๐น 12.4.7 Staking Rewards Distribution
distribute_epoch_rewards(// Staking Rewards Distribution (Rust/Anchor) // Staking rewards distribution per epochpub fndistribute_staking_rewards(ctx: Context<DistributeRewards>,
epoch: u64,
) -> Result<()> {
let pool = &mut ctx.accounts.staking_pool; // Verify epoch has endedrequire!(Clock::get()?.slot >= pool.epoch_config.epoch_start_slot + pool.epoch_config.duration_slots,
ErrorCode::EpochNotComplete
);
// Calculate rewards for this epochlet epoch_rate = pool.apy_config.current_apy.checked_div(140)
// ~140 epochs per year.ok_or(ErrorCode::Overflow)?;
let total_rewards = pool.pool_state.total_staked.checked_mul(epoch_rate as u64)
.ok_or(ErrorCode::Overflow)?
.checked_div(10_000)
// Convert from basis points.ok_or(ErrorCode::Overflow)?;
// Calculate LP reinvestment (2%)let lp_reinvestment = total_rewards.checked_mul(2)
.ok_or(ErrorCode::Overflow)?
.checked_div(100)
.ok_or(ErrorCode::Overflow)?;
let staker_rewards = total_rewards.checked_sub(lp_reinvestment)
.ok_or(ErrorCode::Overflow)?;
// Transfer LP reinvestmenttransfer_to_master_lp(
&ctx.accounts.rewards_vault,&ctx.accounts.master_lp,
lp_reinvestment,
)lp_reinvestment)?;// Distribute to stakers (proportional to stake)distribute_to_stakers(&ctx, staker_rewards)?;
// Update pool statepool.pool_state.rewards_distributed += total_rewards;
pool.pool_state.last_distribution_epoch = epoch;
// Advance to next epochpool.epoch_config.current_epoch += 1;
pool.epoch_config.epoch_start_slot = Clock::get()?.slot;
emit!(RewardsDistributedEpochRewardsDistributed {epoch,
total_rewards,
lp_reinvestment,
staker_rewards,
stakers_count: pool.pool_state.total_stakers,
});
Ok(()) }
}
๐ฆ 12.5 SOL Treasury Strategy
๐น 12.5.1 Strategic Rationale
OTCM Protocol allocates a significant portion of offering proceeds to building a SOL
treasury,treasury, positioningtheGroovycompanyCompany, Inc. dba OTCM Protocol among the first publicly traded entities to maintain significant blockchain assetreserves. This strategy provides multiple strategic benefits:reserves:
- Network
Alignment:Alignment โ Direct exposure to Solana ecosystem growth- Operational
Funding:Funding โ Staking yields fund ongoing operations- Balance Sheet
Innovation:Innovation โ Pioneering corporate blockchain treasury management- Protocol
Participation:Participation โ Active participation in Solana governance and validation- Hedge Against Fiat
Debasement:Debasement โ Digital asset reserves as inflation hedge
๐น 12.5.2 Treasury Allocation
Allocation Parameter Value Source Total Offering Proceeds $20,000,000 STO (Rule 506(c)) SOL Treasury Allocation $8,000,000 (40%) Offering proceeds Operations Allocation $7,000,000 (35%) Offering proceeds Development Allocation $5,000,000 (25%) Offering proceeds
๐น 12.5.3 Staking Yield Projections
The SOL treasury generates passive income through native Solana staking:
Scenario Staking APY Annual Yield Monthly Yield Conservative 6% $480,000 $40,000 Base Case 7% $560,000 $46,667 Optimistic 8% $640,000 $53,333 Treasury Target:
6-6โ8% annual stakingyields,yields generating $480,000-000โ$640,000 in operational funding annually.
๐น 12.5.4 Treasury Management Policy
// Treasury Management Policyinterface TreasuryManagementPolicy {
/**
SOL Treasury management framework
*/// Allocation strategyallocation: {
stakingAllocation: 90; // 90% actively staked
liquidReserve: 10; // 10% liquid for operations
};
// Staking configurationstaking: {
validatorSelection: 'DIVERSIFIED';
// Multiple validatorsminimumValidators: 5;
maxPerValidator: 25; // 25% max per validator
validatorCriteria: [
'TOP_100_BY_STAKE',
'COMMISSION_UNDER_10_PERCENT',
'UPTIME_ABOVE_99_PERCENT',
'NO_SLASHING_HISTORY',
];
};
// Yield managementyieldManagement: {
compoundingFrequency: 'EPOCH';
// Each Solana epochyieldDistribution: {
operations: 60; // 60% to operations
treasuryGrowth: 30; // 30% compounded to treasury
stakingReserve: 10; // 10% to staking rewards reserve
};
};
// Risk managementriskManagement: {
maxDrawdown: 20; // 20% max allowed drawdown
rebalanceThreshold: 30; // Rebalance if allocation drifts 30%
liquidityMinimum: 500_000; // $500K minimum liquid
};
}
๐น 12.5.5 Risk Management Framework
The SOL treasury incorporates comprehensive risk management:
- Validator
Diversification:Diversification โ Maximum 25% stake with any single validator- Slashing
Protection:Protection โ Only stake with validators having no slashing history- Liquidity
Reserve:Reserve โ 10% maintained liquid for operational needsRebalancing:Rebalancing โ Automatic rebalancing when allocations drift beyond thresholds- Price
Volatility:Volatility โ Accept SOL price volatility as strategic exposure to ecosystem growthโ ๏ธ Price Volatility
RiskRisk:SOL treasury value will fluctuate with SOL market price. While this creates potential upside from price appreciation, it also exposes the treasury to downside risk. This volatility is accepted as strategic exposure to the Solana ecosystem.
๐ฐ SOL
TREASURYTreasurySTAKINGStaking โRISKRiskSPECIFICATIONSpecificationVersion: 6.
01 | Applies To: $8,000,000 SOL Treasury Allocation
Validator Selection CriteriaThe SOL treasury is delegated to native Solana staking validators (not liquid staking derivatives). This decision was made to eliminate smart contract risk associated with LST protocols (
Marinade,Marinade ยท JitoSOL,SOLbSOL,ยท bSOL ยท etc.).Validator Selection Criteria
Criterion Requirement Rationale Commission rate โค 10% Preserve yield โ higher commission = lower net APYUptime (trailing 90 days) โฅ 99.0% LowMissed uptime = missed rewardsSlashing history Zero slashing events ever Slashed validator = capital loss Stake concentration โค 25% of treasury per validator Single validator failure protection Nakamoto coefficient Prefer validators improving decentralization Network health alignment Geographic distribution Minimum 4 countries across all validators Correlated outage prevention Minimum validators 5 active delegations Diversification floor
Staking Risk Matrix
Risk Probability Impact Mitigation Validator slashing Very Low (no historical events on qualified validators)Up to 100% of delegated stake Zero-slashing-history requirement;requirement ยท 5-validator diversificationValidator commission increase Medium Reduced yield Monitor weekly;weekly ยท redelegate ifcommissionthresholdexceeds thresholdexceededSolana staking APY compression Medium Lower operational funding 10% liquid reserve maintained for operational continuityValidator downtime (temporary) Low-LowโMediumMissed epoch rewards Uptime requirement + monitoring Smart contract risk (LST) N/A N/A โ LSTs not used Native staking only Regulatory treatment of staking Uncertain Potential forced unstaking Legal monitoring;monitoring ยท 90-day unstaking buffer maintained
Staking Mechanics and Epoch TimingSolana Epoch Duration: ~2.6 days (432,000 slots) Stake Activation: Takes 1 epoch to become active after delegation Stake Deactivation: Takes 1 epoch to become withdrawable after deactivation TREASURY LIQUIDITY SCHEDULE: Liquid reserve (10%): $800,000 โ immediately accessible Unstakeable in 1 epoch: ~$1,600,000 (20% of staked) Unstakeable in 2 epochs: ~$3,200,000 (40% of staked) Full liquidity: ~90 days (worst case: sequential undelegation) OPERATIONAL IMPLICATION: Treasury cannot respond to a $7.2M emergency within 1 epoch. The $800,000 liquid reserve is the only immediately accessible capital. Protocol must maintain sufficient OTCM token operational reserve to cover 90 days of operating expenses independently of SOL treasury.
Validator Monitoring and Rebalancingtypescriptconst TREASURY_MONITORING = { // Alert thresholds alerts: { validatorCommissionIncrease: { threshold: 0.02, action: 'REVIEW_REDELEGATE' }, validatorUptimeDrop: { threshold: 0.99, window_days: 7, action: 'REVIEW_REDELEGATE' }, epochRewardMissed: { consecutiveEpochs: 2, action: 'INVESTIGATE' }, stakeConcentrationExceeded: { threshold: 0.25, action: 'REDELEGATE_IMMEDIATELY' }, }, // Rebalancing rules rebalancing: { trigger: 'allocation_drift_exceeds_30_percent', method: 'GRADUAL', // Redelegate over 3 epochs to minimize unstaking cost governanceRequired: false, // Treasury multisig (3-of-5) sufficient for rebalancing daoVoteRequired: false, }, // Reporting reporting: { frequency: 'QUARTERLY', format: 'SEC_DISCLOSURE', // Published as 8-K or 10-Q exhibit custodian: 'EMPIRE_STOCK_TRANSFER', }, };
๐ 12.6 Economic Sustainability Analysis
๐น 12.6.1 Value Flow Architecture
TheTrading Activity on CEDEX โ 5% Transaction Fees Generated โ 4% โ OTCM ProtocolcreatesTreasurya1% โ ST22 Issuer Revenue (funds staking rewards) 0.44% โ OTCM LP (permanently locked) โ Treasury funds: Operations + Development + SOL Staking Staking rewards attract OTCM stakers โ More stakers โ reduced sell pressure โ price support Price support โ attracts more issuers More issuers โ more ST22 tokens โ more trading โ (Loop repeats โ self-sustainingeconomicandecosystemcompounding)where value flows continuously between participants:// Value Flow Architecture // OTCM Protocol Value Flow Architecture โ---โ โ OTCM PROTOCOL VALUE FLOW โ โ---โ โ---โ โ SMT ISSUERS โ โ (Issue ST22 Tokens)โ โ---โฌ---โ โ โ Minting Fee ($1K-$25K) โ + 40% tokens to LP โผ โ---โ โ CEDEX TRADING โโ--- Investors Buy/Sell โ (5% Transaction) โ โ---โฌ---โ โ โ---โผ---โ โ โ โ โ 4% โ 1% โ โผ โผ โ โ---โ โ---โ โ โ OTCM PROTOCOL โ โ SMT ISSUER โ โ โ TREASURY โ โ REVENUE โ โ โ---โฌ---โ โ---โฌ---โ โ โ โ โ โ โ Funds Staking โ โ โผ โ โ โ---โ โ โ โ STAKING REWARDS โโ---โ โ โ (8-60% APY) โ 2% LP Reinvestment โ โ---โฌ---โ โ โ โผ โผ โ---โ โ LIQUIDITY POOL GROWTH โ โ (Permanent, Non-Withdrawable) โ โ---โ
๐น 12.6.2 Token Velocity Management
Excessive token velocity can undermine value. OTCM manages velocity through multiple mechanisms:
Velocity Control Mechanism Staking Incentives 8-8โ60% APY rewards holders for locking tokens rather than tradingVesting Schedule 30-month vesting prevents immediate large-scale selling by issuers LP Lock 40% of supply permanently locked in liquidity pools Transaction Fee 5% fee discourages high-frequency speculative trading Governance Utility Token holder voting rights incentivize long-term holding
๐น 12.6.3 Deflationary Mechanisms
While OTCM maintains fixed supply, effective circulating supply decreases over time through:
- LP
Lock:Lock โ 40% of supply permanently non-circulating in liquidity pools- Staking
Lock:Lock โ Active staking removes tokens from circulation- Lost
Wallets:Wallets โ Standard blockchain attrition from lost private keys- Graduation
Burns:Burns โ LP tokens burned at graduation, permanently locking liquidity
๐น 12.6.4 Long-Term Projections
Year Fee Revenue SOL Yield Total Revenue LP Value Treasury Year 1 $7.30M $0.56M $7.86M $12M $8.5M Year 2 $29.20M $0.65M $29.85M $25M $15M Year 3 $73.00M $0.85M $73.85M $45M $28M Year 4 $146.00M $1.20M $147.20M $64M $48M Year 5 $292.00M $1.75M $293.75M $100M+ $85M+ โ Economic
Sustainability:SustainabilityThe OTCM Protocol creates a self-sustaining economic loop: trading generates fees โ fees fund operations and staking rewards โ staking rewards attract more stakers โ stakers reduce sell pressure โ reduced sell pressure supports price โ higher price attracts more issuers and traders โ more trading generates more fees.
Groovy Company, Inc. dba OTCM Protocol ยท Wyoming Corporation ยท invest@otcm.io ยท otcm.io