Monaco Protocol SDK v1.0.86
Public open interest is now one-sided: long positions only, each open contract counted once. Reported values halve, and field names and types are unchanged. The screener’sopenInterestBase is null when no sample was recorded in the last five minutes. Off-hours, the mark on a stock, FX or commodity market may now sit up to 3% from the oracle (5% on MSTR, COIN and HOOD). Action items: rescale any open-interest thresholds, alerts or charts that assumed the gross (longs plus shorts) figure, and handle a null screener openInterestBase on a perp.
Changed
One-sided open interest
Open interest now counts long positions only, so each open contract is counted once. It previously added longs and shorts, so every value below is half what it was. Field names, types and units are unchanged.getOpenInterest(GET /api/v1/market/pairs/{tradingPairId}/open-interest; gRPCMarketService.GetOpenInterest):openInterestBaseandopenInterestNotionalgetPerpMarketSummary(GET /api/v1/market/pairs/{tradingPairId}/perp/summary; gRPCMarketService.GetPerpMarketSummary):openInterest,openInterestBaseandopenInterestNotionalgetScreener(GET /api/v1/market/screener; gRPCMarketService.GetScreener):openInterestBase,openInterestNotional,openInterestNotionalAvg1h/24h/7d, andsnapshot7d[].openInterestNotionalAvgsdk.ws.marketStatsandsdk.ws.marketStatsAllframes:openInterestandopenInterestNotional- The MCP server’s
get_open_interesttool
openInterestLimit and openInterestHeadroom on market_stats frames still measure the market’s cap against gross open interest (longs plus shorts), so headroom is not derivable from openInterest alone. Candle openInterestBase was already one-sided and is unchanged. See Markets and Market.
Screener open interest freshness
getScreener now reads openInterestBase from the latest completed-minute sample, and returns null (not "0") when no sample was recorded in the last five minutes. "0" still means a perp with no open positions. See Market Screener.

