EN

Token Account

Guarda el saldo de un token concreto para un propietario concreto. Las Associated Token Accounts (ATAs) son la derivación estándar.

Token Program 165 bytes

Ejemplo: Jupiter USDC

(en caché; se actualiza cada hora · solo mainnet)

Mint Owner Amount Delegate Option Delegate (empty) State Is Native Native (reserved) Delegated Amount Close Authority Option Close Authority (empty)
0 1 2 3 4 5 6 7 8 9 A B C D E F
0000 c6 fa 7a f3 be db ad 3a 3d 65 f3 6a ab c9 74 31
0010 b1 bb e4 c2 d2 f6 e0 e4 7c a6 02 03 45 2f 5d 61
0020 04 79 d5 5b f2 31 c0 6e ee 74 c5 6e ce 68 15 07
0030 fd b1 b2 de a3 f4 8e 51 02 b1 cd a2 56 bc 13 8f
0040 27 96 6d 0c 00 00 00 00 00 00 00 00 00 00 00 00
0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0060 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00
0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00a0 00 00 00 00 00

Qué es

Una Token Account guarda el saldo de un único token para una única billetera. Cada saldo de un token SPL vive en su propia cuenta de 165 bytes.

Por qué existe

SPL Token separa deliberadamente los metadatos de la mint (la cuenta Mint) de los saldos individuales (las Token Accounts). El mismo token —por ejemplo USDC— existe como exactamente una Mint y millones de Token Accounts, una por titular. La mayoría de las billeteras usan Associated Token Accounts (ATAs): dada una pubkey de billetera y una mint, la dirección de la ATA es la PDA determinista derivada del par, así que cualquier herramienta puede calcularla sin consultar la cadena.

Diseño de bytes

Offset Tamaño Campo Tipo Notas
0 32 mint Pubkey Qué token guarda esta cuenta.
32 32 owner Pubkey Billetera que controla esta cuenta (firma las transferencias).
64 8 amount u64 LE Saldo en unidades atómicas.
72 36 delegate COption<Pubkey> Etiqueta de 4 bytes + pubkey. El gastador aprobado, si lo hay.
108 1 state u8 enum 0 Uninitialized, 1 Initialized, 2 Frozen.
109 12 is_native COption<u64> Etiqueta de 4 bytes + u64. Se activa en cuentas de wrapped SOL; el u64 es la reserva exenta de rent.
121 8 delegated_amount u64 LE Unidades atómicas que el delegado puede gastar.
129 36 close_authority COption<Pubkey> Etiqueta de 4 bytes + pubkey. Puede cerrar la cuenta y recuperar el rent.

Total: 165 bytes.

Dónde lo encuentras

Te topas con Token Accounts cada vez que una billetera tiene un token SPL — en interfaces de billeteras, instrucciones de transferencia, rutas de swap de DEX y consultas de saldo. Un error «account not found» en una transferencia normalmente significa que la ATA del destinatario aún no se ha creado.

Errores comunes

  • Las cuentas congeladas todavía pueden recibir tokens. El estado 2 (Frozen) bloquea las transferencias salientes pero no las entrantes. Lo usan emisores como Circle por cumplimiento normativo.
  • is_native no es un booleano. Es COption<u64> — cuando es Some, la cuenta es wrapped SOL y el u64 interno es la reserva de rent a preservar al cerrar.
  • Las ATAs son PDAs del programa SPL Associated Token Account, no del programa Token. Las semillas de derivación son [billetera, TOKEN_PROGRAM_ID, mint].
  • El owner de una Token Account es la billetera, no el programa Token. El campo owner de la cabecera de la cuenta on-chain (no estos 165 bytes) es el programa Token; el campo owner de los datos es la billetera del usuario que autoriza los gastos.

Última verificación: 2026-05-19