> 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-ja/koakonseputo/solana-token-accounts.md).

# Solanaトークンアカウント（ATA）

> スワップにSOLが必要な理由 — そしてSolanaがEVMチェーンと何が違うのか。

***

## EVM対Solana: トークンの保存方法

EVMチェーン（Ethereum、Base、Polygon）では、すべてのトークン残高は1つのスマートコントラクトの中に保存されます。あなたの残高はマッピング内の単なる数値であり、追加アカウントも追加コストもありません。

Solanaは仕組みが違います。保有する各トークンごとに個別の **Associated Token Account（ATA）** — その特定トークンの残高を保存する専用のオンチェーンアカウントです。

```
EVM（Ethereum、Base、Polygon）:

  USDCコントラクト
  ┌──────────────────────────┐
  │  0xAlice  → 100 USDC     │   1つのコントラクト、
  │  0xBob    → 50 USDC      │   すべての残高を内部に
  │  0xCarol  → 200 USDC     │
  └──────────────────────────┘

Solana:

  Aliceのウォレット
  ├── SOL残高（ネイティブ）
  ├── USDC ATA  → 100 USDC      各トークン = 個別アカウント
  ├── BONK ATA  → 5,000 BONK    各アカウント = rentの預託金
  └── JUP ATA   → 30 JUP
```

***

## ATAとは？

**ATA** は **Associated Token Account**の略です。これは、あなたのウォレットアドレスとトークンのミントアドレスから決定的に導出される、固有のオンチェーンアカウントです。

```
あなたのウォレット + USDC Mint   →   あなたのUSDC ATA  （固有アドレス）
あなたのウォレット + BONK Mint   →   あなたのBONK ATA  （固有アドレス）
あなたのウォレット + JUP Mint    →   あなたのJUP ATA   （固有アドレス）
```

各ATA:

* あなたの残高を保存する **1つの特定トークンの**
* 必要が **あります** そのトークンを受け取る前に
* 一度きりの **rent預託** が必要です

***

## rentとは？

Solanaでは **rent** がオンチェーンへのデータ保存に対して課されます。ブロックチェーン上で容量を占有する各アカウントは、生存し続けるために最低限のSOL残高を保持する必要があります。

トークンアカウント（ATA）では、rent免除の最低額は:

|               |                     |
| ------------- | ------------------- |
| **ATAのrent**  | **約0.00203928 SOL** |
| SOL = $150の場合 | \~$0.31             |

これは **手数料ではなく** — これは **返金可能な預託金**です。後でトークンアカウントを閉じれば、rentの全額があなたのウォレットに返還されます。

***

## なぜ\[QR] WalletはATAのrentを負担できないのか？

\[QR] Walletが負担するのは **トランザクション手数料** — ネットワーク上で操作を実行するためのコスト（署名検証、コンピュートユニット、優先手数料）。

ATAのrentは、トランザクション手数料とは根本的に異なります:

|             | トランザクション手数料  | ATAのrent        |
| ----------- | ------------ | --------------- |
| **内容**      | 実行のための支払い    | 保存のための預託        |
| **SOLの行き先** | バリデータへ       | 新しいアカウントへ       |
| **返金可能？**   | いいえ          | はい（アカウントを閉じたとき） |
| **操作ごと？**   | すべてのトランザクション | トークンごとに1回       |

```
[QR] Walletが負担するもの:
├── トランザクション署名手数料    （約0.000005 SOL）
├── コンピュートユニット費用        （約0.0001 SOL）
└── 優先手数料                    （変動）

負担されない — ユーザーが支払うもの:
├── ATA rent預託                  （新規トークンごとに約0.002 SOL）
└── 新しいアカウント内にロックされる  （閉じると返金）
```

rentを負担するということは、\[QR] Walletが各ユーザーのトークンアカウント内に自社のSOLを恒久的にロックすることを意味します。規模が大きくなると、これは経済的に持続不可能です。ユーザーが新しいトークンを受け取るたびに、\[QR] Walletの資金の約$0.30が無期限にロックされてしまいます。

***

## いつ追加のSOLが必要？

ATAの作成は、スワップやトークン受け取りの際に自動的に行われます。追加のSOLが必要になるのは次のとおりです:

### シナリオ1: SOL → トークンスワップ

SOLを任意のSPLトークンにスワップし、そのトークンのATAをまだ持っていない場合:

```
あなたのSOL残高は以下をカバーする必要があります:
┌─────────────────────────────────────────────┐
│  スワップ額                例: 1.000 SOL    │
│  + wSOL ATA rent              約0.002 SOL    │  ← ネイティブSOLをラップ
│  + 出力トークンATA rent      約0.002 SOL    │  ← 初回のみ
│  + トランザクション手数料      約0.000005 SOL │
│  ─────────────────────────────────────────── │
│  必要合計                ≈  1.004 SOL       │
└─────────────────────────────────────────────┘
```

