Solana'da Varlıklar

Token'lar, çeşitli varlık kategorileri üzerindeki mülkiyeti temsil eden dijital varlıklardır. Tokenizasyon, mülkiyet haklarının dijitalleştirilmesini sağlar. Solana'daki token'lara SPL (Solana Program Library) token'ları denir.

The Token Program updates a mint and its token accounts while owners authorize balance changes

Bu bölüm, token'ların Solana'da nasıl temsil edildiğine dair temel kavramları kapsar. Kod örnekleri için SPL token temelleri bölümüne bakın.

Önemli noktalar

  • Token Programs, ağdaki token'larla (hem değiştirilebilir hem de değiştirilemez) etkileşim için tüm talimat mantığını içerir.

  • Mint account, belirli bir token'ı temsil eder ve token hakkında toplam arz ve mint yetkisi (bir token'ın yeni birimlerini oluşturmaya yetkili adres) gibi global meta verileri saklar.

  • Token account, belirli bir sahip için belirli bir mint account'a ait token'ların bireysel sahipliğini takip eder.

  • Associated token account, sahip ve mint account adreslerinden türetilen bir adresle oluşturulan bir token account'tır.

Token Program'lar

Solana ekosisteminin iki ana Token Program'ı vardır. Her iki programın kaynak kodu aşağıdadır.

Token Programs, ağdaki token'larla (hem değiştirilebilir hem de değiştirilemez) etkileşim için tüm talimat mantığını içerir. Solana'daki tüm token'lar, bir Token Program tarafından sahiplenilen veri hesaplarıdır.

Token ProgramToken Program

Mint account

Solana'daki token'lar, Token Program'a ait bir mint account adresine göre benzersiz şekilde tanımlanır. Bu hesap, belirli bir token için global bir sayaç görevi görür ve şu gibi verileri saklar:

  • Supply: Token'ın toplam arzı
  • Decimals: Token'ın ondalık hassasiyeti
  • Mint authority: Token'ın yeni birimlerini oluşturmaya yetkili hesap, arzı artırır
  • Freeze authority: Token Account'taki tokenları dondurmaya yetkili hesap, transfer edilmelerini veya yakılmalarını engeller

Mint yetkisi, mint başlatıldığında yapılandırılır. Gelecekteki basım işlemlerini yetkilendirir; ancak mint account'ı oluşturan veya bunun ücretini ödeyen hesap olmak zorunda değildir.

Mint AccountMint Account

Her Mint Account'ta saklanan tam detaylar şunları içerir:

Mint Account State
pub struct Mint {
/// Optional authority used to mint new tokens. The mint authority may only
/// be provided during mint creation. If no mint authority is present
/// then the mint has a fixed supply and no further tokens may be
/// minted.
pub mint_authority: COption<Pubkey>,
/// Total supply of tokens.
pub supply: u64,
/// Number of base 10 digits to the right of the decimal place.
pub decimals: u8,
/// Is `true` if this structure has been initialized
pub is_initialized: bool,
/// Optional authority to freeze token accounts.
pub freeze_authority: COption<Pubkey>,
}

Referans olarak, işte USDC Mint Account'a ait Solana Explorer bağlantısı.

Token Account

Token Program, her token biriminin bireysel sahipliğini takip etmek için Token Account'lar oluşturur. Bir Token Account şu gibi verileri saklar:

  • Mint: Token Account'ın birimlerini tuttuğu token
  • Owner: Token Account'tan token transfer etmeye yetkili hesap
  • Amount: Token Account'ın şu anda tuttuğu token sayısı

Token AccountToken Account

Her Token Account'ta saklanan tam detaylar şunları içerir:

Token Account State
pub struct Account {
/// The mint associated with this account
pub mint: Pubkey,
/// The owner of this account.
pub owner: Pubkey,
/// The amount of tokens this account holds.
pub amount: u64,
/// If `delegate` is `Some` then `delegated_amount` represents
/// the amount authorized by the delegate
pub delegate: COption<Pubkey>,
/// The account's state
pub state: AccountState,
/// If is_native.is_some, this is a native token, and the value logs the
/// rent-exempt reserve. An Account is required to be rent-exempt, so
/// the value is used by the Processor to ensure that wrapped SOL
/// accounts do not drop below this threshold.
pub is_native: COption<u64>,
/// The amount delegated
pub delegated_amount: u64,
/// Optional authority to close the account.
pub close_authority: COption<Pubkey>,
}

Bir cüzdanın tutmak istediği her token (mint) için bir token hesabına ihtiyacı vardır ve cüzdan adresi token hesabının sahibi olarak ayarlanır. Her cüzdan aynı token (mint) için birden fazla token hesabına sahip olabilir, ancak bir token hesabının yalnızca bir sahibi olabilir ve bir token'ın (mint) birimlerini tutabilir.

Hesap İlişkisiHesap İlişkisi

Her Token Account'ın verilerinin, Token Account üzerinde kimin yetkiye sahip olduğunu tanımlayan bir owner alanı içerdiğine dikkat edin. Bu durum, temel Account türünde belirtilen ve tüm Token Account'lar için Token Program olan program sahibinden farklıdır.

Associated Token Account

Associated Token Account'lar, belirli bir mint ve sahip için bir token account adresini bulma sürecini basitleştirir. Associated Token Account'u, belirli bir mint ve sahip için "varsayılan" token account olarak düşünün.

Bir Associated Token Account, sahibin adresinden ve mint account'un adresinden türetilen bir adresle oluşturulur. Bir Associated Token Account'un, belirli bir adrese sahip sadece bir token account olduğunu anlamak önemlidir.

Bu, Solana geliştirmede önemli bir kavramı ortaya koyar: Program Derived Address (PDA). Bir PDA, önceden tanımlanmış girdileri kullanarak deterministik olarak bir adres türetir ve bu da bir hesabın adresini bulmayı kolaylaştırır.

Associated Token AccountAssociated Token Account

Her cüzdanın aynı mint'ten token tutmak için kendi token account'una ihtiyacı olduğunu unutmayın.

Genişletilmiş Hesap İlişkileriGenişletilmiş Hesap İlişkileri

Is this page helpful?

İçindekiler

Sayfayı Düzenle
© 2026 Solana Vakfı. Tüm hakları saklıdır.