The SDK is a thin typed layer over two wire protocols:
- ConnectRPC over HTTP for unary requests (binary Protobuf by default)
- Centrifugo over WebSocket for realtime (binary Protobuf client protocol and payloads)
- Private WebSocket (
/v1/ws/private) for your order updates, used byOrders.Subscribe
Config / credentials API URL, WS URL, Ed25519 key material, Account ID
|
`polyester.Client` wires transports, catalogs, and service accessors
├── Connect transport public + authenticated unary calls
├── Realtime client shared WebSocket multiplexer
├── Catalogs spot + Zipper reference data / scales
├── Services Orders, MarketData, Balances, ...
└── chain on-chain Funding helpers (not ConnectRPC)Go is synchronous. Pass context.Context on every call. Cancel the context to stop waits and stream receives.
Aliases: client.Candles → MarketData, client.TradingWithdraws → Withdraw. Account resolve is out of scope for API-key SDKs.
Services are accessed as attributes/fields on the client (client.Orders, client.MarketData, …). Catalog hydration usually starts on client create;
wait before decimal writes that depend on scales.
Related: Environments, Client configuration, Realtime.
Related Topics
Environments Testnet endpoints and how to point the client at another deployment. Authentication model Ed25519 API-key request signing for ConnectRPC and private realtime channels. Catalog & precision Spot/Zipper catalogs, decimal strings, and scaled-integer inputs. Requests & idempotency Go call conventions, context cancellation, and idempotency keys for orders and triggers. Limitations & non-features What API-key SDKs intentionally omit, and where to go instead.