Aset di Solana

Token adalah aset digital yang mewakili kepemilikan atas berbagai kategori aset. Tokenisasi memungkinkan digitalisasi hak properti. Token di Solana disebut sebagai SPL (Solana Program Library) Token.

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

Bagian ini mencakup konsep dasar tentang bagaimana token direpresentasikan di Solana. Lihat bagian SPL Token Basics untuk contoh kode.

Poin-poin kunci

  • Token Programs berisi semua logika instruksi untuk berinteraksi dengan token di jaringan (baik fungible maupun non-fungible).

  • Mint Account mewakili token tertentu dan menyimpan metadata global tentang token seperti total pasokan dan mint authority (alamat yang berwenang membuat unit baru dari sebuah token).

  • Token Account melacak kepemilikan individu token untuk mint account tertentu untuk pemilik tertentu.

  • Associated Token Account adalah token account yang dibuat dengan alamat yang diturunkan dari alamat pemilik dan alamat mint account.

Token Programs

Ekosistem Solana memiliki dua Token Programs utama. Kode sumber untuk kedua program di bawah ini.

Token Programs berisi semua logika instruksi untuk berinteraksi dengan token di jaringan (baik fungible maupun non-fungible). Semua token di Solana secara efektif merupakan akun data yang dimiliki oleh Token Program.

Token ProgramToken Program

Mint Account

Token di Solana diidentifikasi secara unik oleh alamat Mint Account yang dimiliki oleh Token Program. Account ini bertindak sebagai penghitung global untuk token tertentu dan menyimpan data seperti:

  • Supply: Total supply token
  • Decimals: Presisi desimal token
  • Mint authority: Akun yang berwenang membuat unit baru dari token, meningkatkan supply
  • Freeze authority: Akun yang berwenang membekukan token dalam token account, mencegahnya untuk ditransfer atau dibakar

Otoritas mint dikonfigurasi saat mint diinisialisasi. Otoritas ini mengizinkan pembuatan mint di masa mendatang, namun tidak harus berupa akun yang membuat atau membayar mint account.

Mint AccountMint Account

Detail lengkap yang disimpan pada setiap mint account mencakup hal-hal berikut:

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>,
}

Sebagai referensi, berikut adalah link Solana Explorer ke USDC Mint Account.

Token Account

Token Program membuat token account untuk melacak kepemilikan individual dari setiap unit token. Token account menyimpan data seperti:

  • Mint: Token yang dipegang oleh token account dalam bentuk unit
  • Owner: Akun yang berwenang mentransfer token dari token account
  • Amount: Jumlah token yang saat ini dipegang oleh token account

Token AccountToken Account

Detail lengkap yang disimpan pada setiap token account mencakup hal-hal berikut:

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>,
}

Sebuah dompet memerlukan token account untuk setiap token (mint) yang ingin dipegangnya, dengan alamat dompet ditetapkan sebagai pemilik token account. Setiap dompet dapat memiliki beberapa token account untuk token (mint) yang sama, tetapi token account hanya dapat memiliki satu pemilik dan menyimpan unit dari satu token (mint).

Account RelationshipAccount Relationship

Perlu diperhatikan bahwa data setiap Token Account menyertakan field owner yang mengidentifikasi siapa yang memiliki otoritas atas Token Account tersebut. Hal ini berbeda dari pemilik program yang ditentukan dalam tipe Account dasar, yang merupakan Token Program untuk semua Token Account.

Associated Token Account

Associated Token Account menyederhanakan proses pencarian alamat token account untuk mint dan pemilik tertentu. Anggap Associated Token Account sebagai token account "default" untuk mint dan pemilik tertentu.

Associated Token Account dibuat dengan alamat yang diturunkan dari alamat pemilik dan alamat mint account. Penting untuk memahami bahwa Associated Token Account hanyalah token account dengan alamat tertentu.

Ini memperkenalkan konsep kunci dalam pengembangan Solana: Program Derived Address (PDA). PDA menurunkan alamat secara deterministik menggunakan input yang telah ditentukan, sehingga memudahkan pencarian alamat akun.

Associated Token AccountAssociated Token Account

Perhatikan bahwa setiap dompet memerlukan token account sendiri untuk menyimpan token dari mint yang sama.

Hubungan Akun DiperluasHubungan Akun Diperluas

Is this page helpful?

Daftar Isi

Edit Halaman
© 2026 Yayasan Solana. Semua hak dilindungi.