Websocket API Reference
Table of Contents
Overview
The Reya DEX Trading WebSocket API v2 provides real-time streaming data for decentralized exchange operations on the Reya Network. This version offers user-friendly data structures with human-readable formats, removing blockchain-specific details while maintaining comprehensive trading functionality.
Server Endpoints
Production Environment
URL:
wss://ws.reya.xyzProtocol: WSS
Description: Production WebSocket server for live trading
Staging Environment
URL:
wss://websocket-staging.reya.xyzProtocol: WSS
Description: Staging WebSocket server for pre-production testing
Test Environment
URL:
wss://websocket-testnet.reya.xyzProtocol: WSS
Description: Test WebSocket server for development
Channel Architecture
The API uses a hierarchical channel structure with clear separation between different data types:
Channel Categories
Market Data Channels
/v2/markets/summary- Perp market summaries/v2/market/{symbol}/summary- Individual perp market summary/v2/market/{symbol}/perpExecutions- Market-specific perpetual executions/v2/market/{symbol}/depth- L2 order book depth snapshots, only relevant for markets using the Reya Order Book instead of the AMM/v2/market/{symbol}/spotExecutions- Market-specific spot executions/v2/prices- All symbol prices/v2/prices/{symbol}- Individual symbol prices
Wallet Data Channels
/v2/wallet/{address}/positions- Position updates/v2/wallet/{address}/orderChanges- Order change updates/v2/wallet/{address}/perpExecutions- Wallet-specific perpetual executions/v2/wallet/{address}/spotExecutions- Wallet-specific spot executions/v2/wallet/{address}/accountBalances- Account balance updates
Parameter Validation
Symbol Parameter
Pattern:
^[A-Za-z0-9]+$Examples:
BTCRUSDPERP,ETHRUSD,kBONKRUSDPERP,AI16ZRUSDPERPDescription: Trading symbol supporting alphanumeric characters
Address Parameter
Pattern:
^0x[a-fA-F0-9]{40}$Example:
0x6c51275fd01d5dbd2da194e92f920f8598306df2Description: Ethereum wallet address (40 hexadecimal characters)
Message Structure
All WebSocket messages follow a standardized envelope structure:
Base Message Envelope
Message Components
type: Always
"channel_data"for data updatestimestamp: Server timestamp in milliseconds
channel: Specific channel identifier
data: Channel-specific payload (object or array)
Heartbeat Messages
Ping Message (Server → Client)
Pong Message (Client → Server)
Channels Reference
1. Market Data Channels
/v2/markets/summary
/v2/markets/summaryPurpose: Real-time updates for all market summaries
Subscription:
Message Structure:
/v2/market/{symbol}/summary
/v2/market/{symbol}/summaryPurpose: Real-time updates for a specific market's summary
Parameters:
symbol: Trading symbol (e.g.,BTCRUSDPERP,kBONKRUSDPERP)
Subscription:
Message Structure:
/v2/market/{symbol}/perpExecutions
/v2/market/{symbol}/perpExecutionsPurpose: Real-time perpetual executions for a specific market
Parameters:
symbol: Trading symbol (e.g.,BTCRUSDPERP,AI16ZRUSDPERP)
Subscription:
Message Structure:
/v2/prices
/v2/pricesPurpose: Real-time price updates for all symbols
Subscription:
Message Structure:
/v2/prices/{symbol}
/v2/prices/{symbol}Purpose: Real-time price updates for a specific symbol
Parameters:
symbol: Trading symbol (e.g.,BTCRUSDPERP,kBONKRUSDPERP)
Subscription:
Message Structure:
/v2/market/{symbol}/depth
/v2/market/{symbol}/depthPurpose: Real-time L2 order book depth snapshots for a specific market
Parameters:
symbol: Trading symbol (e.g.,BTCRUSDPERP,DOGERUSDPERP)
Subscription:
Message Structure:
/v2/market/{symbol}/spotExecutions
/v2/market/{symbol}/spotExecutionsPurpose: Real-time spot executions for a specific market
Parameters:
symbol: Trading symbol (e.g.,ETHRUSD,BTCRUSD)
Subscription:
Message Structure:
2. Wallet Data Channels
/v2/wallet/{address}/positions
/v2/wallet/{address}/positionsPurpose: Real-time position updates for a wallet
Parameters:
address: Ethereum wallet address (e.g.,0x6c51275fd01d5dbd2da194e92f920f8598306df2)
Subscription:
Message Structure:
/v2/wallet/{address}/orderChanges
/v2/wallet/{address}/orderChangesPurpose: Real-time order change updates for wallet
Parameters:
address: Ethereum wallet address
Subscription:
Message Structure:
/v2/wallet/{address}/perpExecutions
/v2/wallet/{address}/perpExecutionsPurpose: Real-time perpetual execution updates for a wallet
Parameters:
address: Ethereum wallet address
Subscription:
Message Structure:
/v2/wallet/{address}/spotExecutions
/v2/wallet/{address}/spotExecutionsPurpose: Real-time spot execution updates for a wallet
Parameters:
address: Ethereum wallet address
Subscription:
Message Structure:
/v2/wallet/{address}/accountBalances
/v2/wallet/{address}/accountBalancesPurpose: Real-time account balance updates for a wallet
Parameters:
address: Ethereum wallet address
Subscription:
Message Structure:
Data Types & Schemas
Enumeration Types
Connection Management
Heartbeat Management
The API implements a ping/pong heartbeat mechanism:
Server Ping: Server sends periodic ping messages
Client Pong: Client must respond with pong messages
Connection Health: Failure to respond may result in disconnection
Connection Best Practices
Implement Reconnection Logic: Handle connection drops gracefully
Manage Subscriptions: Track active subscriptions for reconnection
Handle Backpressure: Process messages efficiently to avoid buffer overflow
Monitor Latency: Track message timestamps for performance monitoring
Validate Messages: Verify message structure and required fields