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 →
Banner de versión. Todas las demostraciones de TypeScript apuntan a
@raydium-io/raydium-sdk-v2@0.2.64-alpha; se ejecutaron por última vez contra 0.2.42-alpha (2026-04) y sus firmas de llamada se verificaron nuevamente contra la fuente 0.2.64-alpha el 2026-09-09, contra Solana mainnet-beta. El esqueleto de Rust CPI apunta a raydium-cp-swap en la rama chore/upgrade-anchor, Anchor 1.0.2 — master aún fija 0.32.1. Los ID de programa se extraen mediante constantes de reference/program-addresses.Requisitos previos
raydium-sdk-V2-demo/src/cpmm; el enlace de GitHub se encuentra junto a cada sección. El arranque sigue el config.ts.template del repositorio de demostración (fuente):
Raydium es la fachada del SDK — cada demostración a continuación la utiliza. Raydium.load es asincrónica porque carga la lista de tokens de forma predeterminada; pasa disableLoadToken: true para omitir esa búsqueda. La verificación de características de disponibilidad ya se omite a menos que pases disableFeatureCheck: false. Las configuraciones de comisiones se obtienen de forma perezosa en el primer uso a través de raydium.api.getCpmmConfigs().
Crear un pool CPMM
Fuente:src/cpmm/createCpmmPool.ts
- Ordenar los mints en orden token0/token1 antes de derivar el PDA.
- Pagar la
create_pool_feeúnica apoolFeeAccount. - Crear las cuentas de token asociadas del llamador si faltan.
- Elegir el programa de token correcto (SPL Token vs Token-2022) por lado.
Swap (entrada base)
Fuente:src/cpmm/swap.ts
getPoolInfoFromRpc. No cites desde api-v3.raydium.io para una transacción que estés a punto de firmar — una cotización que está un bloque desactualizada puede deslizarse en ExceededSlippage en el momento de la ejecución.
Swap (salida base)
Fuente:src/cpmm/swapBaseOut.ts
Depositar liquidez
Fuente:src/cpmm/deposit.ts
maximum_* de la instrucción, y construye las creaciones de ATA si es necesario. raydium.cpmm.computePairAmount({ ... }) devuelve los mismos números si los quieres para una vista previa de la interfaz de usuario.
Retirar liquidez
Fuente:src/cpmm/withdraw.ts
Cobrar comisiones de protocolo/fondo/creador
Fuente:src/cpmm/collectCreatorFee.ts, src/cpmm/collectAllCreatorFee.ts
La recopilación de protocolo y fondo sigue siendo controlada por autoridad. Las comisiones del creador tienen dos caminos: el CollectCreatorFee firmado por el creador, y el aditivo CollectCreatorFeePermissionless, que cualquier pagador puede invocar pero que solo puede transferir a las ATA canónicas del creador. 0.2.64-alpha envía constructores a nivel de módulo para ambas rutas del creador:
Las dos instrucciones del creador tienen discriminadores y diseños de cuentas diferentes — la sin permisos reemplaza el firmante del creador con un
payer separado y un creator que no firma. Usa el constructor coincidente en lugar de intercambiar manualmente cuentas en el otro.No hay constructor de comisión de protocolo o fondo en el SDK (makeCollectProtocolFeeInstruction y makeCollectFundFeeInstruction no existen bajo ningún nombre) — esos son caminos de administrador, al igual que CreateCreatorFeeShare / CloseCreatorFeeShare, que tampoco tienen constructor. Los constructores de instrucción de bajo nivel que sí existen son collectCpFeeInstruction,
makeCollectCreatorFeeInstruction y collectCreatorFeePermissionlessInInstruction.PoolState:
Esqueleto de Rust CPI
Si quieres invocar CPMM desde tu propio programa Anchor — por ejemplo, una bóveda que intercambia en nombre de sus depositantes — el contexto de CPI se ve así. El orden de cuentas sigueproducts/cpmm/instructions.
CpiContext::new por CpiContext::new_with_signer y pasa tus semillas.
Errores comunes
Una lista de verificación breve antes de abrir un ticket de soporte:- Mints ordenados. Si tu PDA
poolStatederivado no coincide con el pool en cadena, probablemente olvidaste ordenar los mints. - Cotización de API desactualizada. Nunca pases un valor de reserva de
api-v3.raydium.ioaCurveCalculator.swap. Obtén desde un RPC. - Programa de token incorrecto. El vault de un mint de Token-2022 es propiedad del programa Token-2022, no de SPL Token. Siempre usa los campos
token_0_program/token_1_programdel pool. - Slippage sub-denominado para mints de comisión de transferencia. Si cualquiera de los lados del pool es un mint de comisión de transferencia de Token-2022, tu
minimum_amount_outdebe estar denominado en lo que el usuario realmente recibe, no en lo que el vault envía. NotApproveden un swap. VerificaPoolState.status— el administrador puede haber pausado los swaps en ese pool. Verproducts/cpmm/instructionspara la máscara de estado.
Dónde ir a continuación
sdk-api/typescript-sdk— referencia completa del SDK.sdk-api/rest-api— puntos finales de cotización y metadatos de pool.user-flows/create-cpmm-pool— el recorrido sin código del mismo flujo.integration-guides/aggregator— si estás enrutando CPMM como parte de una ruta de múltiples saltos.

