WithdrawExcessLamports adalah instruksi 38 Token Program. Instruksi ini memindahkan lamport berlebih dari mint, akun token, atau multisig.
Apa yang dilakukan WithdrawExcessLamports?
WithdrawExcessLamports hanya memindahkan SOL di atas reserve rent live. Sumber tetap terbuka dan data token atau mint tidak berubah. Tanda tangan yang diperlukan bergantung pada jenis sumber.
Perilakunya berlaku untuk SPL Token dan Token-2022 serta dijelaskan dalam dokumentasi Solana dan repository Token publik.
| Akun | Writable? | Signer? | Tujuan |
|---|---|---|---|
source | Ya | Kadang | Akun token, mint, atau multisig dengan kelebihan |
destination | Ya | Tidak | Menerima lamport |
authority | Tidak | Tergantung sumber | Membuktikan izin |
multiSigners | Tidak | Ya bila dipakai | Memenuhi ambang multisig |
| Sumber | Authority yang diperlukan |
|---|---|
| Akun token milik wallet | Owner akun token |
| Akun token multisig | Anggota M-dari-N |
| Mint dengan mint authority | Mint authority aktif |
| Mint tanpa mint authority | Akun mint sendiri |
| Multisig sebagai sumber | Anggota M-dari-N yang dikonfigurasi |
Mint on-curve yang authority-nya dicabut memerlukan keypair; mint off-curve memerlukan CPI dengan seed PDA yang benar.
Contoh client
import { getWithdrawExcessLamportsInstruction } from "@solana-program/token";
const instruction = getWithdrawExcessLamportsInstruction({
source,
destination,
authority,
});
await client.sendTransaction([instruction]);
authority adalah TransactionSigner; cosigner multisig masuk melalui multiSigners. Contoh memakai @solana-program/token dan dapat disusun dengan @solana/kit.
Pada 2026, bedakan 2 keluarga program token; Token-2022 adalah salah satunya.
Jangan hard-code 0.00203928 SOL. Itu minimum lama akun standar 165 byte, bukan nilai live universal. Minta reserve untuk panjang data aktual tepat sebelum preview atau build.
Ekstensi Token-2022 dapat membuat akun lebih besar dari 82 atau 165 byte. CPI Guard terkunci dapat memblokir wrapper. Wrapped SOL native mengembalikan NativeNotSupported. Aturan ini berlaku untuk preview Token-2022 dan transaksi Token-2022.
API Sol Incinerator
Assetcinerator memberlakukan biaya protokol dan partner sebagai lapisan produk; instruksi token mentah tidak memerlukannya.
curl -X POST https://v2.api.sol-incinerator.com/withdraw-excess-lamports/preview \
-H "content-type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"userPublicKey": "DESTINATION_WALLET",
"sourceAccount": "TOKEN_ACCOUNT_MINT_OR_MULTISIG"
}'
POST /withdraw-excess-lamportsPOST /withdraw-excess-lamports-instructions
userPublicKey adalah tujuan dan authority default. Opsional: authorityPublicKey dan hingga 11 multisigSignerPublicKeys. Biaya dasar 200 bps; integrator dapat menambah partnerFeeAccount dan partnerFeeBps. Gunakan feeLamports dan nilai hasil pada respons.
Tangani tidak adanya kelebihan, owner/layout salah, authority invalid, multisig tidak lengkap, akun native, CPI Guard, perubahan state, dan nilai tak ekonomis sebagai error terpisah.

Sol Incinerator
Preview kelebihan live atau bangun penarikan yang aman ditandatangani melalui API v2.