> **wSOLとは？** JupiterのようなSolana DEXは、ネイティブSOLではなくSPLトークンを扱います。あなたのSOLはスワップ前に自動的に **ラップされ** wSOL（SPL表現）になります。このラップには専用の一時的なATAが必要です。

### シナリオ2: トークン → トークンスワップ

USDC → BONKにスワップし、BONK ATAを持っていない場合、スワップ時にそれが作成されます。SOLではなくUSDCをスワップしていても **rentのためにSOLが必要です**.

```
USDC → BONKスワップ（BONKを初めて受け取る場合）:
┌──────────────────────────────────────────────┐
│  USDC残高                スワップに十分       │
│  + BONK ATA rent用のSOL     約0.002 SOL    │  ← 必要！
│  + トランザクション手数料用SOL  約0.000005 SOL  │
└──────────────────────────────────────────────┘
```

### シナリオ3: トークンの受け取り

これまで持ったことのないトークンを誰かが送ってきた場合、通常ATAは送信者のトランザクションによって作成されます。ただし、受取側に既存のATAが必要なプロトコルもあります。

***

## どれくらいのSOLを保持すべき？

私たちは **少なくとも0.01 SOL** を予備として保持することを推奨します:

| 目的                 | コスト               |
| ------------------ | ----------------- |
| ATA rent（新規トークンごと） | 約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がrentとしてロック

2. 通常の利用
   └── 送信、受け取り、スワップ — ATAは維持され、追加rentは不要

3. トークン残高が0になる
   └── ATAはまだ存在し、rentもまだロックされたまま
   └── 将来の受け取りに備えられる — 再作成は不要

4. ATAを閉じる（任意、手動）
   └── 約0.002 SOLがウォレットに返還
   └── ATAは削除される — 再度受け取るには再作成が必要
```

***

## 具体例

Aliceは2.0 SOLを持っていて、初めて1.5 SOL → USDCをスワップしたいと考えています。

```
Aliceのウォレット: 2.0 SOL、0 USDC（USDC ATAなし）

ステップ1 — スワップトランザクションを作成
         Jupiterはスワップのために1.5 SOLをwSOLにラップします

ステップ2 — ATAの確認
         AliceにはwSOL ATAがない → 作成する    （−0.002 SOL）
         AliceにはUSDC ATAがない → 作成する    （−0.002 SOL）

ステップ3 — スワップ実行
         1.5 SOLがスワップされ → USDCが新しいATAに着金
         トランザクション手数料                    （−0.000005 SOL）

ステップ4 — 後処理
         wSOL ATAが自動クローズ                  （+0.002 SOLの返金）

結果:  Aliceは0.498 SOL + USDC
         （0.002 SOLがUSDC ATAのrentとしてロック）
```

***

## FAQ

**なぜ、スワップ額は足りているのに「Insufficient SOL」と表示されるのか？**

あなたの残高はスワップ額 **に加えて** ATA rentとトランザクション手数料をカバーする必要があります。スワップ額に加えて少なくとも0.003 SOLは余分に確保してください。

**rentは永久コスト？ 返金できますか？**

rentは全額返金可能です。トークンアカウントを閉じると、預託金の全額があなたのウォレットに戻ります。

**なぜEthereumやBaseではこれが起きないの？**

EVMチェーンでは、すべてのトークン残高がトークンのスマートコントラクト内に保存されるため、追加アカウントや預託金は不要です。Solanaのアカウントモデルでは、明示的な保存領域の割り当てが必要です。

**wSOLとは何で、なぜATAが必要なの？**

Wrapped SOL（wSOL）は、ネイティブSOLを表すSPLトークンです。Solana DEXはSPLトークン上で動作するため、ネイティブSOLはスワップ前にラップする必要があります。wSOL ATAは通常一時的なもので、スワップのために作成され、その後閉じられ、rentは返金されます。

**すべてのスワップでSOLが必要？**

そのスワップに、これまで一度も持ったことのないトークンが含まれる場合のみです（既存ATAがない場合）。一度作成されればATAは維持されるため、同じトークンペアの今後のスワップでrent用の追加SOLは不要です。

**ATAとしてロックされたSOLをどうやって取り戻すの？**

SOLを取り戻すには、未使用のトークンアカウント（残高0のATA）を閉じる必要があります。これを助ける公開ツールやサービスがいくつかあります（例: [Sol Incinerator](https://sol-incinerator.com)、人気のSolanaウォレットにあるアカウントクローザー）。\[QR] Walletは、アプリから直接空のトークンアカウントを確認して閉じられる、内蔵ATAマネージャーを開発中です — ワンタップでロックされたSOLを取り戻せます。続報をお待ちください。

**もしSOLをまったく持っていなかったら？**

新しいATAは作成できません。Solanaで新しいトークンを受け取りたい場合は、まずクロスチェーンブリッジまたは暗号資産の購入機能で少量のSOL（約0.01）を入手してください。
