Skip to main content
Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
Raydium Perps é uma implementação com marca branca na Orderly Network. O livro de ordens, o mecanismo de correspondência e o estado da conta residem na Orderly. O Raydium SDK v2 (@raydium-io/raydium-sdk-v2) não cobre perps — para acesso programático, use a API REST + WebSocket da Orderly diretamente. Os trechos abaixo mostram os fluxos mais comuns; a referência canônica está em orderly.network/docs.
Banner de versão.
  • Backend: API REST + WebSocket da Orderly Network
  • Schema de trecho verificado contra a API da Orderly a partir de 2026-04
  • Cluster Solana para depósitos on-chain: mainnet-beta
  • Assinatura: Solana ed25519 sobre o payload estilo EIP-712 da Orderly (Orderly usa um schema EIP-712 até para cadeias não-EVM; veja a documentação da Orderly para a lista de campos mais recente)
A superfície da API da Orderly evolui; verifique orderly.network/docs antes de copiar esses trechos para produção.

O que há nesta página

Os fluxos abaixo cobrem o ciclo de vida relevante para o integrador:
  1. Configuração de conta — depositar USDC e registrar a conta com a Orderly.
  2. Chamadas REST autenticadas — solicitar assinatura para colocação de ordens, cancelamento e consultas de conta.
  3. Negociação — colocação de ordens de mercado / limite, cancelamento, busca de posições e preenchimentos.
  4. Dados de mercado — inscrição no livro de ordens e WebSocket de negociações.
  5. Saque — iniciar um saque de volta para a carteira.
Esses trechos têm como alvo Node.js + TypeScript com @solana/web3.js e tweetnacl para assinatura Ed25519. Eles são pontos de partida — a superfície da API da Orderly é ampla e muda mais rápido do que esta página; sempre verifique a documentação ao vivo da Orderly antes de colocar código de produção em funcionamento.

Configuração

A chave de negociação Orderly não é o par de chaves da sua carteira. É uma chave para assinatura de solicitação que você registra em seu uso pela primeira vez; você pode rotacioná-la sem tocar nos fundos. Trate-a como uma credencial de sessão.

Registro de conta

Antes de colocar qualquer ordem, registre a carteira com a Orderly:
IDs de conta são determinísticos por par (broker_id, wallet_address) — o registro é idempotente. Se uma carteira já se registrou com o broker Raydium, a chamada retorna o mesmo ID de conta sem criar um novo.

Depositar USDC

Os depósitos movem USDC do ATA da carteira para o cofre de liquidação da Orderly. Eles são transações Solana on-chain:
Após ~30 segundos, o relayer da Orderly indexa o depósito e o saldo aparece na margem livre da conta. Consulte /v1/client/holding para confirmar:
(orderlyAuthGet é definido abaixo — toda chamada autenticada passa por ela.)

Auxiliar de assinatura de solicitação

Toda chamada REST autenticada para Orderly carrega uma assinatura Ed25519 sobre (timestamp + method + path + body):
Proteção contra reprodução: solicitações com um timestamp mais de 5 segundos fora do relógio do servidor são rejeitadas. Sincronize seu relógio (NTP) e evite assinar solicitações com antecedência.

Colocar uma ordem de mercado

Ordens de mercado são executadas imediatamente. A resposta retorna o order_id resultante mais um status. Os preenchimentos chegam sobre o WebSocket (veja abaixo); a própria resposta REST não bloqueia até estar totalmente preenchida.

Colocar uma ordem limitada com Post-Only

Para IOC / FOK, defina time_in_force: "IOC" ou "FOK". Veja products/perps/order-types para a semântica de cada flag.

Cancelar uma ordem

Um cancelamento é reconhecido sincronamente, mas o cancelamento real pode correr contra um preenchimento. Sempre reconcilie consultando /v1/orders ou observando o WebSocket — assumir que um cancelamento foi bem-sucedido sem confirmação pode levar a posições duplicadas ou não intencionais.

Buscar posições abertas

Uma position_qty negativa é uma posição curta, positiva é uma posição longa. position_qty == 0 significa que a posição está fechada, mas a linha pode ainda aparecer até a próxima limpeza.

Buscar histórico de preenchimentos

Argumentos de tempo são timestamps Unix em milissegundos. O tamanho padrão da página é 25 linhas; use os parâmetros de consulta page e size para paginar.

WebSocket: dados de mercado

Para o stream privado (seus preenchimentos, atualizações de posição, mudanças de saldo), o WebSocket precisa ser autenticado. Envie um payload de subscribe assinado da mesma forma que as solicitações REST, com escopo para seu ID de conta. A documentação da Orderly tem o shape do payload exato; ela muda ocasionalmente, então não faça hardcode de um schema particular aqui.

Sacar USDC

A Orderly retransmite o saque on-chain para o endereço do receptor. Há uma taxa de saque fixa de 1 USDC (veja products/perps/fees). A transferência on-chain acontece em 1–2 minutos em condições normais; espere mais tempo durante congestionamento.

Armadilhas

  • Não reutilize a chave de negociação entre ambientes. Uma única chave de negociação Orderly registrada em sua carteira é associada a uma conta mainnet Solana. Se você também precisa de devnet ou staging, gere uma chave separada para cada.
  • Sincronização de tempo. A tolerância de desvio de relógio da Orderly é apertada (±5s). Em serviços de longa duração, a deriva de NTP eventualmente quebrará a assinatura. Ressincronize periodicamente.
  • Reconexões do WebSocket. O WS público ocasionalmente cai durante atualizações da Orderly. Implemente backoff exponencial e reinscreva-se na reabertura.
  • Limites de taxa. Chamadas REST são limitadas por taxa por conta. Use cancel_all para cancelamento em massa em vez de fazer loop com cancel-por-id quando você tem >5 ordens para cancelar.
  • Direção de posição é implícita. Uma ordem BUY em PERP_SOL_USDC abre ou estende uma posição longa; uma ordem SELL abre ou estende uma posição curta — mas se você já está comprado, uma SELL reduz (e pode inverter) a posição porque Raydium Perps está em modo unidirecional. Sempre verifique a posição atual antes de colocar uma ordem se a direção importa.
  • Financiamento e liquidações são separados do fluxo de ordens. Pagamentos de financiamento e liquidações aparecem como streams de eventos separados; eles não são “ordens”. Inscreva-se nos tópicos privados relevantes do WS se precisar observá-los.

Próximos passos

Fontes: