> ## Documentation Index
> Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
> Use this file to discover all available pages before exploring further.

# SPL Token ve Token-2022

> Raydium'un üzerinde çalıştığı iki token standardı — eski SPL Token programı ve uzantı desteği olan Token-2022 programı. Her birinin ne olduğu, farkları ve hangi Raydium ürünlerinin hangisini desteklediği.

<Info>
  **Bu sayfa yapay zekâ tarafından otomatik olarak çevrilmiştir. İngilizce sürüm esas alınır.**

  [İngilizce sürümü görüntüle →](/solana-fundamentals/spl-token-and-token-2022)
</Info>

<Info>
  Solana'daki her işlem gören varlık — Raydium havuzunun her temel ve teklif varlığı dahil — iki programdan biri tarafından basılan bir tokendır: eski **SPL Token** programı veya onun halefi olan **Token-2022**. Bunlar farklı adreslerde bulunan ayrı programlardır ve farklı hesap düzenlerine ve uzantı semantiklerine sahiptir. Raydium her ikisini destekler, ancak her yerde değil: CPMM, CLMM ve Farm v6 Token-2022 mintlerini kabul eder; AMM v4 ise kabul etmez. Herhangi bir havuzla entegrasyondan önce bu ayrımı anlamak çok önemlidir.
</Info>

## İki program

|                             | SPL Token                                     | Token-2022                                    |
| --------------------------- | --------------------------------------------- | --------------------------------------------- |
| Program ID                  | `TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA` | `TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb` |
| Piyasaya sürülüş            | 2020                                          | 2022                                          |
| Hesap boyutu (token hesabı) | 165 B                                         | 165 B + uzantılar (değişken)                  |
| Uzantılar                   | Hayır                                         | Evet — 17+ resmi uzantı                       |
| Eski uyumluluk              | Tam                                           | Mint başına tercih etmeye bağlı               |

Her ikisi de Solana Labs ekibi (şu anda Anza) tarafından yönetilir ve `solana-program-library` deposu altında bulunur.

## Neden iki program?

SPL Token, ileri uyumluluk için dondurulmuştur — bytekodu etkili bir şekilde değişmezdir ve tüm ekosistem için temiz bir temel oluşturur. Kullanım alanları büyüdükçe (stablecoin'ler aktarım ücreti istediğinde, kurumsal mintler nüanslı dondurma yetkilerine ihtiyaç duyduğunda, NFT'ler meta veri işaretçilerine ihtiyaç duyduğunda), Solana ekibi SPL Token'ı yükseltmek yerine ayrı bir genişletilebilir program olarak **Token-2022**'yi tanıttı. Bu, mevcut entegrasyonları korur ve her minti tam ihtiyacı olan uzantılara tercih etmesine izin verir.

Token-2022, işlevsellikte kesin bir üst küme olmasına rağmen, adres alanında değildir: iki program bir arada var olur ve belirli bir adresdeki bir mint tam olarak birinin altında bulunur.

## Hesap yapısı

### Mint hesabı

Bir tokenin kimliğini tanımlar.

SPL Token mint (82 bayt):

```
u32   mint_authority_option
Pubkey mint_authority
u64   supply
u8    decimals
bool  is_initialized
u32   freeze_authority_option
Pubkey freeze_authority
```

Token-2022 mint: aynı temel düzen, plus tabandan sonra sıfır veya daha fazla **uzantı TLV** (type-length-value) kaydı eklendi.

### Token hesabı

Belirli bir mint'in belirli bir sahip için bakiyesini tutar.

SPL Token hesabı (165 bayt):

```
Pubkey mint
Pubkey owner
u64    amount
u32    delegate_option
Pubkey delegate
u8     state         // initialized, frozen
u32    is_native_option
u64    is_native
u64    delegated_amount
u32    close_authority_option
Pubkey close_authority
```

Token-2022 hesabı: aynı temel yapı, herhangi bir uzantı aktifse uzantı TLV kayıtları.

