# Tài khoản Token Solana (ATA)

> Tại sao bạn cần SOL để hoán đổi — và điều gì làm Solana khác với các chuỗi EVM.

***

## EVM vs Solana: Cách Token được Lưu trữ

Trên các chuỗi EVM (Ethereum, Base, Polygon), tất cả số dư token nằm trong một hợp đồng thông minh duy nhất. Số dư của bạn chỉ là một con số trong một mapping — không cần tài khoản phụ, không tốn thêm chi phí.

Solana hoạt động khác. Mỗi token bạn giữ yêu cầu một **Tài khoản Token Liên kết (ATA)** — một tài khoản on-chain chuyên dụng lưu trữ số dư của bạn cho token cụ thể đó.

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

  Hợp đồng USDC
  ┌──────────────────────────┐
  │  0xAlice  → 100 USDC     │   Một hợp đồng,
  │  0xBob    → 50 USDC      │   tất cả số dư bên trong
  │  0xCarol  → 200 USDC     │
  └──────────────────────────┘

Solana:

  Ví của Alice
  ├── Số dư SOL (gốc)
  ├── USDC ATA  → 100 USDC      Mỗi token = tài khoản riêng
  ├── BONK ATA  → 5.000 BONK    Mỗi tài khoản = tiền đặt cọc thuê
  └── JUP ATA   → 30 JUP
```

***

## ATA là gì?

**ATA** viết tắt của **Tài khoản Token Liên kết**. Đó là một tài khoản on-chain duy nhất được suy ra một cách xác định từ địa chỉ ví của bạn và địa chỉ mint của token.

```
Ví của bạn  +  Mint USDC   →   USDC ATA của bạn  (địa chỉ duy nhất)
Ví của bạn  +  Mint BONK   →   BONK ATA của bạn  (địa chỉ duy nhất)
Ví của bạn  +  Mint JUP    →   JUP ATA của bạn   (địa chỉ duy nhất)
```

Mỗi ATA:

* Lưu số dư của bạn cho **một token cụ thể**
* Phải được **tạo** trước khi bạn có thể nhận token đó
* Yêu cầu một **tiền đặt cọc thuê một lần** bằng SOL

***

## Thuê là gì?

Solana tính **thuê** cho việc lưu trữ dữ liệu on-chain. Mọi tài khoản chiếm không gian trên blockchain phải giữ một số dư SOL tối thiểu để tồn tại.

Đối với một tài khoản token (ATA), mức miễn thuê tối thiểu là:

|                   |                      |
| ----------------- | -------------------- |
| **Tiền thuê ATA** | **\~0.00203928 SOL** |
| Ở mức SOL = $150  | \~$0.31              |

Đây là **không phải phí** — đó là **một khoản đặt cọc có thể hoàn trả**. Nếu bạn đóng tài khoản token sau này, toàn bộ khoản thuê sẽ được trả lại vào ví của bạn.

***

## Tại sao \[QR] Wallet không thể tài trợ tiền thuê ATA?

\[QR] Wallet tài trợ **phí giao dịch** — chi phí thực hiện các hoạt động trên mạng (xác minh chữ ký, đơn vị tính toán, phí ưu tiên).

Tiền thuê ATA về cơ bản khác với phí giao dịch:

|                        | Phí Giao dịch                | Tiền Thuê ATA           |
| ---------------------- | ---------------------------- | ----------------------- |
| **Nó là gì**           | Thanh toán cho việc thực thi | Đặt cọc cho lưu trữ     |
| **SOL đi về đâu**      | Đến các validator            | Vào tài khoản mới       |
| **Có hoàn trả không?** | Không                        | Có (khi đóng tài khoản) |
| **Theo mỗi thao tác?** | Mỗi giao dịch                | Một lần mỗi token       |

```
Được [QR] Wallet tài trợ:
├── Phí chữ ký giao dịch    (~0.000005 SOL)
├── Chi phí đơn vị tính toán   (~0.0001 SOL)
└── Phí ưu tiên               (thay đổi)

