Разработка VIP-уровней для трейдеров
VIP-программа криптобиржи — система градуированных привилегий для активных трейдеров. Чем больше торговый объём, тем ниже комиссия, выше лимиты вывода, лучше API rate limits и персональное обслуживание. Это retention инструмент, направленный на удержание наиболее прибыльных для биржи пользователей.
Структура VIP-уровней
Tier определение
from dataclasses import dataclass
@dataclass
class VIPTier:
tier: int
name: str
required_volume_30d: float # USD
required_assets: float # USD или exchange token стейкинг
maker_fee_bps: int # basis points
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
# Дополнительная скидка за холдинг exchange токена
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 Dashboard
Ключевые элементы интерфейса VIP пользователя:
- Текущий тир и название с бейджем
- Прогресс к следующему тиру (volume bar)
- Сравнение текущих и следующего тира fee
- Projected savings при достижении следующего тира
- История тирового повышения/понижения
interface VIPProgress {
currentTier: number;
currentTierName: string;
nextTier: number | null;
volume30d: number;
volumeRequired: number;
progressPercent: number;
makerFeeCurrentBps: number;
makerFeeNextBps: number;
estimatedMonthlySavings: number;
}
VIP программа работает как самоусиливающийся цикл: трейдер получает скидку → торгует активнее → поднимается в тире → получает больше скидок. Правильно настроенные пороги тиров создают реальный экономический стимул оставаться на платформе.







