SOL Envuelto (wSOL) es SOL nativo que se mantiene dentro de una cuenta de token SPL. Los programas de DeFi esperan CPIs de tokens SPL, por lo que el SOL se envuelve temporalmente, se usa y luego se desenvuelve de nuevo a lamports nativos.
import { createSolanaRpc, address } from "@solana/kit";const WSOL_MINT = address("So11111111111111111111111111111111111111112");const rpc = createSolanaRpc("https://api.devnet.solana.com");// Muchos SDKs de DEX envuelven SOL automáticamente; los flujos manuales usan la instrucción syncNative después de la transferencia de lamports
Lo que esto demuestra:
La dirección de emisión de WSOL es la clave pública de emisión nativa conocida
Transferencia de lamports a la cuenta de token + sync_native actualiza el saldo de SPL
Desenvolver cierra o agota la WSOL ATA para devolverla a la billetera nativa de SOL
// Cierra la cuenta WSOL para desenvolver - devuelve lamports al destinouse anchor_spl::token::CloseAccount;// Asegúrate de que la cantidad sea 0 o usa el patrón de retiro según tu SDK
Olvidar sync_native - los lamports permanecen en la cuenta pero la cantidad de SPL es 0. Solución: siempre usa sync_native después de depositar lamports.
Usar la emisión incorrecta - solo la emisión nativa es WSOL. Solución: compara con native_mint::ID.
Dejar polvo en la WSOL ATA - lamports bloqueados hasta que se desenvuelvan. Solución: desenvolver o cerrar después del flujo DeFi.
Pagar el alquiler dos veces - la WSOL ATA necesita financiación exenta de alquiler. Solución: reutiliza la WSOL ATA persistente por billetera.
Asumir que los programas aceptan SOL nativo - muchos solo usan CPI de transferencia SPL. Solución: envolver o usar la instrucción de depósito nativo del programa.