Saltar al contenido principal
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 determinado que contiene 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 (cadena, obligatoria): La clave pública codificada en base 58 de la cuenta de tokens SPL que quieres consultar.
  2. Objeto de configuración (objeto, opcional): Un objeto opcional que puede contener el siguiente campo:
    • commitment (cadena, opcional): Especifica el nivel de confirmación de la consulta. Si se omite, se usa el nivel de confirmación 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 (cadena): El saldo sin procesar 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 (número | null): El saldo formateado como un número de punto flotante, teniendo en cuenta decimals. En algunos contextos, este campo podría ser null o estar obsoleto en favor de uiAmountString.
  • uiAmountString (cadena): 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. Normalmente, 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 para mostrar el saldo que uiAmount, ya que evita 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. Sin embargo, 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 confirmación: processed puede mostrar un cambio de saldo que posteriormente se revierte. Con Alpenglow, confirmed e finalized tienen la misma latencia y garantía de finalidad permanente. Para el código nuevo, usa preferentemente finalized.
Esta guía debería ayudarte a obtener 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