Files
cryptowallet/contracts/FeeSetup_SOL.md
ZOMBIIIIIII a81e29807c add project
2026-04-08 14:11:27 +03:00

3.9 KiB
Raw Blame History

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.agClaim.


Настройка (одноразовая)

Шаг 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.agClaim Token Accounts
  2. Нажми Create Token Account для каждого:
    • SOL (wrapped): So11111111111111111111111111111111111111112
    • USDT: Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB
    • USDC: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
  3. Подтверди каждую транзакцию (~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)