# Solana — Настройка комиссии через Jupiter Referral Program На Solana **НЕ нужен** смарт-контракт. Jupiter Aggregator нативно поддерживает платформенную комиссию. ## Как работает ``` User → Jupiter Swap → 99.3% пользователю + 0.7% на Referral Fee Account ``` Jupiter сам: 1. Считает 0.7% от суммы свапа 2. Отправляет комиссию на твой fee token account 3. Остальные 99.3% идут пользователю Комиссия накапливается на token fee accounts. Забирать (клеймить) можно через https://referral.jup.ag → **Claim**. --- ## Настройка (одноразовая) ### Шаг 1: Создай Referral Account 1. Зайди на https://referral.jup.ag 2. Подключи кошелёк `Co43MKwqMRMCvhscVVrtQWvma87NEV7ba4cfo8cksgzJ` (fee wallet для SOL) 3. Нажми **Create Referral Account** 4. Подтверди транзакцию (~0.003 SOL) 5. Скопируй **Referral Account Public Key** ### Шаг 2: Создай Token Fee Accounts Для каждого токена нужен отдельный fee token account: 1. На https://referral.jup.ag → **Claim Token Accounts** 2. Нажми **Create Token Account** для каждого: - **SOL** (wrapped): `So11111111111111111111111111111111111111112` - **USDT**: `Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB` - **USDC**: `EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v` 3. Подтверди каждую транзакцию (~0.002 SOL каждая) ### Шаг 3: Добавь в .env ```env JUPITER_REFERRAL_ACCOUNT=...твой_referral_account_pubkey... JUPITER_FEE_BPS=70 ``` --- ## Как поменять комиссию Комиссия задаётся **одной переменной** в `.env`: ```env JUPITER_FEE_BPS=70 # 0.7% (текущая) ``` Примеры значений: | JUPITER_FEE_BPS | Комиссия | |-----------------|----------| | 10 | 0.1% | | 25 | 0.25% | | 50 | 0.5% | | **70** | **0.7%** | | 100 | 1.0% | | 200 | 2.0% | **Чтобы поменять**: просто измени `JUPITER_FEE_BPS` в `.env` и перезапусти сервер. Передеплой не нужен. **Максимум**: Jupiter позволяет до 255 BPS (2.55%). --- ## Где это в коде Файл: `apps/api/src/routes/sol-swap-proxy.routes.ts` **Quote** — передаёт `platformFeeBps` в Jupiter API: ``` GET /quote?...&platformFeeBps=70 ``` Jupiter возвращает quote уже с учётом комиссии — пользователь видит реальный выход. **Build** — передаёт `feeAccount` (Referral Account) в Jupiter Swap API: ```json { "quoteResponse": {...}, "userPublicKey": "...", "feeAccount": "...referral_account_pubkey..." } ``` Jupiter встраивает инструкцию перевода комиссии прямо в транзакцию свапа. --- ## Отличие от ETH/BSC/TRX | | ETH / BSC / TRX | Solana | |---|---|---| | Контракт | Свой FeeSwapRouter | Не нужен | | Комиссия | Захардкожена в контракте | Настраивается через env | | Изменение % | Нужен передеплой контракта | Поменять env + перезапуск | | Где копится fee | На fee wallet напрямую | На Jupiter fee token accounts | | Как забрать fee | Уже на кошельке | Claim через referral.jup.ag | --- ## Стоимость - Создание Referral Account: ~0.003 SOL (~$0.50) - Каждый Token Fee Account: ~0.002 SOL (~$0.30) - Итого на 3 токена (SOL, USDT, USDC): ~0.009 SOL (~$1.50)