Referencia de la CLI de SPL Token

La interfaz de línea de comandos spl-token crea y administra mints, token accounts, autoridades, transferencias y extensiones de Token-2022.

Esta referencia sigue spl-token-cli v5.6.1, la versión incluida con Agave v4.2.1. Ejecuta spl-token --version y usa <command> --help para ver las opciones exactas disponibles en tu versión instalada.

La creación de mints, las transferencias, los cambios de autoridad, las quemas, los congelamientos y el cierre de cuentas envían transacciones. Confirma el clúster, el Token Program, el firmante y las direcciones antes de ejecutar un comando. Los cambios en Mainnet usan activos reales.

Instalación y ayuda

El paquete de versión de Agave CLI incluye spl-token. Si no está instalado, usa el crate de Rust publicado:

cargo install spl-token-cli --version 5.6.1
spl-token --version

Consulta la ayuda en la raíz o a nivel de comando:

spl-token --help
spl-token create-token --help
spl-token transfer --help

Opciones globales

Coloca las opciones globales antes del comando.

OpciónPropósito
-u, --url <URL_OR_MONIKER>Selecciona una URL de RPC o mainnet-beta, testnet, devnet o localhost.
-C, --config <PATH>Usa un archivo de configuración de Solana CLI diferente.
--fee-payer <KEYPAIR>Selecciona la cuenta que paga las comisiones de transacción.
-p, --program-id <ADDRESS>Usa un ID de Token Program explícito.
--program-2022Usa Token-2022 (TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb).
--output <FORMAT>Devuelve json o json-compact donde sea compatible.
--with-compute-unit-limit <UNITS>Establece el límite de unidades de cómputo de la transacción.
--with-compute-unit-price <MICRO_LAMPORTS>Establece el precio de prioridad por unidad de cómputo.
-v, --verboseMuestra salida adicional.
-V, --versionImprime la versión instalada de la CLI.

El programa predeterminado es el Token Program original. Usa --program-2022 para un mint o una cuenta de Token-2022, incluso al leerlos. Un comando falla si el programa seleccionado no es el propietario de la dirección proporcionada.

Crear y usar un token

Los comandos imprimen las direcciones creadas. Guarda la dirección del mint devuelta por create-token para los comandos siguientes.

# Create a six-decimal mint under the original Token Program.
spl-token --url devnet create-token --decimals 6
# Create the default signer's associated token account for the mint.
spl-token --url devnet create-account <MINT_ADDRESS>
# Mint 100 tokens to that associated token account.
spl-token --url devnet mint <MINT_ADDRESS> 100
# Read supply, balance, and complete mint or account details.
spl-token --url devnet supply <MINT_ADDRESS>
spl-token --url devnet balance <MINT_ADDRESS>
spl-token --url devnet display <MINT_OR_TOKEN_ACCOUNT_ADDRESS>
# Transfer tokens to a wallet and create its associated account if needed.
spl-token --url devnet transfer \
<MINT_ADDRESS> \
10 \
<RECIPIENT_WALLET_ADDRESS> \
--fund-recipient

Los importes son importes de token en la interfaz, ajustados a los decimales del mint. Comandos como transfer, burn y unwrap-sol aceptan ALL donde se indica en su ayuda.

Crear un mint de Token-2022

Las extensiones asignan estado adicional al mint o a la cuenta y, por lo general, deben elegirse cuando se crea el mint. Este ejemplo crea un mint de seis decimales con compatibilidad de metadatos integrados:

spl-token --program-2022 create-token \
--decimals 6 \
--enable-metadata
spl-token --program-2022 initialize-metadata \
<MINT_ADDRESS> \
"Example Token" \
EXAMPLE \
https://example.com/token.json

Las opciones de extensión más comunes de create-token incluyen:

  • --enable-close
  • --enable-confidential-transfers auto|manual
  • --enable-freeze
  • --enable-group y --enable-member
  • --enable-metadata
  • --enable-non-transferable
  • --enable-pause
  • --enable-permanent-delegate
  • --enable-permissioned-burn
  • --enable-transfer-hook o --transfer-hook <PROGRAM_ID>
  • --interest-rate <BASIS_POINTS>
  • --transfer-fee-basis-points <BASIS_POINTS> con --transfer-fee-maximum-fee <AMOUNT>
  • --ui-amount-multiplier <MULTIPLIER>

Combina solo las extensiones que el programa Token-2022 permita usar juntas. Revisa la guía de extensiones de Token-2022 correspondiente antes de crear una configuración de mint irreversible.

