Розробка VIP-рівнів для трейдерів
VIP-програма криптобіржи — це система градуйованих привілеїв для активних трейдерів. Чим більший торговий обсяг, тим нижча комісія, вищі ліміти виведення, кращі API rate limits та персональне обслуговування. Це інструмент утримання, спрямований на утримання найбільш прибуткових для біржи користувачів.
Структура VIP-рівнів
Визначення рівня
from dataclasses import dataclass
@dataclass
class VIPTier:
tier: int
name: str
required_volume_30d: float # USD
required_assets: float # USD або стейкинг токена біржи
maker_fee_bps: int # базові пункти
taker_fee_bps: int
withdrawal_limit_daily: float
api_rate_limit_per_second: int
dedicated_account_manager: bool
priority_support: bool
VIP_TIERS = [
VIPTier(0, "Regular", 0, 0, 10, 10, 100_000, 10, False, False),
VIPTier(1, "VIP 1", 1_000_000, 0, 9, 9, 200_000, 20, False, False),
VIPTier(2, "VIP 2", 5_000_000, 0, 8, 8, 500_000, 50, False, True),
VIPTier(3, "VIP 3", 20_000_000, 0, 7, 7, 1_000_000, 100, False, True),
VIPTier(4, "VIP 4", 100_000_000, 0, 5, 6, 5_000_000, 200, True, True),
VIPTier(5, "Market Maker", 0, 5_000_000, -2, 4, 10_000_000, 1000, True, True),
]
Автоматичний розрахунок рівня
class VIPTierCalculator:
def calculate_tier(self, user_id: str) -> VIPTier:
volume_30d = self.db.get_trading_volume_30d(user_id)
staked_assets = self.db.get_staked_exchange_tokens_usd(user_id)
for tier in reversed(VIP_TIERS[:-1]): # від вищого до нижчого
if volume_30d >= tier.required_volume_30d or staked_assets >= tier.required_assets:
return tier
return VIP_TIERS[0] # Regular
def update_all_tiers(self):
"""Запускається щодня о 00:00 UTC"""
users = self.db.get_active_users()
for user in users:
new_tier = self.calculate_tier(user.id)
if new_tier.tier != user.current_vip_tier:
self.db.update_user_tier(user.id, new_tier.tier)
self.notify_tier_change(user.id, user.current_vip_tier, new_tier.tier)
Застосування VIP комісій
def calculate_trading_fee(
order: ExecutedOrder,
user: User
) -> TradingFee:
tier = VIP_TIERS[user.vip_tier]
if order.is_maker:
fee_bps = tier.maker_fee_bps
else:
fee_bps = tier.taker_fee_bps
# Додаткова знижка за холдинг токена біржи
token_discount = user.exchange_token_balance * 0.0001 # 0.01% за кожні 10K токенів
effective_fee_bps = max(0, fee_bps - int(token_discount))
fee_amount = order.notional_value * effective_fee_bps / 10000
return TradingFee(
fee_amount=fee_amount,
fee_rate_bps=effective_fee_bps,
currency=order.quote_currency,
is_maker=order.is_maker
)
VIP Дашборд
Ключові елементи UI для VIP користувачів:
- Поточний рівень та назва з бейджем
- Прогрес до наступного рівня (смуга обсягу)
- Порівняння комісій поточного та наступного рівня
- Прогнозовані заощадження при досягненні наступного рівня
- Історія змін рівня
interface VIPProgress {
currentTier: number;
currentTierName: string;
nextTier: number | null;
volume30d: number;
volumeRequired: number;
progressPercent: number;
makerFeeCurrentBps: number;
makerFeeNextBps: number;
estimatedMonthlySavings: number;
}
VIP програма працює як самопідсилюючий цикл: трейдер отримує знижку → торгує активніше → піднімається в рівні → отримує більше знижок. Правильно встановлені пороги рівнів створюють реальний економічний стимул залишатися на платформі.







