CLI spl-token
Crea acuñaciones (mints) de SPL Token, cuentas de token asociadas (ATAs), acuña tokens y transfiere saldos desde la terminal.
Receta
Tarjeta de receta de referencia rápida - lista para copiar y pegar.
spl-token create-token
spl-token create-account <MINT>
spl-token mint <MINT> 1000
spl-token transfer <MINT> 50 <RECIPIENT_TOKEN_ACCOUNT>Cuándo usar esto:
- Poner en marcha una acuñación de prueba en devnet antes de la integración del cliente.
- Financiar billeteras de prueba con tokens simulados.
- Verificar la derivación de ATA y los decimales sin TypeScript.
- Transferencias manuales del tesoro de tokens SPL.
Ejemplo de trabajo
solana config set --url devnet
solana airdrop 2
# Crear acuñación con 6 decimales (común para tokens fungibles)
MINT=$(spl-token create-token --decimals 6 | grep "Creating token" | awk '{print $3}')
echo "Mint: $MINT"
# Crear ATA para tu billetera
spl-token create-account "$MINT"
ATA=$(spl-token accounts --token "$MINT" | grep -v "Token accounts" | awk '{print $1}')
echo "ATA: $ATA"
# Acuñar 1,000,000 unidades brutas (= 1.0 tokens con 6 decimales)
spl-token mint "$MINT" 1000000
spl-token balance "$MINT"
spl-token supply "$MINT"Lo que esto demuestra:
create-tokeninicializa una nueva acuñación con los decimales elegidos.create-accountcrea la ATA propiedad de tu billetera para esa acuñación.mintaumenta el suministro cuando tu par de claves tiene la autoridad de acuñación.
Análisis Profundo
Cómo funciona
- El programa SPL Token posee las cuentas de acuñación y de token con estado codificado en Borsh.
- Las ATAs son PDAs derivadas de la billetera + acuñación para direcciones deterministas.
- Las cantidades en la CLI usan unidades enteras brutas; aplica los decimales mentalmente.
- Las autoridades de acuñación y congelación pueden ser revocadas después de la configuración.
Comandos Comunes
| Comando | Acción |
|---|---|
create-token | Nueva cuenta de acuñación |
create-account | ATA para el propietario configurado |
mint | Aumentar el suministro (autoridad de acuñación) |
transfer | Mover tokens entre cuentas de token |
authorize | Cambiar o revocar la autoridad de acuñación/congelación |
display | Información de acuñación/cuenta legible por humanos |
Notas de bash
# Transferir a la clave pública de la billetera (la CLI resuelve la ATA)
spl-token transfer "$MINT" 100 <RECIPIENT_WALLET_PUBKEY> --fund-recipient
# Revocar la autoridad de acuñación (suministro fijo)
spl-token authorize "$MINT" mint --disableErrores comunes
- Confusión de decimales:
mint 1000con 6 decimales son 0.001 tokens, no 1000. Solución: multiplica la cantidad humana por 10^decimales. - ATA faltante: la transferencia falla si el destinatario no tiene una cuenta de token. Solución: usa
--fund-recipientocreate-accountprimero. - Autoridad de acuñación incorrecta: solo el par de claves de autoridad puede acuñar. Solución: usa
spl-token displaypara ver las autoridades. - Usar
solana transferpara tokens: mueve SOL, no saldos de SPL. Solución: siempre usaspl-token transfer. - Cuentas congeladas: la autoridad de congelación puede bloquear transferencias. Solución: verifica el estado de congelación con
display.
Alternativas
| Alternativa | Usar cuando | No usar cuando |
|---|---|---|
anchor_spl de Anchor | Acuñación programática en código on-chain | Configuración manual rápida en devnet |
@solana/kit + programa Token | Integraciones de cliente dApp | Experimentos CLI puntuales |
| Extensiones Token-2022 | Tarifas de transferencia, punteros de metadatos | MVP fungible simple |
Plantillas mucho | Plantillas completas de lanzamiento de tokens | Aprender el diseño bruto de SPL |
Preguntas frecuentes
¿Cómo elijo los decimales?
6 o 9 son comunes (reflejando la divisibilidad de USDC o SOL). Los decimales son inmutables después de la creación de la acuñación.
¿Cuál es la diferencia entre una acuñación y una cuenta de token?
La acuñación define el tipo de token y el suministro; las cuentas de token mantienen saldos por propietario y por acuñación.
¿Puedo enviar tokens directamente a una dirección de billetera?
Sí, con spl-token transfer <MINT> <AMOUNT> <WALLET_PUBKEY> --fund-recipient; la CLI deriva o crea la ATA.
¿Cómo veo todas mis cuentas de token?
spl-token accounts lista las ATAs para la billetera configurada.
¿Cómo quemo tokens?
spl-token burn <TOKEN_ACCOUNT> <AMOUNT> reduce el suministro si está permitido.
¿`spl-token` se incluye con Solana CLI?
Sí, se instala junto con solana desde el paquete de lanzamiento Agave.
¿Cómo hago que el suministro sea fijo?
Ejecuta spl-token authorize <MINT> mint --disable después de acuñar el suministro deseado.
¿Qué es `--fund-recipient`?
Paga para crear la ATA del destinatario si falta, cargado a tu pagador de tarifas.
¿Puedo usar Token-2022?
Usa spl-token --program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb para el ID del programa Token-2022.
¿Cómo inspecciono una acuñación?
spl-token display <MINT> muestra los decimales, el suministro y las autoridades.
Relacionado
- Airdrops y Saldos - SOL para tarifas y alquiler
- Inspeccionar Cuentas y Programas - bytes de cuenta brutos
- Conceptos básicos de SPL Token - modelo de token on-chain
- Enviar SOL y Transacciones - transferencias de SOL nativas
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.