Documentation Index
Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
Use this file to discover all available pages before exploring further.
Esta página fue traducida automáticamente por IA. La versión en inglés es la fuente autorizada.Ver versión en inglés →
La división fundamental: programas versus cuentas
Programas
Un programa en Solana es código ejecutable — un binario compilado cargado desde un archivo, desplegado en unaPubkey, e invocable mediante transacciones. Los programas no tienen estado asociado; contienen solo lógica.
Los programas de Raydium:
- CPMM:
CPMMoo8L3F4NbTegBCKVNunggL7H1Zpdmwpwh8KMoZ0F - CLMM:
CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK - AMM v4:
675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8
Cuentas
Una cuenta es una fila de datos en la cadena. Cada cuenta tiene:pubkey— su dirección.owner— el programa que la posee (controla las escrituras).data— los bytes sin procesar.lamports— saldo de SOL (1 SOL = 1.000.000.000 lámports).rent_epoch— campo heredado de cobro de renta (ignorado desde que la exención de renta se hizo obligatoria).
Propiedad
Cada cuenta es propiedad de exactamente un programa. Solo el código de ese programa puede modificar el campodata de la cuenta. Un usuario puede modificar lamports (enviar/recibir SOL) en una cuenta que pueda firmar, pero modificar data requiere que el programa propietario lo haga en su nombre.
Ejemplos:
- Tu billetera de usuario: propiedad del Programa del Sistema. Los lámports viven aquí; firmas para transferir.
- Tu cuenta de token USDC: propiedad del Programa SPL Token. La instrucción
transferdel programa de token actualiza el saldo. - Una cuenta de estado del pool de Raydium: propiedad del programa CPMM. Solo las instrucciones de CPMM pueden modificar las reservas, tarifas, etc.
- El
PersonalPositionStatedel NFT de posición de Raydium: propiedad del programa CLMM.
Renta y exención de renta
Crear una cuenta consume espacio de almacenamiento. Solana cobra renta por ese espacio, pero desde 2020 todas las cuentas nuevas deben ser exentas de renta — lo que significa que contienen suficientes lámports para que la renta que deberían durante 2 años esté prepagada. En la práctica:- Una cuenta exenta de renta vive para siempre.
- Cerrar la cuenta devuelve los lámports al firmante que cierra.
Costos de renta de Raydium
| Cuenta | Tamaño | Renta |
|---|---|---|
| CPMM PoolState | ~1.440 B | ~0,011 SOL |
| CLMM PoolState | ~1.500 B | ~0,012 SOL |
| CLMM TickArray | ~9.000 B | ~0,063 SOL |
| CLMM PersonalPositionState | ~280 B | ~0,003 SOL |
| ATA | 165 B | ~0,002 SOL |
| Vault (Token Account) | 165 B | ~0,002 SOL |
Cuentas de datos versus ejecutables
Las cuentas vienen en dos sabores:Cuentas de datos
Contienen estado (reservas del pool, saldos de tokens, posiciones del usuario).executable = false. Esta es la gran mayoría.
Cuentas ejecutables
Contienen bytecode del programa.executable = true. Estos son programas (CPMM, CLMM, etc.). Los programas no tienen datos más allá de su bytecode.
Cuentas derivadas del programa (PDAs)
Una PDA es una cuenta de datos cuya dirección se deriva determinísticamente de un programa y algunas semillas — no existe clave privada para esta dirección. Solo el programa de derivación puede firmar en nombre de una PDA medianteinvoke_signed.
Raydium usa PDAs extensivamente:
- PDAs de estado del pool: derivadas de
[poolTypeDiscriminator, mintA, mintB, ammConfig]. - PDAs de bóveda: derivadas de
[pool, mint]. - PDA de estado de observación: derivada de
[observationSeed, pool].
solana-fundamentals/pdas-and-cpis.
Transacciones y referencias de cuentas
Cada transacción de Solana lleva una lista explícita de cuentas que va a leer/escribir. El tiempo de ejecución aplica:- Las cuentas listadas se pueden leer o escribir (según su bandera
is_writable). - Las cuentas no listadas no se pueden tocar.
Tamaño de cuenta y diseño de datos
Cada cuenta de Raydium tiene un tamaño fijo o limitado. El diseño se define en código (structs de Rust con#[repr(C)]) y está documentado en sdk-api/anchor-idl.
Los programas de Anchor preponen un discriminador de 8 bytes a cada cuenta que crean, derivado de hash("account:<StructName>")[0..8]. Esto permite a los clientes identificar el tipo de una cuenta solo leyendo los primeros 8 bytes — crucial para escaneos de getProgramAccounts que enumeran todas las cuentas de un tipo.
Leer un estado del pool de Raydium
Mediante el SDK:src/raydium/cpmm/layout.ts en la fuente del SDK.
Ejemplo trabajado: lectura de una cuenta de token
Leamos el saldo de USDC de un usuario.Por qué esto importa para Raydium
El modelo de cuentas da forma al diseño de Raydium:- El estado del pool es una cuenta única — todo sobre un pool (mints, reservas, tarifas, admin) vive en una cuenta propiedad del programa del pool.
- Los tokens LP son cuentas de token SPL estándar — Raydium delega la tokenización al programa SPL Token.
- Los arreglos de tick se dividen en fragmentos — CLMM no puede tener un arreglo de ticks único y creciente porque las cuentas tienen tamaño asignado fijo; en su lugar, usa PDAs de
TickArrayfragmentadas. - Los NFTs de posición son NFTs de Metaplex — las posiciones de CLMM son NFTs estándar según Metaplex; el estado de la posición es una PDA separada.
- “¿Dónde están las reservas del pool?” → dos cuentas de bóveda (cuentas de token) propiedad del programa SPL Token, con autoridad delegada a una PDA del programa del pool.
- “¿Dónde están los datos de tick para CLMM?” → una serie de PDAs de TickArray, cada una cubriendo 60 ticks consecutivos.
- “¿Dónde está mi stake de granja?” → una PDA de
UserLedgerderivada de[user, farmId], propiedad del programa de granja.
Referencias
solana-fundamentals/programs-and-anchor— cómo los programas procesan cuentas.solana-fundamentals/pdas-and-cpis— derivación de PDA y CPI.solana-fundamentals/transactions-and-fees— cómo se referencian las cuentas en transacciones.sdk-api/anchor-idl— diseños de cuentas para los programas de Raydium.
- Documentos de Cuentas de Solana.
- Programa SPL Token — donde viven las cuentas de token.