Administrar autoridades y delegados

# Change the mint authority.
spl-token authorize <MINT_ADDRESS> mint <NEW_AUTHORITY_ADDRESS>
# Permanently remove the mint authority.
spl-token authorize <MINT_ADDRESS> mint --disable
# Let a delegate spend up to 25 tokens from one token account.
spl-token approve \
<TOKEN_ACCOUNT_ADDRESS> \
25 \
<DELEGATE_ADDRESS>
# Remove the current delegate.
spl-token revoke <TOKEN_ACCOUNT_ADDRESS>

authorize admite los tipos de autoridad mint, freeze, owner, close y específicos de extensiones. Eliminar una autoridad con --disable es permanente cuando ningún otro mecanismo del programa puede restablecerla.

Congelar, quemar y cerrar

spl-token freeze <TOKEN_ACCOUNT_ADDRESS>
spl-token thaw <TOKEN_ACCOUNT_ADDRESS>
spl-token burn <TOKEN_ACCOUNT_ADDRESS> 5
# A token account must normally have a zero token balance before closing.
spl-token close --address <TOKEN_ACCOUNT_ADDRESS>

burn reduce tanto el saldo de la cuenta como el suministro total. close devuelve los lamports restantes de la cuenta al destinatario configurado; no recupera los tokens quemados.

Envolver y desenvolver SOL

# Create or fund the owner's wrapped SOL token account.
spl-token wrap 1
# Unwrap part of the wrapped SOL balance.
spl-token unwrap-sol 0.25
# Close the wrapped SOL account and return its full lamport balance.
spl-token unwrap

Usa sync-native después de transferir lamports directamente a una token account de SOL envuelto para que su importe de tokens coincida con los lamports subyacentes.

Firma multisig

Crea una multisig de Token Program M de N con hasta 11 miembros:

spl-token create-multisig \
2 \
<MEMBER_1_ADDRESS> \
<MEMBER_2_ADDRESS> \
<MEMBER_3_ADDRESS>

Para una transacción controlada por esa multisig, pasa la dirección de la multisig como la autoridad correspondiente y proporciona los keypairs de los miembros mediante valores --multisig-signer repetidos. Consulta la ayuda del comando de destino, porque su indicador de autoridad principal varía según la operación.

Saldos confidenciales

Los comandos de saldo confidencial requieren un mint de Token-2022 configurado para transferencias confidenciales y una cuenta de destinatario configurada.

spl-token --program-2022 configure-confidential-transfer-account \
--address <TOKEN_ACCOUNT_ADDRESS>
spl-token --program-2022 deposit-confidential-tokens \
<MINT_ADDRESS> \
10 \
--address <TOKEN_ACCOUNT_ADDRESS>
spl-token --program-2022 apply-pending-balance \
--address <TOKEN_ACCOUNT_ADDRESS>
spl-token --program-2022 withdraw-confidential-tokens \
<MINT_ADDRESS> \
5 \
--address <TOKEN_ACCOUNT_ADDRESS>
spl-token --program-2022 transfer \
<MINT_ADDRESS> \
1 \
<RECIPIENT_ADDRESS> \
--confidential

Para configure-confidential-transfer-account y apply-pending-balance, pasa --address <TOKEN_ACCOUNT_ADDRESS> o un <MINT_ADDRESS> posicional, pero no ambos. La forma posicional usa la associated token account del propietario. Los depósitos y retiros siempre toman el mint y aceptan --address para reemplazar esa cuenta predeterminada.

Usa enable-confidential-credits, disable-confidential-credits, enable-non-confidential-credits y disable-non-confidential-credits para controlar qué depósitos acepta la cuenta. Estos ajustes afectan la privacidad de la cuenta y la compatibilidad de pagos; inspecciona la cuenta antes de cambiarlos.

Índice completo de comandos

El siguiente índice incluye todos los comandos de nivel superior de spl-token-cli v5.6.1.