## Token-2022 uzantıları

Uzantılar, mintlere veya hesaplara eklenebilen modüler özelliklerdir. Her uzantı ayrı bir TLV kaydıdır. Raydium için önemli olanlar:

### Aktarım ücreti

Mint, her aktarımda yüzdelik bir ücret talep edebilir. Ücret, yapılandırılmış bir geri çekme otoritesine gider. Raydium CPMM ve CLMM tarafından `SwapV2` aracılığıyla desteklenir — program döviz kuru hesaplanırken ücreti hesaba katarak havuz matematiği tutarlı kalır.

```rust theme={null}
let extension = TransferFeeConfig {
    transfer_fee_config_authority,
    withdraw_withheld_authority,
    withheld_amount: 0,
    older_transfer_fee: ...,
    newer_transfer_fee: ...,
};
```

### Aktarım kancası

Mint, çalışma zamanının her aktarımda çağırdığı bir programa işaret eder. Kanca programı aktarımı reddedebilir veya yan etkiler gerçekleştirebilir (uyum durumunu güncelleme, günlüğe kaydetme vb.). Raydium CPMM/CLMM, kancayı `SwapV2` aracılığıyla çağırır — işlem, kanca programını ve ihtiyacı olan ek hesapları içerir.

### Faiz getiren

Zincir üzerindeki bakiye, yapılandırılmış bir oranda faiz tahakkuk eder. Gerçek mint yerine yalnızca ekranda gösterilir (bakiyeler zaman içinde daha yüksek görünür); temel arz değişmez.

### Mint kapatma yetkisi

Arz sıfıra ulaştığında minti kapatmaya izin verir.

### Kalıcı temsilci

Belirtilen bir cüzdan, herhangi bir hesaptan koşulsuz olarak token'ları aktarabilir veya yakabilir. **Raydium, bu uzantıya sahip mintler için havuz oluşturmayı engeller** — havuz rezervlerinin ele geçirilemeyeceği değişmezine uyumsuzdur.

### Aktarılamaz

Token'lar basıldıkları hesaptan taşınamaz. **Raydium havuz oluşturmayı engeller** — işlem göremeyen bir varlık, LP havuzunun temel veya teklif varlığı olamaz.

### Varsayılan hesap durumu

Bu mint için yeni token hesapları varsayılan olarak dondurulmuştur ve dondurma otoritesi tarafından çözülmelidir. Kullanılabilir ancak nadirdır.

### Gizli aktarım

Bakiye ve aktarım tutarları şifrelenmiş. Raydium, gizli aktarım mintlerini desteklemez (havuz matematiği açık metin bakiyeler gerektirir).

### Meta veri işaretçisi + token meta verisi

Token-2022 mintleri için Metaplex meta verilerinin yerini alır. Raydium havuz listeleri için desteklenir.

### Grup / Üye işaretçisi

Bir minti bir gruba ait olarak bildirir (ör. NFT koleksiyonu). Bilgilendirici; Raydium bunu görüntüleme için kullanır.