KHÔNG được tài trợ — người dùng trả:
├── Tiền đặt cọc thuê ATA         (~0.002 SOL cho mỗi token mới)
└── Bị Khóa TRONG tài khoản mới   (hoàn trả khi đóng)
```

Tài trợ tiền thuê có nghĩa là \[QR] Wallet sẽ khóa vĩnh viễn SOL của chính họ trong mọi tài khoản token của người dùng. Ở quy mô lớn, điều này không bền vững về mặt kinh tế — mỗi token mới người dùng nhận sẽ khóa \~0,30 USD quỹ của \[QR] Wallet vô thời hạn.

***

## Khi nào bạn cần thêm SOL?

Việc tạo ATA xảy ra tự động trong quá trình hoán đổi và nhận token. Dưới đây là khi cần thêm SOL:

### Tình huống 1: Hoán đổi SOL → Token

Khi bạn hoán đổi SOL sang bất kỳ token SPL nào và chưa có ATA cho token đó:

```
Số dư SOL của bạn phải đủ để trang trải:
┌─────────────────────────────────────────────┐
│  Số lượng hoán đổi         ví dụ 1.000 SOL   │
│  + Tiền thuê ATA wSOL           ~0.002 SOL    │  ← bọc SOL gốc
│  + Tiền thuê ATA token đầu ra     ~0.002 SOL    │  ← nếu lần đầu nhận
│  + Phí giao dịch                 ~0.000005 SOL  │
│  ─────────────────────────────────────────── │
│  Tổng cần thiết            ≈  1.004 SOL      │
└─────────────────────────────────────────────┘
```

> **wSOL là gì?** Các sàn DEX trên Solana như Jupiter hoạt động với token SPL, không phải SOL gốc. SOL của bạn sẽ tự động **được bọc** thành wSOL (một đại diện SPL) trước khi hoán đổi. Việc bọc này cần một ATA tạm thời riêng.

### Tình huống 2: Hoán đổi Token → Token

Nếu bạn hoán đổi USDC → BONK và chưa có BONK ATA, giao dịch sẽ tạo một ATA. Bạn cần SOL cho tiền thuê **mặc dù bạn đang hoán đổi USDC, không phải SOL**.

```
Hoán đổi USDC → BONK (lần đầu nhận BONK):
┌──────────────────────────────────────────────┐
│  Số dư USDC              đủ cho giao dịch    │
│  + SOL cho tiền thuê BONK ATA      ~0.002 SOL  │  ← cần có!
│  + SOL cho phí giao dịch            ~0.000005 SOL│
└──────────────────────────────────────────────┘
```

### Tình huống 3: Nhận Token

Khi ai đó gửi cho bạn một token mà bạn chưa từng giữ, ATA thường được tạo bởi giao dịch của người gửi. Tuy nhiên, một số giao thức có thể yêu cầu người nhận phải có ATA sẵn.

***

## Tôi nên giữ bao nhiêu SOL?

Chúng tôi khuyến nghị giữ **ít nhất 0.01 SOL** như một khoản đệm:

| Mục đích                          | Chi phí            |
| --------------------------------- | ------------------ |
| Tiền thuê ATA (cho mỗi token mới) | \~0.002 SOL        |
| Phí chữ ký giao dịch              | \~0.000005 SOL     |
| Phí ưu tiên (tắc nghẽn mạng)      | \~0.0001–0.001 SOL |
| Khoản đệm an toàn                 | \~0.005 SOL        |

> **Quy tắc chung:** 0.01 SOL đủ cho \~4 tài khoản token mới và hàng chục giao dịch.

***

## Vòng đời ATA

```
1. Lần đầu hoán đổi hoặc nhận Token X
   └── ATA được tạo tự động → ~0.002 SOL bị khóa làm tiền thuê

2. Sử dụng bình thường
   └── Gửi, nhận, hoán đổi — ATA tồn tại, không tốn thêm tiền thuê

3. Số dư token về 0
   └── ATA vẫn tồn tại, tiền thuê vẫn bị khóa
   └── Sẵn sàng cho các lần nhận trong tương lai — không cần tạo lại

