El programa SPL Token define las "mints" (acuñaciones) y las cuentas de token; el programa Associated Token Account (ATA) deriva las direcciones canónicas de billetera por mint. Las crates de Rust spl-token y spl-associated-token-account (más los wrappers de anchor-spl) codifican los layouts y los helpers de CPI para los programas y clientes de Agave 4.1.1.
// Siempre usa matemáticas verificadas para montos humanoslet raw = amount .checked_mul(10u64.pow(mint.decimals as u32)) .ok_or(ProgramError::InvalidArgument)?;
ID de programa de token incorrecto para la derivación de ATA - Las mints de Token-2022 necesitan el ID del programa de Token-2022. Solución: pasar el ID de programa correcto a los helpers de ATA.
Transferencia sin delegado cuando se usa autoridad delegada - falla con discrepancia de propietario. Solución: incluir el firmante delegado o usar el propietario.
Decimales asumidos como 9 - USDC usa 6. Solución: leer mint.decimals en tiempo de ejecución.
Cerrar ATA con polvo - reabrir cuesta alquiler. Solución: barrer a cero antes de cerrar o mantener la ATA.
Autoridad de mint dejada en las mints de mainnet - riesgo de inflación ilimitada. Solución: revocar la autoridad de mint después del lanzamiento.
Versiones de la Pila: Esta página fue escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0, y LiteSVM 0.6.x.
Revisado por Chris St. John·Última actualización: 19 jul 2026