3.9 KiB
Solana — Настройка комиссии через Jupiter Referral Program
На Solana НЕ нужен смарт-контракт. Jupiter Aggregator нативно поддерживает платформенную комиссию.
Как работает
User → Jupiter Swap → 99.3% пользователю + 0.7% на Referral Fee Account
Jupiter сам:
- Считает 0.7% от суммы свапа
- Отправляет комиссию на твой fee token account
- Остальные 99.3% идут пользователю
Комиссия накапливается на token fee accounts. Забирать (клеймить) можно через https://referral.jup.ag → Claim.
Настройка (одноразовая)
Шаг 1: Создай Referral Account
- Зайди на https://referral.jup.ag
- Подключи кошелёк
Co43MKwqMRMCvhscVVrtQWvma87NEV7ba4cfo8cksgzJ(fee wallet для SOL) - Нажми Create Referral Account
- Подтверди транзакцию (~0.003 SOL)
- Скопируй Referral Account Public Key
Шаг 2: Создай Token Fee Accounts
Для каждого токена нужен отдельный fee token account:
- На https://referral.jup.ag → Claim Token Accounts
- Нажми Create Token Account для каждого:
- SOL (wrapped):
So11111111111111111111111111111111111111112 - USDT:
Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB - USDC:
EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
- SOL (wrapped):
- Подтверди каждую транзакцию (~0.002 SOL каждая)
Шаг 3: Добавь в .env
JUPITER_REFERRAL_ACCOUNT=...твой_referral_account_pubkey...
JUPITER_FEE_BPS=70
Как поменять комиссию
Комиссия задаётся одной переменной в .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:
{
"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)