Oferta total ERC-20 y saldo de cartera: ¿qué cifra es tuya?
La oferta de un token y el saldo de una cuenta responden a preguntas distintas. Elige el campo de lectura adecuado antes de comparar cifras.
En un token ERC-20, balanceOf(account) indica el saldo registrado para una cuenta. totalSupply() indica la oferta total del contrato del token. Una oferta grande en la página de un token no significa que tengas una gran cantidad en tu cuenta.
Si abriste un explorador para comprobar tus tenencias, elige el saldo de la cuenta. Para consultar cuántas unidades declara el contrato en total, elige la oferta. Ninguna de las dos cifras por sí sola indica un valor en dólares, demuestra el control de una dirección ni establece que un token sea seguro.
Un contrato, dos preguntas diferentes
La especificación ERC-20 los define como métodos independientes de solo lectura. totalSupply() no recibe una cuenta como entrada. balanceOf necesita la dirección cuyo saldo quieres consultar. El contrato del token al que llamas determina por qué activo estás preguntando.
| Lectura | Entrada aparte del contrato del token | Pregunta que responde |
|---|---|---|
totalSupply() |
Ninguna | ¿Qué oferta declara este contrato? |
balanceOf(account) |
Dirección pública de la cuenta | ¿Qué saldo registra para esta cuenta? |
Por ejemplo, imagina un token con una oferta de 1000 unidades, de las cuales la cuenta A tiene 25. Los resultados correctos son 1000 para la oferta y 25 para la cuenta A. Es normal que difieran. No hay una tenencia perdida de 975 unidades que recuperar.
Son cantidades inventadas para explicarlo, no lecturas de un token real. Si no sabes qué dirección identifica la cuenta y cuál el activo, consulta la guía sobre dirección de cartera y contrato del token antes de leer cualquiera de los campos.
¿Qué cambia un saldo y qué cambia la oferta?
Considera un token hipotético sencillo con transferencias ordinarias, sin comisiones ni contabilidad personalizada. Parte de 25 tokens en la cuenta A y 975 en la cuenta B:
| Evento | Cuenta A | Cuenta B | Oferta total |
|---|---|---|---|
| Estado inicial | 25 | 975 | 1000 |
| A transfiere 5 a B | 20 | 980 | 1000 |
| Se acuñan 100 tokens nuevos para B | 20 | 1080 | 1100 |
| B quema 10 mediante una función de quema | 20 | 1070 | 1090 |
La transferencia cambia quién tiene las unidades. La acuñación crea unidades y la quema mediante el mecanismo ilustrado las elimina. La referencia ERC20 de OpenZeppelin documenta su contabilidad de acuñación y quema, incluida la reducción de oferta al quemar.
Esta tabla describe ese modelo sencillo. Un token puede personalizar las transferencias o aplicar otras reglas contables. No interpretes el envío de tokens a una dirección etiquetada como «muerta» como prueba de que totalSupply() disminuyó: comprueba si el contrato reduce realmente la oferta. Una etiqueta en una dirección no ejecuta una función de quema.
Del mismo modo, tu saldo puede permanecer igual mientras la oferta cambia en otra parte. La guía de oferta de OpenZeppelin explica que ERC-20 deja el mecanismo de oferta en manos de cada implementación. Una lectura de la oferta actual no demuestra que sea imposible acuñar más en el futuro.
Lee ambas cifras sin mover tokens
Lee ambas cifras del mismo contrato del token en la misma red. El siguiente procedimiento es una comprobación propuesta, no el informe de una prueba de cartera realizada para este artículo. La documentación primaria se consultó el 23 de octubre de 2026.
- Anota la red y la dirección completa del contrato del token. Contrasta la dirección con la información oficial de despliegue del emisor. Los símbolos coincidentes en redes diferentes no bastan para comparar el mismo activo.
- Anota la cuenta pública que quieres consultar. Obtén su dirección de los detalles de esa cuenta. Mantenla separada del contrato del token. El seguimiento público también funciona con cuentas que no controlas, así que una consulta correcta no demuestra la propiedad.
- Abre un explorador o lector de contratos fiable para esa red. Selecciona su interfaz de solo lectura para el contrato verificado del token. Lee
totalSupply()y despuésbalanceOfcon la dirección de la cuenta como entrada. Las etiquetas de las interfaces varían; usa los nombres de las funciones para identificar las preguntas. - Guarda el estado consultado junto con los resultados. Anota el número de bloque cuando esté disponible. Es preferible realizar ambas llamadas en el mismo bloque. Las lecturas separadas de «latest» pueden observar estados diferentes si entre ellas se produce una transferencia, acuñación o quema.
- Anota las unidades antes de comparar. Conserva las respuestas sin procesar e indica si la interfaz ya las formateó. Una llamada fallida significa datos no disponibles, no un saldo de cero.
La documentación de Ethereum sobre ERC-20 muestra llamadas separadas para la oferta y el saldo de una cuenta. No necesitas reproducir su configuración de desarrollo para entender qué resultado necesitas. Un explorador que ofrezca los métodos públicos de lectura puede proporcionar las mismas categorías de información.
Leer el estado público no requiere transferencias ni autorizaciones de tokens. Si una página pide una frase de recuperación o una firma para revelar estos valores, deja de usar ese procedimiento. Ninguna de ellas es una entrada de esta comparación.
Aplica las mismas unidades a ambos números
La oferta y los saldos de las cuentas utilizan la misma escala contable del token. La explicación de decimales de OpenZeppelin aborda expresamente el formato de ambos. Para un token hipotético con 6 decimales verificados, la oferta sin procesar 1000000000 representa 1000 tokens y el saldo sin procesar 25000000 representa 25 tokens.
No compares una oferta sin procesar con un saldo formateado. No dividas una cifra que la interfaz ya convirtió. La guía de decimales ERC-20 explica cómo establecer esa escala, la falta de metadatos y el redondeo. Aquí, aplicar la escala solo es un requisito para comparar dos medidas diferentes; no las hace iguales.
Lo que una cifra de oferta no puede resolver
totalSupply() de ERC-20 no es un cálculo estandarizado de oferta circulante. Un proveedor puede aplicar exclusiones al estimar la circulación. Su metodología debe explicar esas exclusiones; no puedes obtenerlas cambiando el nombre de una respuesta del contrato. La oferta máxima es otra cuestión independiente. OpenZeppelin documenta una extensión que limita la oferta, pero ERC-20 no exige que todos los tokens tengan esa función.
El resultado también corresponde al despliegue concreto y al estado que consultaste. No combina automáticamente tokens de distintas cadenas, envoltorios o contratos relacionados. Sumar despliegues con nombres parecidos puede producir una cifra sin significado claro si no se establecen por separado su relación y contabilidad.
Para revisar una cartera, conserva un breve registro final: red, contrato del token, cuenta, bloque, saldo y unidades. Añade la oferta solo cuando responda a otra pregunta. Si el saldo de la cuenta es de 25 tokens y la oferta del contrato es de 1000, guarda ambas etiquetas junto a sus cifras. La diferencia no significa que falten tokens en la cuenta.
Preguntas frecuentes
¿Muestra totalSupply cuántos tokens hay en mi cartera?
No. totalSupply indica la oferta total del contrato del token. balanceOf recibe una dirección de cuenta e indica el saldo registrado para ella. Ambos deben corresponder al contrato del token y la red que quieres consultar.
¿Es totalSupply lo mismo que la oferta circulante o la oferta máxima?
No. ERC-20 no define un cálculo de oferta circulante ni exige un campo de oferta máxima. La cifra circulante de un proveedor necesita su propia metodología; cualquier límite requiere pruebas de la implementación del token.
¿Puedo consultar estas cifras sin conectar mi cartera?
Sí. Las llamadas públicas de solo lectura necesitan el contrato del token, la red y, para balanceOf, la dirección pública de la cuenta. Leer estos valores no exige transferencias, autorizaciones, frases de recuperación ni firmas de la cartera.