add project
This commit is contained in:
113
contracts/FeeSetup_SOL.md
Normal file
113
contracts/FeeSetup_SOL.md
Normal file
@@ -0,0 +1,113 @@
|
||||
# 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)
|
||||
Reference in New Issue
Block a user