WithdrawExcessLamports sur Solana : guide SPL Token et Token-2022
Tarifs et fonctionnalités vérifiés 3 septembre 2026.
WithdrawExcessLamports est l'instruction 38 du Token Program. Elle déplace les lamports excédentaires d'un mint, compte de token ou multisig.
Fonctionnement
WithdrawExcessLamports ne transfère que le SOL supérieur à la réserve live. La source reste ouverte et les données token/mint ne changent pas. La signature dépend du type de source.
Elle existe pour SPL Token et Token-2022. Voir la documentation Solana et le processeur public.
| Compte | Writable ? | Signer ? | Rôle |
|---|---|---|---|
source | Oui | Parfois | Compte, mint ou multisig excédentaire |
destination | Oui | Non | Reçoit les lamports |
authority | Non | Selon la source | Prouve l'autorisation |
multiSigners | Non | Si utilisé | Satisfont le seuil multisig |
| Source | Authority requise |
|---|---|
| Compte détenu par wallet | Owner du compte |
| Compte multisig | Membres M-sur-N |
| Mint avec mint authority | Mint authority active |
| Mint sans mint authority | Compte mint lui-même |
| Multisig source | Membres M-sur-N configurés |
Un mint on-curve révoqué exige sa keypair ; un mint off-curve, un CPI avec les bons seeds PDA.
Exemple client
import { getWithdrawExcessLamportsInstruction } from "@solana-program/token";
const instruction = getWithdrawExcessLamportsInstruction({
source,
destination,
authority,
});
await client.sendTransaction([instruction]);
authority est un TransactionSigner ; les cosignataires passent dans multiSigners. L'exemple utilise @solana-program/token et peut être composé avec @solana/kit.
En 2026, distinguez 2 familles de programmes token ; Token-2022 est l'une d'elles.
Ne codez pas en dur 0.00203928 SOL. C'est l'ancien minimum d'un compte de 165 octets, pas une valeur live universelle. Interrogez la réserve de la taille réelle juste avant la prévisualisation.
Les extensions Token-2022 peuvent dépasser 82 ou 165 octets. Un CPI Guard verrouillé peut bloquer le wrapper. Wrapped SOL natif renvoie NativeNotSupported. Ces règles valent pour les prévisualisations Token-2022 et transactions Token-2022.
API Sol Incinerator
Assetcinerator applique les frais de protocole et de partenaire comme couche produit ; l'instruction token brute ne les exige pas.
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 est destination et authority par défaut. authorityPublicKey et jusqu'à 11 multisigSignerPublicKeys sont optionnels. Frais de base : 200 bps ; les intégrateurs peuvent ajouter partnerFeeAccount et partnerFeeBps. Utilisez feeLamports et les montants renvoyés.
Traitez séparément : aucun excédent, mauvais owner/layout, authority invalide, multisig incomplet, compte natif, CPI Guard, état modifié ou montant non rentable.

Sol Incinerator
Prévisualisez l'excédent live ou construisez un retrait sûr via l'API v2.
À lire aussi
Questions fréquentes
Que fait WithdrawExcessLamports sur Solana ?
WithdrawExcessLamports transfère les lamports au-dessus de la réserve minimale d'un compte Token Program vers un wallet. La source peut être un compte de token, mint ou multisig. Quantités, supply, authorities, extensions et données sérialisées ne changent pas.
Quelle authority signe WithdrawExcessLamports ?
Un compte de token utilise son owner ou son multisig. Un mint avec mint authority active utilise celle-ci. Sans mint authority, la source signe via sa keypair ou par CPI depuis le programme qui contrôle un mint off-curve.
WithdrawExcessLamports prend-il en charge Token-2022 ?
Oui. L'instruction prend en charge comptes, mints et multisigs SPL Token et Token-2022. Les intégrations doivent employer la taille réelle car les extensions Token-2022 agrandissent les comptes. Un CPI Guard verrouillé peut bloquer un wrapper.
Peut-il vider un compte sous sa réserve ?
Non. Le Token Program calcule la réserve minimale et ne transfère que la différence. Les comptes Wrapped SOL natifs sont refusés. Vérifiez tout de même l'état live, car soldes, taille, rent et authority peuvent changer avant l'envoi.