Aprende
Las cuentas de Solana decodificadas, byte a byte.
Cada página te explica qué es la cuenta, por qué existe y qué significan los bytes on-chain — junto con un ejemplo real de mainnet en caché.
SPL Token
El programa de tokens fungibles canónico. Cada token SPL en Solana usa este diseño.
Instrucciones de SPL Token
Token Program
Diseños de datos de instrucción del programa SPL Token — Transfer, MintTo, Burn, Approve y las variantes Checked. Un discriminador de 1 byte seguido de un importe u64 (y decimales en las Checked).
Explorar
Mint
Token Program · 82 bytes
Describe un token — su autoridad, suministro total, decimales y autoridad de congelación opcional. USDC, USDT y wrapped SOL tienen todos cuentas Mint.
Explorar
Multisig
Token Program · 355 bytes
Una cuenta multifirma m-de-n que puede actuar como cualquier autoridad sobre una Mint o Token Account. Hasta 11 firmantes; se requieren m firmas para autorizar una acción.
Explorar
Token Account
Token Program · 165 bytes
Guarda el saldo de un token concreto para un propietario concreto. Las Associated Token Accounts (ATAs) son la derivación estándar.
Explorar
Extensiones de Token-2022
Token-2022 amplía SPL Token con bloques TLV posteriores a la base para comisiones, intereses, transferencias confidenciales, metadatos y más.
ConfidentialTransferAccount (extensión)
Token-2022 Program · 295 bytes
Extensión del lado cuenta de Token-2022 que contiene los saldos cifrados con ElGamal de un titular. La contraparte de 295 bytes de ConfidentialTransferMint — donde viven los importes ocultos reales y la maquinaria de saldo pendiente.
Explorar
ConfidentialTransferFee (extensión)
Token-2022 Program · 129 bytes
El par de extensiones que hacen funcionar las comisiones de transferencia sobre transferencias confidenciales — una configuración del lado mint con una clave ElGamal para comisiones retenidas cifradas, y un importe retenido cifrado del lado cuenta.
Explorar
ConfidentialTransferMint (extensión)
Token-2022 Program · 65 bytes
Extensión del lado Mint de Token-2022 que habilita las transferencias confidenciales — los importes se cifran on-chain con ElGamal y se prueban correctos con pruebas de conocimiento cero. Esta extensión guarda la política; los saldos cifrados viven en el lado cuenta.
Explorar
CpiGuard (extensión)
Token-2022 Program · 1 bytes
Extensión del lado cuenta de Token-2022 que, cuando se habilita, bloquea ciertas acciones de token dentro de una CPI — protegiendo a los usuarios de programas maliciosos que intentan redirigir aprobaciones o cerrar cuentas a mitad de la llamada.
Explorar
DefaultAccountState (extensión)
Token-2022 Program · 1 bytes
Extensión del lado Mint de Token-2022 que fija el estado en que arrancan las Token Accounts nuevas. Ponerlo en Frozen convierte el token en una lista de permitidos — las cuentas deben descongelarse antes de poder operar.
Explorar
GroupPointer (extensión)
Token-2022 Program · 64 bytes
Extensión del lado Mint de Token-2022 que registra dónde vive la configuración de grupo (colección) de un token. El análogo de agrupación de MetadataPointer — puede apuntar a una cuenta TokenGroup o a la propia mint.
Explorar
InterestBearingConfig (extensión)
Token-2022 Program · 52 bytes
Extensión del lado Mint de Token-2022 que hace que un token acumule intereses de forma continua. El saldo almacenado no cambia nunca — el importe de UI se calcula a partir de una tasa y el tiempo transcurrido.
Explorar
MetadataPointer (extensión)
Token-2022 Program · 64 bytes
Extensión del lado Mint de Token-2022 que registra dónde viven los metadatos de un token. Puede apuntar a una cuenta externa o a la propia mint para metadatos en línea — la respuesta de Token-2022 a Metaplex.
Explorar
MintCloseAuthority (extensión)
Token-2022 Program · 32 bytes
Extensión del lado Mint de Token-2022 que nombra una autoridad autorizada a cerrar la mint y recuperar su rent — pero solo cuando el suministro es cero. Las mints de SPL Token nunca pudieron cerrarse.
Explorar
NonTransferable (extensión)
Token-2022 Program · 0 bytes
Extensión del lado Mint de Token-2022 que hace que un token sea soulbound — puede emitirse y quemarse pero nunca transferirse. Su carga útil está vacía; la presencia de la extensión es toda la señal.
Explorar
PermanentDelegate (extensión)
Token-2022 Program · 32 bytes
Extensión del lado Mint de Token-2022 que otorga a una dirección autoridad ilimitada para transferir o quemar tokens de cualquier cuenta de la mint, para siempre. La primitiva de clawback — poderosa y peligrosa.
Explorar
ScaledUiAmount (extensión)
Token-2022 Program · 56 bytes
Extensión del lado Mint de Token-2022 que multiplica los saldos mostrados por un factor configurable. El importe on-chain no cambia; el importe de UI es amount × multiplicador — usado para rebase y visualización estilo split de acciones.
Explorar
Primer de diseño TLV
Token-2022 Program
Cómo Token-2022 almacena las extensiones on-chain — una cabecera Tipo-Longitud-Valor de 4 bytes seguida de la carga útil de cada extensión, recorrida de izquierda a derecha hasta un centinela de tipo 0.
Explorar
Token-2022 Mint/Account + Extensiones
Token-2022 Program · 165 bytes
Las Mints y Token Accounts de Token-2022 comparten los diseños base de SPL Token y añaden funciones como bloques de extensión TLV posteriores a la base — un discriminador de 1 byte en el offset 165 distingue Mint de TokenAccount.
Explorar
TokenGroup (extensión)
Token-2022 Program · 80 bytes
Extensión del lado Mint de Token-2022 que define un grupo (colección) — su autoridad de actualización, la mint del grupo y el recuento de miembros actual/máximo. El análogo de una colección de Metaplex en la Group Interface.
Explorar
TokenMetadata (extensión)
Token-2022 Program
Extensión del lado Mint de Token-2022 que almacena nombre, símbolo, URI y pares clave-valor arbitrarios en línea dentro de la cuenta mint — la alternativa autocontenida de Token-2022 a una cuenta de metadatos de Metaplex aparte.
Explorar
TransferFeeConfig (extensión)
Token-2022 Program · 108 bytes
Extensión del lado Mint de Token-2022 que cobra una comisión porcentual en cada transferencia. Las comisiones se acumulan como saldos retenidos en las Token Accounts destinatarias y las reclama más tarde la autoridad de retiro.
Explorar
TransferHook (extensión)
Token-2022 Program · 64 bytes
Extensión del lado Mint de Token-2022 que llama a un programa personalizado en cada transferencia. El programa de tokens hace una CPI a la instrucción Execute del hook, habilitando listas de permitidos, aplicación de regalías y lógica por transferencia.
Explorar
Staking y Votación
Cuentas centrales del consenso proof-of-stake de Solana. Cada validador tiene una cuenta Vote; cada delegador, una cuenta Stake.
Stake Account
Stake Program · 200 bytes
Delega SOL a la cuenta Vote de un validador. Registra las autoridades de staker/withdrawer, el lockup, el importe delegado y los epochs de activación.
Explorar
Vote Account
Vote Program · 3762 bytes
La identidad on-chain de un validador. Registra la autoridad de voto del nodo, la tasa de comisión y un historial rodante de votos y créditos por epoch.
Explorar
Metaplex (NFTs)
El programa Token Metadata de Metaplex añade metadatos enriquecidos a las mints SPL — la base de cada NFT de Solana.
Collection Authority Record
Metaplex Token Metadata · 35 bytes
Un pequeño registro de delegado que permite a una dirección distinta de la autoridad de actualización de la colección verificar NFT en una colección de Metaplex. El permiso on-chain para la gestión delegada de colecciones.
Explorar
Edition Marker
Metaplex Token Metadata · 32 bytes
Un campo de bits de 32 bytes que rastrea qué ediciones numeradas de una Master Edition ya se han impreso. Cada bit es un número de edición; un marcador cubre 248 ediciones.
Explorar
Master Edition
Metaplex Token Metadata
La cuenta que marca un NFT como único (1-de-1) y autoriza la impresión de ediciones numeradas de él. Almacena el suministro de impresiones actual y un máximo opcional.
Explorar
Token Metadata
Metaplex Token Metadata · 607 bytes
Cuenta MetadataV1 — vincula una mint con su nombre, símbolo, URI, regalías, creadores y colección opcional. La base de cada NFT de Solana.
Explorar
Use Authority Record
Metaplex Token Metadata · 10 bytes
Un pequeño registro de delegado que permite a una dirección distinta del propietario del NFT consumir «usos» de un NFT usable, con su propia cuota. El permiso detrás de los NFT canjeables/consumibles.
Explorar
NFTs Comprimidos
Bubblegum almacena NFTs en un árbol de Merkle en lugar de cuentas individuales — millones de NFTs por el coste de unas pocas cuentas.
Transacciones
Cómo se codifican las transacciones de Solana — firmas, cabecera del mensaje, orden de cuentas, instrucciones y tablas de búsqueda versionadas.
Address Lookup Table
Address Lookup Table Program
Almacena un array de pubkeys que las transacciones v0 referencian por índice de 1 byte. Cabecera fija de 56 bytes + direcciones de 32 bytes empaquetadas, hasta 256 entradas.
Explorar
compact-u16 (shortvec)
Transaction encoding
El entero de longitud variable de 1 a 3 bytes que prefija cada array en una transacción de Solana. Siete bits de valor por byte más un indicador de continuación — origen de la mayoría de los errores de parseo de transacciones.
Explorar
Transacción Heredada
Transaction encoding
El formato de transacción original de Solana — un array de firmas seguido de un mensaje (cabecera, claves de cuenta, blockhash reciente, instrucciones). Byte a byte, cada array prefijado con compact-u16.
Explorar
Firmas y Blockhash Reciente
Transaction encoding
Cómo se firma una transacción y se mantiene fresca — firmas Ed25519 sobre los bytes del mensaje, un blockhash reciente que expira en ~80 segundos, y nonces duraderos para transacciones que deben sobrevivir a esa ventana.
Explorar
Transacción v0 (Versionada)
Transaction encoding
El formato de transacción versionado — un prefijo de versión de 1 byte, el mismo cuerpo de mensaje que una transacción heredada, más una sección de búsquedas en tablas de direcciones que referencia cuentas almacenadas en Address Lookup Tables.
Explorar
Instrucciones de Programas Nativos
Diseños de datos de instrucción para los programas integrados de Solana — System, Stake, Vote, Compute Budget.
Instrucciones de Compute Budget
Compute Budget Program
Datos de instrucción del Compute Budget Program — fija el límite de unidades de cómputo y la comisión de prioridad por CU. Un discriminador de 1 byte más un entero pequeño; las palancas tras las comisiones de prioridad.
Explorar
Instrucciones del Stake Program
Stake Program
Diseños de datos de instrucción del Stake Program — Initialize, DelegateStake, Deactivate, Split, Merge, Withdraw, Authorize. Un discriminador enum de 4 bytes seguido de campos bincode.
Explorar
Instrucciones del System Program
System Program
Diseños de datos de instrucción del System Program — CreateAccount, Transfer, Allocate, Assign y las instrucciones de nonce. Un discriminador enum little-endian de 4 bytes seguido de campos serializados con bincode.
Explorar
Instrucciones del Vote Program
Vote Program
Diseños de datos de instrucción del Vote Program — InitializeAccount, Authorize, Vote, Withdraw, UpdateCommission. Un discriminador enum de 4 bytes seguido de campos bincode. Mayormente internas del validador.
Explorar
Programas (Ejecutables)
Los programas on-chain son objetos compartidos ELF cargados por uno de los loaders BPF de Solana.
Programa BPF Actualizable
BPF Upgradeable Loader · 36 bytes
Un puntero fino de 36 bytes desde la dirección pública de un programa a su cuenta ProgramData, que contiene el bytecode ELF real. La indirección es lo que permite actualizar un programa manteniendo su dirección.
Explorar
Cuenta Buffer
BPF Upgradeable Loader
Una cuenta de preparación temporal que contiene el ELF de un programa durante el despliegue o antes de una actualización. Una vez escrita y verificada, su contenido se copia en la cuenta ProgramData y el buffer se cierra.
Explorar
Bytecode ELF
BPF Loader
El programa compilado en sí — un objeto compartido ELF estándar cuya cabecera de 64 bytes lo identifica como un binario eBPF little-endian, seguido de los segmentos de código y datos del programa.
Explorar
Cuenta ProgramData
BPF Upgradeable Loader
La cuenta que realmente contiene el bytecode ELF de un programa actualizable, más el slot en que se desplegó por última vez y la autoridad de actualización. Referenciada por la pequeña cuenta Program en la dirección pública del programa.
Explorar
Anchor
Convenciones que el framework Anchor añade sobre cuentas e instrucciones en bruto — discriminadores, espacio y rent.
Discriminador de Cuenta de Anchor
Anchor framework · 8 bytes
El prefijo de 8 bytes que Anchor estampa en cada cuenta que posee, derivado del nombre de la struct de la cuenta. Es cómo un programa de Anchor distingue sus propios tipos de cuenta.
Explorar
init y Espacio de Cuenta en Anchor
Anchor framework
Cómo el
Explorar
Discriminador de Instrucción de Anchor
Anchor framework · 8 bytes
El prefijo de 8 bytes en los datos de cada instrucción de Anchor, derivado del nombre de la instrucción. Es cómo un programa de Anchor enruta las instrucciones entrantes al manejador correcto.
Explorar
Direcciones y PDAs
Cómo Solana deriva direcciones controladas por programas y cuentas de token asociadas a partir de semillas.
Derivación de Associated Token Account (ATA)
Associated Token Account Program
La PDA determinista que guarda el saldo de un token dado para una billetera dada. Derivada de [billetera, token_program, mint] bajo el programa ATA, así que cualquier herramienta puede calcularla sin consulta on-chain.
Explorar
Bumps Canónicos
Addressing · 1 bytes
El bump es el único byte que empuja una PDA fuera de la curva ed25519. El bump canónico es el primero que se encuentra contando hacia atrás desde 255 — y usar cualquier otro es un fallo de seguridad.
Explorar
Derivación de PDA
Addressing
Cómo se calcula una Program Derived Address — SHA-256 sobre las semillas, un byte de bump, el id del programa y una cadena marcador, con el resultado forzado fuera de la curva ed25519 para que no pueda existir clave privada alguna para él.
Explorar
Codificación y Diseño
Reglas de serialización transversales — tipos opcionales, Borsh frente a bincode, y cómo el rent se relaciona con el tamaño de la cuenta.
Borsh frente a bincode
Encoding
Las dos serializaciones binarias dominantes en Solana. Borsh (Anchor, SPL, la mayoría de las apps) y bincode (los programas nativos System/Stake/Vote) difieren en el ancho de la etiqueta de enum y algunas convenciones — lo suficiente para romper un decodificador que asuma la equivocada.
Explorar
COption frente a Option frente a OptionalNonZeroPubkey
Encoding
Solana tiene tres formas distintas de codificar un valor opcional, y no son intercambiables. El COption de SPL son 4 bytes de etiqueta, el Option de Borsh es 1, y el OptionalNonZeroPubkey de Token-2022 es 0 — la fuente más común de errores de offset en decodificadores.
Explorar
Rent y Tamaño de Cuenta
Encoding
Por qué cada cuenta de Solana tiene un tamaño fijo en bytes establecido al crearse y un saldo mínimo de SOL para seguir viva. La exención de rent es un depósito proporcional al tamaño — reembolsable cuando la cuenta se cierra.
Explorar