Overtollige Lamports Opnemen

Wat Doet Overtollige Lamports Opnemen?

WithdrawExcessLamports verplaatst SOL die door een Token Program-account wordt aangehouden boven het huurvrije minimum naar een bestemmingsaccount. Tokenbalansen en mint-voorraad blijven onaangetast — alleen de overtollige lamports worden verplaatst.

Dit herstelt SOL die eerder vast zat: lamports die naar een token account, mint of multisig (allemaal eigendom van het Token Program) werden gestuurd, konden anders niet worden verplaatst.

Bronverwijzing

ItemBeschrijvingBron
WithdrawExcessLamportsDe instructie (discriminator 38).Bron
process_withdraw_excess_lamportsProcessorlogica en autoriteitscontroles.Bron

Accounts

AccountBeschrijving
sourceSchrijfbaar. Het token account, de mint of het multisig om van op te nemen.
destinationSchrijfbaar. Ontvangt de overtollige lamports.
authorityOndertekent op basis van het type bronaccount (zie hieronder).

Wie Kan Ondertekenen

De vereiste ondertekenaar hangt af van het type source-account:

BronaccountOndertekenaar
Token accountDe eigenaar van het token account (of de bijbehorende multisig-ondertekenaars).
Mint met een mint-autoriteitDe mint-autoriteit.
Mint zonder een mint-autoriteitHet mint account zelf moet ondertekenen (zie de opmerking hieronder).
MultisigDe geconfigureerde M-van-N-ondertekenaars.

Het geval "mint zonder mint authority" is ongebruikelijk. Wanneer dit van toepassing is, is het mint-account de ondertekenaar: een programma-eigendom (off-curve) mint ondertekent via een CPI van het eigenaarsprogramma, en een keypair (on-curve) mint ondertekent met zijn sleutel.

Native (wrapped SOL) token accounts worden niet ondersteund en retourneren NativeNotSupported. De opname kan het bronaccount niet onder het minimale rent-exempt bedrag brengen.

Hoe overtollige lamports op te nemen

Het voorbeeld gebruikt een geconfigureerde @solana/kit client — zie Tokens overmaken voor de clientinstelling.

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]);

Voor een multisig authority geeft u de mede-ondertekenaars mee met multiSigners.

Is this page helpful?

Inhoudsopgave

Pagina Bewerken
© 2026 Solana Foundation. Alle rechten voorbehouden.