API Reference

Complete documentation for the Realm gRPC API. 29 endpoints covering market data, trading, account management, and real-time streaming.

Protocol

Realm uses gRPC (not REST). Web clients connect via gRPC-Web through our Envoy proxy. This provides type-safe, bidirectional streaming with 10x less latency than REST+WebSocket.

Base URL

NetworkgRPC-Web (browsers)Native gRPC
Mainnethttps://api.realm.softwaregrpc://api.realm.software:9090

Authentication

Realm uses Dilithium-3 signatures for authentication (no API keys). Each request includes your public key, a signature of the request payload, a timestamp, and a monotonic nonce.

Read the full authentication guide →

Protocol Buffers

All messages are serialized using Protocol Buffers. The canonical definitions are available in our GitHub repository:

realm_api.protoprotobuf
syntax = "proto3";
service RealmApi {
// Public (no auth)
rpc Ping(PingRequest) returns (PongResponse);
rpc GetChainInfo(GetChainInfoRequest) returns (ChainInfoResponse);
rpc GetMarkets(GetMarketsRequest) returns (MarketsResponse);
// ... 26 more endpoints
}

View full proto file on GitHub →

Endpoints

Public Endpoints

No authentication required

Account Endpoints

Authentication required

Trading Endpoints

Authentication required

Streaming Endpoints

Authentication required

Faucet

Authentication required (testnet only)

Error Handling

All responses include a success boolean and an optionalerror string. When success is false, check the error message for details.

Error CodeDescription
INVALID_SIGNATURESignature verification failed
INVALID_NONCENonce is not monotonically increasing
INSUFFICIENT_BALANCENot enough funds for the operation
INVALID_ORDEROrder parameters are invalid
MARKET_NOT_FOUNDRequested market does not exist
RATE_LIMITEDToo many requests

Rate Limits

Rate limits are generous and designed for HFT. Current limits:

  • Public endpoints: 1000 req/min per IP
  • Authenticated endpoints: 10000 req/min per address
  • Order submission: 100 req/sec per address