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

114 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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)