Documentation
Markout Labs Oracle
Signed prices from independent nodes, checked by quorum.
Overview
What the oracle is, how data flows, and what to trust.
- IntroductionMarkout Labs Oracle is a network of independent nodes that sign crypto prices. The consumer takes the median across several nodes.
- ArchitectureHow a price moves from the venues through a node to the SDK or the web proxy, what each crate does, and why the nodes do not talk to each other.
- Trust modelWhat a node signature proves, what the quorum protects against, and the failures that the median across nodes cannot catch.
Concepts
Feeds, aggregation and the registry.
- Feeds and symbolsHow the oracle names a feed, how a feed ID derives from its symbol, how numbers are encoded, and which feeds and venues exist today.
- AggregationHow a node turns the quotes of several venues into one price, one confidence interval and status flags, and when it publishes them.
- RegistryThe registry canister on the Internet Computer lists the nodes and clients. How a consumer trusts it, and how a key rotation reaches the consumer.
Integrate
Read prices with the Rust SDK or the JSON WebSocket.
- Rust SDKUse the oracle-client crate to verify signed updates from many nodes, resolve one price per feed, and read books and venue reports.
- Web proxy APIThe JSON WebSocket that oracle-proxy serves to browsers. Endpoints, every message, how to keep a book, limits, and a TypeScript client.
- JavaScript SDKRead verified prices, venue reports, order books, funding and node reports from oracle-proxy in a browser or in Node.js, with typed messages and automatic reconnects.
- Client accessHow a consumer gets a client API key listed, and how the nodes authenticate and encrypt the stream for listed clients.
Protocol
Signed payloads, streams and the node WebSocket.
- Signing and the price payloadHow a node signs each update, the 96-byte PriceUpdate layout, the flags and source bitmap, and how a consumer verifies one update.
- Venue reports, books and fundingThe signed VenueReport, BookUpdate and FundingUpdate payloads, how books travel as snapshots and deltas, and the golden vectors that freeze every layout.
- Node WebSocket protocolHow a client connects to a node on /v2/ws - the signed handshake, the sealed control channel, subscriptions, data frames, REST routes and fanout.
Operate
Run a node or a web proxy.
- Run a nodeInstall a node with two commands, register it with governance, read its status lines and logs, and run it under systemd.
- Run the web proxyInstall and configure oracle-proxy, get its client key listed, set the quorum and limits, and run it behind a TLS reverse proxy.
- Rotate a node keyReplace a node's signing key with oracle-node rotate and the replace_node call that governance runs, and what consumers see during the swap.
- LatencyThe node's latency budget, the measured latency from the venues to the SDK, what each measure means, and how to run the measurement.