ComandoDescripción
accountsLista las token accounts que pertenecen a una billetera, con filtro opcional por mint.
addressImprime la dirección de la billetera seleccionada o su dirección de token asociada.
apply-pending-balanceMueve los tokens confidenciales pendientes al saldo confidencial disponible.
approveAprueba un delegado y un límite de gasto para una token account.
authorizeCambia o desactiva la autoridad de un mint, una cuenta o una extensión.
balanceMuestra el saldo de una token account.
benchEjecuta comandos de evaluación comparativa de tokens.
burnDestruye tokens de una cuenta y reduce el suministro del mint.
closeCierra una token account elegible y recupera sus lamports.
close-mintCierra un mint de Token-2022 configurado con la extensión close-mint.
configure-confidential-transfer-accountConfigura una cuenta para usar transferencias confidenciales.
create-accountCrea una token account asociada o auxiliar.
create-multisigCrea una multisig de Token Program M de N.
create-tokenCrea un mint, opcionalmente con extensiones de Token-2022.
deposit-confidential-tokensMueve tokens no confidenciales a un saldo confidencial pendiente.
disable-confidential-creditsRechaza las transferencias confidenciales entrantes de una cuenta.
disable-cpi-guardDesactiva CPI Guard para una cuenta.
disable-non-confidential-creditsRechaza las transferencias no confidenciales entrantes de una cuenta confidencial.
disable-required-transfer-memosDeja de exigir que las transferencias entrantes incluyan memos.
displayMuestra los detalles completos de un mint, una token account o una multisig.
enable-confidential-creditsAcepta transferencias confidenciales entrantes para una cuenta configurada.
enable-cpi-guardRestringe determinadas operaciones de token cuando se invocan mediante CPI.
enable-non-confidential-creditsAcepta transferencias no confidenciales entrantes para una cuenta confidencial.
enable-required-transfer-memosExige que las transferencias entrantes incluyan memos.
freezeCongela una token account usando la autoridad de congelación del mint.
gcCierra las token accounts innecesarias y consolida los saldos cuando es posible.
helpImprime la ayuda raíz o la de un comando.
initialize-groupInicializa la configuración de grupo de Token-2022 para un mint.
initialize-memberAgrega un mint de Token-2022 como miembro de un grupo.
initialize-metadataInicializa los metadatos integrados de Token-2022.
mintCrea nuevas unidades de token usando la autoridad del mint.
pausePausa la emisión, la quema y la transferencia de un mint de Token-2022 pausable.
resumeReanuda las operaciones de un mint de Token-2022 en pausa.
revokeElimina el delegado de una token account.
set-interest-rateActualiza la tasa de un mint que genera intereses.
set-transfer-feePrograma nuevos parámetros de comisión de transferencia.
set-transfer-hookCambia el ID del programa de transfer hook de un mint.
supplyMuestra el suministro total de un mint.
sync-nativeSincroniza el importe de una cuenta de SOL envuelto con sus lamports.
thawDescongela una token account congelada.
transferTransfiere tokens a una token account o a una billetera.
unwrapCierra una cuenta de SOL envuelto y recupera todos los lamports.
unwrap-solRetira una parte o la totalidad del SOL de una cuenta de SOL envuelto.
update-confidential-transfer-settingsActualiza la aprobación de transferencias confidenciales o la configuración de auditor de un mint.
update-default-account-stateCambia el estado predeterminado de un mint para las nuevas token accounts.
update-group-addressCambia la dirección del puntero de grupo de un mint.
update-group-max-sizeCambia el número máximo de miembros de un grupo de tokens.
update-member-addressCambia la dirección del puntero de miembro de grupo de un mint.
update-metadataCambia o elimina campos de metadatos integrados.
update-metadata-addressCambia la dirección del puntero de metadatos de un mint.
update-ui-amount-multiplierPrograma un nuevo multiplicador de importe de UI escalado.
withdraw-confidential-tokensDevuelve tokens confidenciales al saldo no confidencial.
withdraw-excess-lamportsRetira los lamports que superan el saldo exento de renta de una cuenta del Token Program.
withdraw-withheld-tokensRecoge las comisiones de transferencia retenidas en token accounts o en el mint.
wrapEnvuelve SOL en una token account del mint nativo.

Firma estructurada y sin conexión

Usa la salida estructurada en lugar de analizar el texto mostrado:

spl-token accounts --output json
spl-token display <MINT_ADDRESS> --output json-compact

Los comandos que producen transacciones suelen admitir --sign-only, --blockhash, --signer <PUBKEY=SIGNATURE>, --nonce y --nonce-authority. Las entradas exactas para firmar sin conexión dependen del comando, de los decimales del mint y de la disposición de autoridades, así que genera el mensaje sin firmar siguiendo las instrucciones de --help de ese comando y verifica cada dirección antes de recopilar firmas.

Is this page helpful?

Tabla de Contenidos

Editar Página