syntax = "proto3"; package kairos.v1; import "kairos/v1/common.proto"; option go_package = "github.com/kairos/proto/kairos/v1"; // TokenPriceUpdate represents price data for a single token/outcome message TokenPriceUpdate { string token_id = 1; uint32 outcome_index = 2; // All prices scaled by 10000 (e.g., 6500 = 0.65) int32 mid_price = 3; int32 best_bid = 4; int32 best_ask = 5; } // PriceUpdate represents a price update for a contract message PriceUpdate { Provider provider = 1; string contract_id = 2; // Timestamp in microseconds since Unix epoch int64 timestamp_us = 3; // Contract-level prices (scaled by 10000) int32 mid_price = 4; int32 best_bid = 5; int32 best_ask = 6; // Per-token price updates repeated TokenPriceUpdate tokens = 7; // Raw price in cents for oracle/crypto prices (e.g., 9700050 = $97,000.50) // Used when prices exceed the int32 scaled-by-10000 range (prediction markets). int64 raw_price_cents = 8; }