4. Đóng ATA (tùy chọn, thủ công)
   └── ~0.002 SOL được trả lại vào ví của bạn
   └── ATA bị xóa — phải tạo lại để nhận lần nữa
```

***

## Ví dụ Thực tế

Alice có 2.0 SOL và muốn hoán đổi 1.5 SOL → USDC lần đầu tiên.

```
Ví của Alice: 2.0 SOL, 0 USDC (không có USDC ATA)

Bước 1 — Xây dựng giao dịch hoán đổi
         Jupiter bọc 1.5 SOL → wSOL cho giao dịch hoán đổi

Bước 2 — Kiểm tra ATA
         Alice không có wSOL ATA → tạo nó    (−0.002 SOL)
         Alice không có USDC ATA → tạo nó    (−0.002 SOL)

Bước 3 — Thực hiện hoán đổi
         1.5 SOL được hoán đổi → USDC về ATA mới
         Phí giao dịch                       (−0.000005 SOL)

Bước 4 — Dọn dẹp
         wSOL ATA tự đóng                    (+0.002 SOL hoàn trả)

Kết quả: Alice có 0.498 SOL + USDC
         (0.002 SOL bị khóa làm tiền thuê USDC ATA)
```

***

## Câu hỏi thường gặp

**Tại sao tôi thấy “Insufficient SOL” trong khi tôi có đủ cho số lượng hoán đổi?**

Số dư của bạn phải đủ cho số lượng hoán đổi **cộng** tiền thuê ATA và phí giao dịch. Giữ ít nhất 0.003 SOL thêm bên cạnh số lượng hoán đổi.

**Tiền thuê có phải là chi phí vĩnh viễn? Tôi có lấy lại được không?**

Tiền thuê hoàn toàn có thể hoàn trả. Đóng tài khoản token sẽ trả lại toàn bộ khoản đặt cọc vào ví của bạn.

**Tại sao điều này không xảy ra trên Ethereum hoặc Base?**

Các chuỗi EVM lưu tất cả số dư token bên trong hợp đồng thông minh của token — không cần tài khoản hay đặt cọc phụ. Mô hình tài khoản của Solana yêu cầu phân bổ lưu trữ rõ ràng.

**wSOL là gì và tại sao nó cần một ATA?**

Wrapped SOL (wSOL) là một token SPL đại diện cho SOL gốc. Các DEX trên Solana hoạt động trên token SPL, vì vậy SOL gốc phải được bọc trước khi hoán đổi. ATA cho wSOL thường là tạm thời — được tạo cho giao dịch và đóng sau đó, với tiền thuê được hoàn trả.

**Tôi có cần SOL cho mọi lần hoán đổi không?**

Chỉ khi giao dịch bao gồm một token mà bạn chưa từng giữ trước đó (chưa có ATA). Khi đã tạo, ATA tồn tại — các lần hoán đổi tương lai cùng token không cần thêm SOL cho tiền thuê.

**Làm thế nào để tôi lấy lại SOL bị khóa làm tiền thuê ATA?**

Để lấy lại SOL của bạn, bạn cần đóng các tài khoản token không sử dụng (ATA có số dư bằng không). Có một số công cụ và dịch vụ công cộng giúp bạn làm điều này (ví dụ, [Sol Incinerator](https://sol-incinerator.com), các công cụ đóng tài khoản trong các ví Solana phổ biến). \[QR] Wallet đang phát triển một trình quản lý ATA tích hợp cho phép bạn xem và đóng các tài khoản token rỗng trực tiếp từ ứng dụng — thu hồi SOL bị khóa chỉ với một lần chạm. Hãy chờ thông báo cập nhật.

**Nếu tôi hoàn toàn không có SOL thì sao?**

Bạn sẽ không thể tạo ATA mới. Nếu bạn cần nhận token mới trên Solana, trước tiên hãy mua một lượng nhỏ SOL (\~0.01) thông qua cầu chuỗi chéo hoặc tính năng mua crypto.