Tam liste için [resmi Token-2022 uzantıları sayfasına](https://spl.solana.com/token-2022/extensions) bakın.

## Hangi Raydium ürünleri neleri destekler

| Ürün      | SPL Token | Token-2022 | Notlar                                             |
| --------- | --------- | ---------- | -------------------------------------------------- |
| AMM v4    | Evet      | Hayır      | OpenBook entegrasyonu SPL Token gerektirir         |
| CPMM      | Evet      | Evet       | Token-2022 havuzları için `SwapV2` gerektirir      |
| CLMM      | Evet      | Evet       | Token-2022 havuzları için `SwapV2` gerektirir      |
| Farm v6   | Evet      | Evet       | Stake mint ve reward mint'leri için desteklenir    |
| LaunchLab | Evet      | Evet       | Mezun CPMM havuzları Token-2022 desteğini devralır |

Raydium havuzları için mint uygunluğu — listelenenler hariç tüm uzantılara izin verilir:

* **Engellenen**: aktarılamaz, kalıcı temsilci, gizli aktarım, varsayılan hesap durumu (reddedilen yapılandırmalarda).
* **Uyarı ile izin verilen** (LP riski kabul etmelidir): aktarım ücreti, aktarım kancası, dondurma otoritesi etkin.
* **Tamamen izin verilen**: faiz getiren, meta veri işaretçisi, grup işaretçisi, mint kapatma yetkisi.

`getPoolInfoFromRpc` yanıtı, mintin uzantı bayraklarını içerir — istemciler LP yapmadan önce kontrol etmelidir.

## Token hesabı standartları

### İlişkili Token Hesabı (ATA)

Her iki program da **İlişkili Token Hesabı** kuralını paylaşır: `[owner, programId, mint]` üzerinden İlişkili Token Programı (`ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL`) aracılığıyla türetilen bir PDA. Solana'daki hemen hemen her kullanıcı token hesabı bir ATA'dır.

```ts theme={null}
import { getAssociatedTokenAddressSync } from "@solana/spl-token";

// SPL Token
const ata = getAssociatedTokenAddressSync(mint, owner);

// Token-2022
const ata22 = getAssociatedTokenAddressSync(
  mint,
  owner,
  false,               // allowOwnerOffCurve
  TOKEN_2022_PROGRAM_ID,
);
```

ATA programı, mintin hangi programa ait olduğuna göre uygun token programına ait hesaplar oluşturur.

### ATA olmayan token hesapları

Bir cüzdan, tek bir mint için birden fazla token hesabına sahip olabilir; ATA sadece kuralın adıdır. Havuz hazıneları, örneğin ATA değildir — bunlar havuz programının PDA'ları olup havuzun rezervlerini tutarlar.

## Mintin hangi programa ait olduğunu tespit etme

Her mintin hesabının, SPL Token veya Token-2022'yi gösteren bir `owner` alanı vardır:

```ts theme={null}
const mintInfo = await connection.getAccountInfo(mintPubkey);
if (mintInfo.owner.equals(TOKEN_PROGRAM_ID)) {
  console.log("SPL Token mint");
} else if (mintInfo.owner.equals(TOKEN_2022_PROGRAM_ID)) {
  console.log("Token-2022 mint");
}
```

Raydium SDK bu tespiti otomatik olarak işler — `getPoolInfoFromRpc` istemcilerin doğru ATA'lar oluşturabilmesi için token başına uygun `programId`'yi döndürür.

## Program tarafından swap talimatları

Raydium'un CPMM ve CLMM'nin her biri iki swap talimatına sahiptir:

| Talimat                         | Desteklenen Mintler               |
| ------------------------------- | --------------------------------- |
| `Swap` / `SwapBaseInput` (eski) | Sadece SPL Token                  |
| `SwapV2` / `SwapBaseInputV2`    | SPL Token ve Token-2022 her ikisi |

`SwapV2` ek hesaplar alır: her iki taraf için mint hesapları, her taraf için token programı (farklı olabileceğinden), ve — aktarım kancası mintleri için — kanca programı ve gereken hesapları.

İstemciler, en az bir taraf Token-2022 olduğunda `SwapV2`'yi her zaman kullanmalıdır; `SwapV2` SPL-only havuzlar için de çalışır, ancak eski `Swap` işlem gücünde daha ucuzdur.

SDK doğru varyantı otomatik olarak seçer.

## SPL Token projesini Token-2022'ye geçirme

Token-2022, mint düzeyinde bir değiştirme değildir — X adresinde bir mint ya SPL ya da Token-2022'dir ve bu oluşturulurken sabittir. "Geçirmek" için şunları yapmalısınız:

1. İstediğiniz uzantılarla Token-2022 altında yeni bir mint oluşturun.
2. Eski SPL mint sahiplerine yeni mint için takas/sarmalama mekanizması sağlayın.
3. Tüm LP havuzları, çiftlikleri ve entegrasyonları yeni minti referans edecek şekilde güncelleyin.

Bu ağırdır. Çoğu proje SPL altında başlar ve belirli bir uzantı ihtiyacı taşımaya zorlamamadığı sürece SPL altında kalır.

## Örnek çalışma: Aktarım ücreti ile Token-2022 mint oluşturma

```ts theme={null}
import {
  Connection, Keypair, SystemProgram, Transaction, sendAndConfirmTransaction,
} from "@solana/web3.js";
import {
  TOKEN_2022_PROGRAM_ID, ExtensionType, createInitializeMintInstruction,
  getMintLen, createInitializeTransferFeeConfigInstruction,
} from "@solana/spl-token";

const connection = new Connection("https://api.mainnet-beta.solana.com");
const payer      = Keypair.generate();
const mint       = Keypair.generate();

const extensions    = [ExtensionType.TransferFeeConfig];
const mintLen       = getMintLen(extensions);
const rentLamports  = await connection.getMinimumBalanceForRentExemption(mintLen);

const tx = new Transaction().add(
  SystemProgram.createAccount({
    fromPubkey:       payer.publicKey,
    newAccountPubkey: mint.publicKey,
    space:            mintLen,
    lamports:         rentLamports,
    programId:        TOKEN_2022_PROGRAM_ID,
  }),
  createInitializeTransferFeeConfigInstruction(
    mint.publicKey,
    payer.publicKey,                  // transfer fee authority
    payer.publicKey,                  // withdraw-withheld authority
    50,                               // 50 bps = 0.5%
    BigInt(1_000_000),                // max fee per transfer (smallest units)
    TOKEN_2022_PROGRAM_ID,
  ),
  createInitializeMintInstruction(
    mint.publicKey,
    9,                                // decimals
    payer.publicKey,                  // mint authority
    null,                             // freeze authority
    TOKEN_2022_PROGRAM_ID,
  ),
);

await sendAndConfirmTransaction(connection, tx, [payer, mint]);
```

Bu mint, Raydium CPMM havuzuna LP olabilir; değiş tokuşçular havuzun swap ücreti üzerine %0.5 aktarım ücreti ödeyecekler.

## Güvenlik değerlendirmeleri

Bir Token-2022 minte LP yapmadan veya onun aracılığıyla değiş tokuş yapmadan önce:

* **`freeze_authority`'yi kontrol edin**. Null değilse ve merkezi bir taraf tarafından tutuluyorsa, sizin ATA'nızı (ve tartışmalı şekilde havuz hazinesini) dondurabilirler.
* **`transfer_hook`'u kontrol edin**. Kanca programı aktarımları keyfi olarak engelleyebilir — kanca kaynağı hakkında araştırma yapın.
* **`transfer_fee`'yi kontrol edin**. Beklenen swap çıktısında ücreti hesaba katın.
* **`permanent_delegate` ve `non_transferable`'u kontrol edin**. Raydium'un programı bunları reddeder, ancak özel entegrasyon oluşturuyorsanız doğrulayın.

Tam risk kabul çerçevesi için [`security/oracle-and-token-risks`](/tr/security/oracle-and-token-risks)'a bakın.

## İşaretçiler

* [`solana-fundamentals/account-model`](/tr/solana-fundamentals/account-model) — genel hesap modeli.
* [`reference/token-2022-support`](/tr/reference/token-2022-support) — CPMM ve CLMM için Token-2022 özellikleri.
* [`security/oracle-and-token-risks`](/tr/security/oracle-and-token-risks) — kötü niyetli mint uzantılarından kaynaklanan riskler.

Kaynaklar:

* [SPL Token belgeler](https://spl.solana.com/token).
* [Token-2022 belgeler](https://spl.solana.com/token-2022) — tam uzantı listesi.
* [İlişkili Token Hesabı](https://spl.solana.com/associated-token-account).
