> For the complete documentation index, see [llms.txt](https://docs.qr.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.qr.xyz/qr-ru/osnovnye-koncepcii/solana-token-accounts.md).

# Токен-аккаунты Solana (ATA)

> Почему для свапов нужен SOL — и чем Solana отличается от EVM-цепочек.

***

## EVM vs Solana: Как хранятся токены

В EVM-цепочках (Ethereum, Base, Polygon) все балансы токенов хранятся внутри одного смарт-контракта. Ваш баланс — это просто число в mapping: никаких дополнительных аккаунтов, никаких дополнительных затрат.

Solana работает иначе. Каждый токен, которым вы владеете, требует отдельного **Ассоциированного токен-аккаунта (ATA)** — выделенного ончейн-аккаунта, в котором хранится ваш баланс именно этого токена.

```
EVM (Ethereum, Base, Polygon):

  Контракт USDC
  ┌──────────────────────────┐
  │  0xAlice  → 100 USDC     │   Один контракт,
  │  0xBob    → 50 USDC      │   все балансы внутри
  │  0xCarol  → 200 USDC     │
  └──────────────────────────┘

Solana:

  Кошелёк Алисы
  ├── баланс SOL (нативный)
  ├── USDC ATA  → 100 USDC      Каждый токен = отдельный аккаунт
  ├── BONK ATA  → 5,000 BONK    Каждый аккаунт = рентный депозит
  └── JUP ATA   → 30 JUP
```

***

## Что такое ATA?

**ATA** расшифровывается как **Associated Token Account**. Это уникальный ончейн-аккаунт, детерминированно выводимый из адреса вашего кошелька и адреса mint токена.

```
Ваш кошелёк  +  mint USDC   →   ваш ATA для USDC  (уникальный адрес)
Ваш кошелёк  +  mint BONK   →   ваш ATA для BONK  (уникальный адрес)
Ваш кошелёк  +  mint JUP    →   ваш ATA для JUP   (уникальный адрес)
```

Каждый ATA:

* Хранит ваш баланс для **одного конкретного токена**
* Должен быть **создан** до того, как вы сможете получить этот токен
* Требует разового **рентного депозита** в SOL

***

## Что такое рента?

Solana взимает **ренту** за хранение данных в блокчейне. Каждый аккаунт, занимающий место в блокчейне, должен иметь минимальный баланс SOL, чтобы оставаться активным.

Для токен-аккаунта (ATA) минимальный баланс для освобождения от ренты составляет:

|                |                      |
| -------------- | -------------------- |
| **Рента ATA**  | **\~0.00203928 SOL** |
| При SOL = $150 | \~$0.31              |

Это **не комиссия** — это **возвратный депозит**. Если позже вы закроете токен-аккаунт, вся сумма ренты будет возвращена в ваш кошелёк.

***

## Почему \[QR] Wallet не может спонсировать ренту ATA?

\[QR] Wallet спонсирует **комиссии за транзакции** — стоимость выполнения операций в сети (проверка подписи, compute units, приоритетные комиссии).

Рента ATA принципиально отличается от комиссии за транзакцию:

|                         | Комиссия за транзакцию | Рента ATA                  |
| ----------------------- | ---------------------- | -------------------------- |
| **Что это**             | Оплата за выполнение   | Депозит за хранение        |
| **Куда уходит SOL**     | Валидаторам            | В новый аккаунт            |
| **Возвращается?**       | Нет                    | Да (при закрытии аккаунта) |
| **За каждую операцию?** | Каждая транзакция      | Один раз на токен          |

```
Спонсируется [QR] Wallet:
├── Комиссия за подпись транзакции    (~0.000005 SOL)
├── Стоимость compute unit            (~0.0001 SOL)
└── Приоритетная комиссия                 (variable)

НЕ спонсируется — оплачивается пользователем:
├── Депозит ренты ATA             (~0.002 SOL за новый токен)
└── Заблокировано В новом аккаунте    (возвращается при закрытии)
```

Спонсирование ренты означало бы, что \[QR] Wallet навсегда блокирует свой собственный SOL в каждом токен-аккаунте пользователя. В масштабе это экономически неустойчиво — каждый новый токен, который получает пользователь, навсегда блокировал бы около $0.30 средств \[QR] Wallet.

***

## Когда нужен дополнительный SOL?

Создание ATA происходит автоматически во время свапов и получения токенов. Вот когда требуется дополнительный SOL:

### Сценарий 1: свап SOL → токен

Когда вы меняете SOL на любой SPL-токен и у вас ещё нет ATA для этого токена:

```
Вашего баланса SOL должно хватать на:
┌─────────────────────────────────────────────┐
│  Сумма свапа              например, 1.000 SOL    │
│  + рента за wSOL ATA           ~0.002 SOL    │  ← обёртывание нативного SOL
│  + рента за ATA выходного токена ~0.002 SOL    │  ← если в первый раз
│  + комиссия за транзакцию      ~0.000005 SOL  │
│  ─────────────────────────────────────────── │
│  Итого нужно              ≈  1.004 SOL       │
└─────────────────────────────────────────────┘
```

> **Что такое wSOL?** DEX-ы Solana, такие как Jupiter, работают с SPL-токенами, а не с нативным SOL. Ваш SOL автоматически **оборачивается** в wSOL (SPL-представление) перед свапом. Для этой обёртки требуется собственный временный ATA.

### Сценарий 2: свап токен → токен

Если вы меняете USDC → BONK и у вас нет BONK ATA, свап создаст его. Вам нужен SOL для ренты **даже несмотря на то, что вы меняете USDC, а не SOL**.

```
Свап USDC → BONK (первое получение BONK):
┌──────────────────────────────────────────────┐
│  Баланс USDC           достаточно для свапа    │
│  + SOL на ренту BONK ATA      ~0.002 SOL    │  ← нужно!
│  + SOL на комиссию за транзакцию    ~0.000005 SOL  │
└──────────────────────────────────────────────┘
```

### Сценарий 3: получение токенов

Когда кто-то отправляет вам токен, которым вы никогда не владели, ATA обычно создаётся транзакцией отправителя. Однако некоторые протоколы могут требовать, чтобы у получателя уже был существующий ATA.

***

## Сколько SOL мне следует держать?

Мы рекомендуем держать **как минимум 0.01 SOL** в качестве запаса:

| Назначение                                 | Стоимость          |
| ------------------------------------------ | ------------------ |
| Рента ATA (за новый токен)                 | \~0.002 SOL        |
| Комиссия за подпись транзакции             | \~0.000005 SOL     |
| Приоритетная комиссия (загруженность сети) | \~0.0001–0.001 SOL |
| Запас на непредвиденные расходы            | \~0.005 SOL        |

> **Практическое правило:** 0.01 SOL достаточно примерно для 4 новых токен-аккаунтов и десятков транзакций.

***

## Жизненный цикл ATA

```
1. Первый свап или получение Token X
   └── ATA создаётся автоматически → ~0.002 SOL блокируется как рента

2. Обычное использование
   └── Отправка, получение, свап — ATA сохраняется, дополнительная рента не взимается

3. Баланс токена достигает 0
   └── ATA всё ещё существует, рента всё ещё заблокирована
   └── Готов к будущим поступлениям — повторное создание не требуется

4. Закрыть ATA (необязательно, вручную)
   └── ~0.002 SOL возвращается в ваш кошелёк
   └── ATA удалён — для нового получения его нужно создать заново
```

***

## Практический пример

У Алисы 2.0 SOL, и она хочет впервые свапнуть 1.5 SOL → USDC.

```
Кошелёк Алисы: 2.0 SOL, 0 USDC (нет USDC ATA)

Шаг 1 — Создание транзакции свапа
         Jupiter оборачивает 1.5 SOL → wSOL для свапа

Шаг 2 — Проверка ATA
         У Алисы нет wSOL ATA → создать его    (−0.002 SOL)
         У Алисы нет USDC ATA → создать его    (−0.002 SOL)

Шаг 3 — Выполнение свапа
         1.5 SOL обменены → USDC поступает в новый ATA
         Комиссия за транзакцию                       (−0.000005 SOL)

Шаг 4 — Завершение
         wSOL ATA автоматически закрыт                  (+0.002 SOL возврат)

Результат:  у Алисы 0.498 SOL + USDC
         (0.002 SOL заблокировано как рента USDC ATA)
```

***

## FAQ

**Почему я вижу «Недостаточно SOL», хотя у меня хватает на сумму свапа?**

Ваш баланс должен покрывать сумму свапа **плюс** ренту ATA и комиссию за транзакцию. Держите как минимум на 0.003 SOL больше, чем сумма свапа.

**Рента — это постоянная стоимость? Могу ли я её вернуть?**

Рента полностью возвращается. Закрытие токен-аккаунта возвращает весь депозит в ваш кошелёк.

**Почему этого не происходит в Ethereum или Base?**

EVM-цепочки хранят все балансы токенов внутри смарт-контракта токена — никаких дополнительных аккаунтов или депозитов не требуется. Модель аккаунтов Solana требует явного выделения хранилища.

**Что такое wSOL и почему ему нужен ATA?**

Wrapped SOL (wSOL) — это SPL-токен, представляющий нативный SOL. DEX-ы Solana работают с SPL-токенами, поэтому нативный SOL нужно оборачивать перед свапом. ATA для wSOL обычно временный — он создаётся для свапа и затем закрывается, а рента возвращается.

**Нужен ли мне SOL для каждого свапа?**

Только если свап связан с токеном, которым вы раньше не владели (то есть нет существующего ATA). После создания ATA сохраняется — для будущих свапов той же пары токенов дополнительный SOL на ренту не нужен.

**Как вернуть SOL, заблокированный как рента ATA?**

Чтобы вернуть SOL, нужно закрыть неиспользуемые токен-аккаунты (ATA с нулевым балансом). Есть несколько публичных инструментов и сервисов, которые помогают это сделать (например, [Sol Incinerator](https://sol-incinerator.com) , инструменты для закрытия аккаунтов в популярных кошельках Solana). \[QR] Wallet работает над встроенным ATA-менеджером, который позволит вам просматривать и закрывать пустые токен-аккаунты прямо из приложения — возвращая заблокированный SOL в один тап. Следите за обновлениями.

**А что, если у меня вообще нет SOL?**

Вы не сможете создавать новые ATA. Если вам нужно получить новый токен в Solana, сначала приобретите небольшое количество SOL (\~0.01) через кроссчейн-мост или функцию покупки криптовалюты.
