Fazla Lamport'ları Çek

Fazla Lamport Çekme Ne İşe Yarar?

WithdrawExcessLamports, bir Token Program hesabının kira muafiyeti minimumunun üzerinde tuttuğu SOL'u hedef bir hesaba taşır. Token bakiyeleri ve mint arzı değişmez — yalnızca fazla lamport'lar hareket eder.

Bu işlem, daha önce kilitli kalan SOL'u geri kazandırır: bir token account, mint veya multisig'e (hepsi Token Program tarafından sahiplenilir) gönderilen lamport'lar başka türlü taşınamazdı.

Kaynak Referans

ÖğeAçıklamaKaynak
WithdrawExcessLamportsTalimat (ayırt edici 38).Kaynak
process_withdraw_excess_lamportsİşlemci mantığı ve yetki kontrolleri.Kaynak

Hesaplar

HesapAçıklama
sourceYazılabilir. Çekim yapılacak token account, mint veya multisig.
destinationYazılabilir. Fazla lamport'ları alır.
authorityKaynak hesap türüne göre imzalar (aşağıya bakın).

Kim İmzalayabilir

Gerekli imzalayan, source hesabının türüne bağlıdır:

Kaynak hesapİmzalayan
Token accountToken account sahibi (veya multisig imzalayanları).
Mint authority'ye sahip mintMint authority.
Mint authority'ye sahip olmayan mintmint account'un kendisi imzalamalıdır (aşağıdaki nota bakın).
MultisigYapılandırılmış M-of-N imzalayanlar.

"Mint authority'si olmayan mint" durumu nadiren karşılaşılan bir durumdur. Bu durumun geçerli olduğu hallerde, mint hesabı imzalayan taraftır: program tarafından sahip olunan (off-curve) bir mint, sahibi olan programdan gelen bir CPI aracılığıyla imzalar; keypair (on-curve) mint ise kendi anahtarıyla imzalar.

Yerel (sarmalanmış SOL) token account'lar desteklenmez ve NativeNotSupported döndürür. Para çekme işlemi, kaynak hesabı kira muafiyeti asgari bakiyesinin altına düşüremez.

Fazla lamport Nasıl Çekilir

Örnek, yapılandırılmış bir @solana/kit istemcisi kullanmaktadır — istemci kurulumu için Token Transferi bölümüne bakın.

Withdraw excess lamports (Kit)
import { getWithdrawExcessLamportsInstruction } from "@solana-program/token";
// source/destination: addresses of the account to drain and the lamport recipient.
// authority: a TransactionSigner that signs per the source account type.
const instruction = getWithdrawExcessLamportsInstruction({
source,
destination,
authority
});
await client.sendTransaction([instruction]);

Çoklu imza yetkisi için, ortak imzalayanları multiSigners ile birlikte iletin.

Is this page helpful?

İçindekiler

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