Skip to main content
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 →
Raydium Perps es un despliegue de etiqueta blanca en Orderly Network. El libro de órdenes, el motor de emparejamiento y el estado de la cuenta residen en Orderly. El SDK de Raydium v2 (@raydium-io/raydium-sdk-v2) no cubre perps — para acceso programático, usa directamente la API REST + WebSocket de Orderly. Los fragmentos a continuación muestran los flujos más comunes; la referencia canónica está en orderly.network/docs.
Banner de versión.
  • Backend: API REST + WebSocket de Orderly Network
  • Esquema de fragmento verificado contra la API de Orderly a partir de 2026-04
  • Cluster de Solana para depósitos en cadena: mainnet-beta
  • Firma: Ed25519 de Solana sobre la carga útil de estilo EIP-712 de Orderly (Orderly utiliza un esquema EIP-712 incluso para cadenas que no son EVM; consulta la documentación de Orderly para la lista de campos más reciente)
La superficie de la API de Orderly evoluciona; verifica orderly.network/docs antes de copiar estos fragmentos en producción.

Qué hay en esta página

Los flujos a continuación cubren el ciclo de vida relevante para el integrador:
  1. Configuración de cuenta — depositar USDC y registrar la cuenta con Orderly.
  2. Llamadas REST autenticadas — solicitar firma para colocación de órdenes, cancelación y consultas de cuenta.
  3. Trading — colocar órdenes de mercado / límite, cancelar, obtener posiciones y ejecuciones.
  4. Datos de mercado — suscribirse al libro de órdenes y WebSocket de transacciones.
  5. Retiro — iniciar un retiro de vuelta a la billetera.
Estos fragmentos están dirigidos a Node.js + TypeScript con @solana/web3.js y tweetnacl para firma Ed25519. Son puntos de partida — la superficie de la API de Orderly es amplia y cambia más rápido que esta página; siempre verifica la documentación en vivo de Orderly antes de enviar código de producción.

Configuración

La clave de trading de Orderly no es tu clave de billetera. Es una clave para firmar solicitudes que registras contra tu billetera en el primer uso; puedes rotarla sin tocar fondos. Trata como una credencial de sesión.

Registro de cuenta

Antes de colocar cualquier orden, registra la billetera con Orderly:
Los IDs de cuenta son deterministas por par (broker_id, wallet_address) — el registro es idempotente. Si una billetera ya se ha registrado con el broker de Raydium, la llamada devuelve el mismo ID de cuenta sin crear uno nuevo.

Depositar USDC

Los depósitos mueven USDC desde el ATA de la billetera al almacén de liquidación de Orderly. Son transacciones de Solana en cadena:
Después de ~30 segundos, el relayer de Orderly indexa el depósito y el saldo aparece bajo el margen libre de la cuenta. Consulta /v1/client/holding para confirmar:
(orderlyAuthGet se define a continuación — cada llamada autenticada la atraviesa.)

Ayudante de firma de solicitud

Cada llamada REST autenticada a Orderly lleva una firma Ed25519 sobre (timestamp + method + path + body):
Protección contra reproducción: las solicitudes con un timestamp más de 5 segundos desincronizado del reloj del servidor se rechazan. Sincroniza tu reloj (NTP) y evita firmar solicitudes por adelantado.

Colocar una orden de mercado

Las órdenes de mercado se ejecutan inmediatamente. La respuesta devuelve el order_id resultante más un estado. Las ejecuciones vienen a través del WebSocket (ver abajo); la respuesta de REST en sí no se bloquea hasta que esté completamente ejecutada.

Colocar una orden de límite con Post-Only

Para IOC / FOK, establece time_in_force: "IOC" o "FOK". Consulta products/perps/order-types para la semántica de cada bandera.

Cancelar una orden

Una cancelación se reconoce de forma síncrona pero la cancelación real puede correr una carrera con una ejecución. Siempre reconcilia sondando /v1/orders o observando el WebSocket — asumir que una cancelación tuvo éxito sin confirmación puede llevar a posiciones duplicadas o no intencionadas.

Obtener posiciones abiertas

Un position_qty negativo es una venta en corto, positivo es una compra larga. position_qty == 0 significa que la posición está cerrada pero la fila puede permanecer hasta la siguiente limpieza.

Obtener historial de ejecuciones

Los argumentos de tiempo son marcas de tiempo Unix en milisegundos. El tamaño de página predeterminado es 25 filas; usa los parámetros de consulta page y size para paginar.

WebSocket: datos de mercado

Para el flujo privado (tus ejecuciones, actualizaciones de posición, cambios de saldo), el WebSocket tiene que estar autenticado. Envía una carga útil de subscribe firmada de la misma manera que las solicitudes REST, limitada a tu ID de cuenta. La documentación de Orderly tiene la forma exacta de la carga útil; cambia ocasionalmente, así que no codifiques un esquema particular aquí.

Retirar USDC

Orderly retransmite el retiro en cadena al domicilio del receptor. Hay una tarifa de retiro plana de 1 USDC (consulta products/perps/fees). La transferencia en cadena ocurre dentro de 1–2 minutos en condiciones normales; espera más tiempo durante la congestión.

Trampas

  • No reutilices la clave de trading entre entornos. Una única clave de trading de Orderly registrada contra tu billetera está asociada con una cuenta mainnet de Solana. Si también necesitas devnet o staging, genera una clave separada para cada uno.
  • Sincronización de tiempo. La tolerancia de sesgo de reloj de Orderly es ajustada (±5s). En servicios de larga duración, la desviación de NTP eventualmente romperá la firma. Resincroniza periódicamente.
  • Reconexiones de WebSocket. El WS público ocasionalmente cae conexiones durante actualizaciones de Orderly. Implementa retroceso exponencial y resuscribirse al reabrirse.
  • Límites de velocidad. Las llamadas de REST tienen límites de velocidad por nivel por cuenta. Cancela en masa a través de cancel_all en lugar de hacer un bucle con cancel-by-id cuando tienes >5 órdenes para cancelar.
  • La dirección de la posición es implícita. Una orden de BUY en PERP_SOL_USDC abre o extiende una compra larga; una SELL abre o extiende una venta en corto — pero si ya tienes una compra larga, una SELL reduce (y puede cambiar) la posición porque Raydium Perps está en modo unidireccional. Siempre verifica la posición actual antes de colocar una orden si la dirección importa.
  • Los fondos y las liquidaciones son separados del flujo de órdenes. Los pagos de fondos y las liquidaciones aparecen como flujos de eventos separados; no son “órdenes”. Suscribete a los temas relevantes de WS privado si necesitas observarlos.

Por dónde continuar

Fuentes: