Skip to main content
El método RPC getTokenAccountBalance devuelve el saldo de tokens de una cuenta de tokens SPL específica. Esto es esencial para las aplicaciones que necesitan mostrar o verificar la cantidad de un token específico que tiene una cuenta de tokens.

Casos de uso comunes

  • Mostrar los saldos de tokens de los usuarios: Muestra a los usuarios cuánto poseen de un token específico en su billetera (cuentas de tokens asociadas).
  • Verificar la disponibilidad de tokens: Comprueba si una cuenta de tokens tiene saldo suficiente antes de intentar una transferencia u otra operación.
  • Seguimiento de portafolios: Agrega los saldos de tokens de un usuario en diferentes cuentas de tokens.
  • Interacciones con contratos inteligentes: Los contratos inteligentes pueden consultar los saldos de tokens como parte de su lógica (aunque los programas en cadena suelen acceder a estos datos directamente desde la información de la cuenta).

Parámetros de la solicitud

  1. Clave pública de la cuenta de tokens (string, obligatorio): La clave pública codificada en base 58 de la cuenta de tokens SPL que quieres consultar.
  2. Objeto de configuración (object, opcional): Un objeto opcional que puede contener el siguiente campo:
    • commitment (string, opcional): Especifica el nivel de compromiso de la consulta. Si se omite, se usa el compromiso predeterminado del nodo RPC (normalmente finalized).

Estructura de la respuesta

El campo result de la respuesta JSON-RPC contiene un objeto con los campos context e value. El objeto value contiene la información del saldo:
  • amount (string): El saldo bruto de la cuenta de tokens como una cadena. Es un número entero que representa la unidad más pequeña del token (por ejemplo, si un token tiene 6 decimales, una cantidad de “1000000” equivale a 1 token).
  • decimals (u8): La cantidad de posiciones decimales definidas para este tipo de token (por su cuenta de acuñación).
  • uiAmount (number | null): El saldo formateado como un número de punto flotante, teniendo en cuenta decimals. Este campo puede ser null o estar obsoleto en algunos contextos en favor de uiAmountString.
  • uiAmountString (string): El saldo formateado como una cadena, teniendo en cuenta decimals. Suele preferirse para mostrar el saldo y evitar posibles imprecisiones de punto flotante.
Ejemplo de respuesta:

Ejemplos de código

Consejos para desarrolladores

  • Cuenta de tokens frente a cuenta de acuñación frente a cuenta del propietario: Asegúrate de proporcionar la clave pública de la cuenta de tokens SPL, no la dirección de acuñación del token ni la dirección de la billetera del propietario. Por lo general, puedes obtener las cuentas de tokens de un propietario mediante getTokenAccountsByOwner.
  • Decimales: Usa siempre el campo decimals para interpretar correctamente amount. Por lo general, uiAmountString es más seguro que uiAmount para mostrar el saldo y evitar problemas de precisión de punto flotante.
  • Cuentas inexistentes: Si la clave pública proporcionada no corresponde a una cuenta de tokens existente, el comportamiento puede variar ligeramente según el proveedor de RPC o la biblioteca, pero a menudo value en la respuesta será null o se generará un error. El ejemplo de JavaScript incluye una comprobación básica de balance.value.
  • Niveles de compromiso: Usar diferentes niveles de compromiso puede afectar la rapidez con la que ves los cambios de saldo, especialmente en transacciones muy recientes. finalized es el más seguro, pero tiene la mayor latencia.
Esta guía te ayudará a recuperar e interpretar con precisión los saldos de tokens SPL mediante el método getTokenAccountBalance.

Métodos relacionados

getTokenAccountsByOwner

Obtén todas las cuentas de tokens de un propietario

getTokenSupply

Obtén el suministro total de una cuenta de acuñación de tokens