{"x402Version":2,"service":"HALOWERK marktwerk","version":"1.0.0","network":"eip155:8453","network_name":"Base Mainnet","chain_id":8453,"recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","asset":{"symbol":"USDC","address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","decimals":6},"facilitators":["CDP","https://facilitator.xpay.sh"],"payment_headers":{"primary":"PAYMENT-SIGNATURE","accepted":["PAYMENT-SIGNATURE","X-Payment","PAYMENT"],"challenge":["PAYMENT-REQUIRED"],"response":["PAYMENT-RESPONSE"]},"resources":[{"url":"https://markt.halowerk.com/snapshot","method":"POST","name":"market_snapshot","description":"Returns one consolidated ticker for a BASE/QUOTE pair from Binance, Coinbase, Kraken, OKX or Bybit. With venue \"auto\" the exchange with the highest 24h turnover for that pair is used and named in the answer, never silently. Every field the exchange does not report stays null and is listed in unavailable_fields — nothing is estimated or filled in from another venue, except the 24h turnover used for the auto comparison, which is marked as estimated where an exchange reports base volume only. age_ms states how old the value is; a cache hit costs the same and says so. Does not deliver order book depth, trades or derivatives data.","summary":"Live spot snapshot for one crypto pair: last, bid, ask, mid, spread in basis points, 24h volume, high, low and change, with the age of the value in milliseconds.","inputSchema":{"type":"object","required":["symbol"],"additionalProperties":false,"properties":{"symbol":{"type":"string","pattern":"^[A-Za-z0-9]{2,15}/[A-Za-z0-9]{2,15}$","description":"Trading pair as BASE/QUOTE, for example ETH/USDC."},"venue":{"type":"string","enum":["binance","coinbase","kraken","okx","bybit","auto"],"default":"auto","description":"Exchange to read from, or \"auto\" for the venue with the highest 24h turnover."}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"1000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://markt.halowerk.com/candles","method":"POST","name":"ohlcv_candles","description":"Returns open, high, low, close, volume and, where the exchange reports it, the trade count per candle. Timestamps are always the opening time of the candle in UTC milliseconds. The last candle is usually still forming: it is delivered but marked, and complete=false says so at the top level, with last_closed_ts naming the newest closed candle. Gaps are reported in gaps[] and never interpolated. A limit above the exchange page size is fetched in several requests and joined without a visible seam. Coinbase does not publish a 4h interval and therefore rejects it instead of deriving one from 6h data.","summary":"OHLCV candles for one crypto pair and interval, with an explicit flag whether the last candle is closed and an explicit list of gaps.","inputSchema":{"type":"object","required":["symbol","interval"],"additionalProperties":false,"properties":{"symbol":{"type":"string","pattern":"^[A-Za-z0-9]{2,15}/[A-Za-z0-9]{2,15}$","description":"Trading pair as BASE/QUOTE, for example ETH/USDC."},"venue":{"type":"string","enum":["binance","coinbase","kraken","okx","bybit"],"default":"binance","description":"Exchange to read from."},"interval":{"type":"string","enum":["1m","5m","15m","1h","4h","1d"],"description":"Candle size."},"limit":{"type":"integer","minimum":1,"maximum":1000,"default":100,"description":"Number of candles, newest last."},"since":{"type":"string","format":"date-time","description":"Optional ISO start time. Without it the newest candles are returned."}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"1000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://markt.halowerk.com/orderbook","method":"POST","name":"order_book","description":"Returns the visible order book of Binance, Coinbase, Kraken, OKX or Bybit for one BASE/QUOTE pair. Levels come as [price, size] with bids descending and asks ascending. depth[] states how much turnover sits within 0.5, 1 and 2 percent of the mid per side, in the quote currency, and additionally as depth_usd where the quote is a US dollar unit. group_bps folds levels into price bands whose price is the size weighted average of the band, for agents that do not want a thousand rows. The exchange update id is passed through in sequence so a buyer can tell whether two calls belong together; Kraken publishes none and the field stays null. truncated says the book ended exactly at the requested level count, so further levels may sit behind it; a shorter answer means the book really is that thin, nothing is padded. Cache lifetime is one second and age_ms always tells the truth.","summary":"Live order book for one crypto pair: aggregated bid and ask levels, mid, spread in basis points, depth in the quote currency at 0.5, 1 and 2 percent, plus the exchange update id.","inputSchema":{"type":"object","required":["symbol"],"additionalProperties":false,"properties":{"symbol":{"type":"string","pattern":"^[A-Za-z0-9]{2,15}/[A-Za-z0-9]{2,15}$","description":"Trading pair as BASE/QUOTE, for example ETH/USDC."},"venue":{"type":"string","enum":["binance","coinbase","kraken","okx","bybit"],"default":"binance","description":"Exchange to read the book from."},"levels":{"type":"integer","minimum":10,"maximum":1000,"default":100,"description":"Number of levels per side. Exchanges cap this differently; venue_max_levels names the cap actually used."},"group_bps":{"type":"number","minimum":0.1,"maximum":500,"description":"Optional band width in basis points. Without it the book is returned ungrouped."}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"2000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://markt.halowerk.com/trades","method":"POST","name":"time_and_sales","description":"Returns the raw public trade tape of Binance, Coinbase, Kraken, OKX or Bybit for one BASE/QUOTE pair, oldest first, exactly as the exchange reports it — no smoothing, no merging of prints. side is the side of the aggressor: reported directly by Kraken, OKX and Bybit, derived from the maker flag at Binance, and inverted from the maker side at Coinbase; side_source names which case applies. Where an exchange does not publish it, side is \"unbekannt\" and side_inferred stays false rather than guessing. buy_volume, sell_volume, counts and vwap are computed over exactly the delivered trades and the window is stated in ts_range. Public trade endpoints only reach back a limited number of prints; since filters within that window and says so when the window starts later than requested.","summary":"Recent public trades for one crypto pair with buy and sell volume split by aggressor side, trade counts, VWAP over the delivered window and the largest single trade.","inputSchema":{"type":"object","required":["symbol"],"additionalProperties":false,"properties":{"symbol":{"type":"string","pattern":"^[A-Za-z0-9]{2,15}/[A-Za-z0-9]{2,15}$","description":"Trading pair as BASE/QUOTE, for example ETH/USDC."},"venue":{"type":"string","enum":["binance","coinbase","kraken","okx","bybit"],"default":"binance","description":"Exchange to read the tape from."},"limit":{"type":"integer","minimum":1,"maximum":1000,"default":100,"description":"Number of trades, newest last. Bybit spot publishes at most 60."},"since":{"type":"string","format":"date-time","description":"Optional ISO start time. Only filters inside the window the exchange publishes."}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"2000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://markt.halowerk.com/orderbook/imbalance","method":"POST","name":"orderbook_imbalance","description":"Reads the visible order book of one exchange and measures how bid and ask volume sit inside a window of depth_pct around the mid. imbalance runs from -1 (only asks) to +1 (only bids) and is computed on quote turnover, not on level counts. pressure is the plain classification kauf, verkauf or ausgeglichen and the threshold behind it is returned in thresholds_used, never hidden in code. A wall is a level larger than five times the median level size in the same window; that median is part of the answer so the finding can be recomputed. concentration states what share of the volume sits in the three largest levels per side. The mandatory hinweis field states that order books turn over in seconds and that wall volume can be pulled without ever trading: this is a snapshot, not a signal and not a recommendation.","summary":"Bid versus ask volume inside a price window around the mid, as an imbalance between -1 and +1, with walls, concentration, microprice and every threshold used stated in the answer.","inputSchema":{"type":"object","required":["symbol"],"additionalProperties":false,"properties":{"symbol":{"type":"string","pattern":"^[A-Za-z0-9]{2,15}/[A-Za-z0-9]{2,15}$","description":"Trading pair as BASE/QUOTE, for example ETH/USDC."},"venue":{"type":"string","enum":["binance","coinbase","kraken","okx","bybit"],"default":"binance","description":"Exchange to read the book from."},"depth_pct":{"type":"number","minimum":0.1,"maximum":5,"default":1,"description":"Half width of the window around the mid, in percent."},"levels":{"type":"integer","minimum":50,"maximum":1000,"default":200,"description":"Levels per side to request. Exchanges cap this differently."}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"3000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://markt.halowerk.com/slippage","method":"POST","name":"slippage_estimate","description":"Takes side, size and size_unit and simulates the fill against the visible book of Binance, Coinbase, Kraken, OKX or Bybit. avg_price is the size weighted fill price, worst_price the last level touched, slippage is stated against the mid and against the best price on the executing side, with the reference named. If the visible depth is not enough the answer is still valid and paid: insufficient_liquidity is true, filled_pct says how far it got and max_fillable_size names the size the book actually carries. liquidity_curve is the core value: how much can be moved at 10, 25, 50 and 100 basis points of price give. With include_fees the taker fee of the entry tier is added, read live from Kraken and from a dated table elsewhere, always with source and tier named. No assumption about hidden liquidity, no iceberg estimate, no market impact beyond the book.","summary":"Walks a given order size through the visible order book and returns average price, worst price, slippage in basis points, how many levels it consumes and a liquidity curve of the size executable within 10, 25, 50 and 100 basis points.","inputSchema":{"type":"object","required":["symbol","side","size"],"additionalProperties":false,"properties":{"symbol":{"type":"string","pattern":"^[A-Za-z0-9]{2,15}/[A-Za-z0-9]{2,15}$","description":"Trading pair as BASE/QUOTE, for example ETH/USDC."},"venue":{"type":"string","enum":["binance","coinbase","kraken","okx","bybit"],"default":"binance","description":"Exchange whose book is used."},"side":{"type":"string","enum":["buy","sell"],"description":"buy consumes the ask side, sell the bid side."},"size":{"type":"number","exclusiveMinimum":0,"description":"Order size, in the unit given by size_unit."},"size_unit":{"type":"string","enum":["base","quote"],"default":"base","description":"base means size is in BASE, quote means size is in QUOTE."},"include_fees":{"type":"boolean","default":false,"description":"Adds the taker fee of the entry tier on top of the fill price."}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"4000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://markt.halowerk.com/cross-exchange","method":"POST","name":"cross_exchange_quote","description":"Queries Binance, Coinbase, Kraken, OKX and Bybit in parallel for one BASE/QUOTE pair, four seconds per exchange. An exchange that does not answer drops out with a stated reason and the call stays valid; venues_failed lists them. oldest_age_ms is mandatory and states the age of the oldest quote that entered the comparison, because differences taken from unequal points in time are the most common error in this kind of table. With an optional size the visible book of each exchange is walked as well, so the comparison uses the price actually executable for that size rather than the top of book. This endpoint compares prices and does not judge them: fees, slippage and transfer costs are not included, that calculation is endpoint 50.","summary":"The same pair quoted side by side on up to five exchanges, with best bid, best ask, the raw difference between them and the age of the oldest quote in the comparison.","inputSchema":{"type":"object","required":["symbol"],"additionalProperties":false,"properties":{"symbol":{"type":"string","pattern":"^[A-Za-z0-9]{2,15}/[A-Za-z0-9]{2,15}$","description":"Trading pair as BASE/QUOTE, for example ETH/USDC."},"venues":{"type":"array","minItems":1,"maxItems":5,"uniqueItems":true,"items":{"type":"string","enum":["binance","coinbase","kraken","okx","bybit"]},"description":"Exchanges to compare. Without it all connected exchanges are used."},"size":{"type":"number","exclusiveMinimum":0,"description":"Optional order size in BASE. With it the executable average price per exchange is computed from the visible book."}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"3000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://markt.halowerk.com/arbitrage","method":"POST","name":"net_arbitrage_check","description":"Walks the visible book of every requested exchange for the given size, in both directions, and works out what remains of the raw spread: gross_spread_bps from top of book, then the taker fee of the entry tier on both sides, then the slippage the size causes on the buy book and on the sell book. net_spread_bps is the headline number, the gross value stands next to it because on its own it is misleading. Transfer costs are the part no public exchange interface publishes without a key: withdraw fee, network, typical transfer minutes and gas stay null with the reason named, they are never estimated. With include_transfer true, viable therefore stays null instead of claiming a profit that has not been fully costed; with include_transfer false, viable is computed on fees and slippage alone and says so. Every direction that was examined is returned with its own numbers. No execution, no recommendation, only the calculation.","summary":"Checks a cross exchange price difference after taker fees and after the slippage the given size actually causes on both books, and states plainly what is left and what could not be priced.","inputSchema":{"type":"object","required":["symbol","size"],"additionalProperties":false,"properties":{"symbol":{"type":"string","pattern":"^[A-Za-z0-9]{2,15}/[A-Za-z0-9]{2,15}$","description":"Trading pair as BASE/QUOTE, for example ETH/USDT."},"venues":{"type":"array","minItems":2,"maxItems":5,"uniqueItems":true,"items":{"type":"string","enum":["binance","coinbase","kraken","okx","bybit"]},"description":"Exchanges to compare. Without it all connected ones are used."},"size":{"type":"number","exclusiveMinimum":0,"description":"Size in BASE that would be bought on one venue and sold on the other."},"include_transfer":{"type":"boolean","default":true,"description":"Whether transfer costs must be part of the verdict. They cannot be sourced publicly, so true keeps viable at null."}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"6000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://markt.halowerk.com/anomaly/volume","method":"POST","name":"volume_anomaly","description":"Compares the volume of the most recent completed minute candle with the distribution of minute volumes over the chosen lookback, taken from the history this hub records itself every minute. Median and median absolute deviation are used instead of mean and standard deviation because volume is skewed. Every finding carries its z value, the baseline median, the baseline MAD and the number of samples behind it, so it can be recomputed rather than believed. Pairs without a finding are returned in quiet with their z as well: no finding is a result and is charged in full. Fewer than two hundred samples set confidence to niedrig and say so explicitly. Where the own history does not yet cover the requested window at all, the call answers with charged=false and names the date from which it will.","summary":"Checks up to twenty pairs for unusual trading volume against this hub own minute by minute history, using median and median absolute deviation, and returns the baseline behind every finding.","inputSchema":{"type":"object","required":["symbols"],"additionalProperties":false,"properties":{"symbols":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"items":{"type":"string","pattern":"^[A-Za-z0-9]{2,15}/[A-Za-z0-9]{2,15}$"},"description":"Pairs as BASE/QUOTE. Only pairs the collector of this hub watches can be answered; watched_pairs in the answer lists them."},"venue":{"type":"string","enum":["binance","coinbase","kraken","okx","bybit"],"default":"binance","description":"Exchange whose recorded history is used."},"lookback":{"type":"string","enum":["1h","4h","24h","7d"],"default":"24h","description":"Length of the baseline window."},"sensitivity":{"type":"string","enum":["streng","normal","weit"],"default":"normal","description":"Threshold on the robust z value: streng 5, normal 3.5, weit 2.5."}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"3000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://markt.halowerk.com/regime","method":"POST","name":"volatility_regime","description":"Measures the state of one pair over the chosen horizon from the minute candles this hub records itself: annualized realized volatility from log returns, trend strength as path efficiency between -1 and +1, average true range, and the drawdown from the highest high in the window. regime is a classification with its rule fully disclosed, and reasoning lists the values that carried it as data, not as prose. vol_percentile_90d needs ninety days of own history; until that exists the field stays null and history_days states how far the record actually reaches, with confidence set to niedrig below thirty days. There is no forecast and no price target here: the endpoint describes the state, not the future.","summary":"Realized volatility, trend strength, ATR and drawdown from the high over a chosen horizon, computed on this hub own minute history, with a stated regime and every threshold and formula in the answer.","inputSchema":{"type":"object","required":["symbol"],"additionalProperties":false,"properties":{"symbol":{"type":"string","pattern":"^[A-Za-z0-9]{2,15}/[A-Za-z0-9]{2,15}$","description":"Pair as BASE/QUOTE. Only pairs the collector watches can be answered."},"venue":{"type":"string","enum":["binance","coinbase","kraken","okx","bybit"],"default":"binance","description":"Exchange whose recorded history is used."},"horizon":{"type":"string","enum":["1h","4h","1d","1w"],"default":"1d","description":"Measurement window."}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"3000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://markt.halowerk.com/breadth","method":"POST","name":"market_breadth","description":"Builds the universe from the Binance spot USDT pairs ranked by 24 hour turnover and states that criterion in universe_source, because a breadth number without its universe is meaningless. Stablecoins, wrapped or staked images of the same asset and leveraged tokens are excluded and the exclusion list is part of the answer. Changes over the window come from the exchange candles of every member, not from a single index. pct_above_ma50 and pct_above_ma200 are computed from two hundred daily candles per member; where a listing is younger than the average needs, that member is counted as not assessable rather than as below. dispersion is the standard deviation of member changes, median_change_pct the robust middle. This endpoint says how broad a move is, never in which direction the market will go.","summary":"Market breadth over a named universe of crypto pairs: advancers against decliners, the share trading above their 50 and 200 day averages, volume breadth, median change, dispersion and the leaders and laggards.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"universe":{"oneOf":[{"type":"string","enum":["top50","top100"]},{"type":"array","minItems":2,"maxItems":100,"uniqueItems":true,"items":{"type":"string","pattern":"^[A-Za-z0-9]{2,15}/[A-Za-z0-9]{2,15}$"}}],"default":"top50","description":"top50 or top100 by 24h turnover on Binance spot, or an explicit list of pairs as BASE/QUOTE."},"window":{"type":"string","enum":["1h","24h","7d"],"default":"24h","description":"Measurement window."},"include_moving_averages":{"type":"boolean","default":true,"description":"Whether the 50 and 200 day averages are computed. They cost one request per universe member."}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"4000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://markt.halowerk.com/funding","method":"POST","name":"funding_rate","description":"Reads the public perpetual data of Binance USDⓈ-M Futures, Bybit linear and OKX swaps for one BASE/QUOTE pair. Settlement intervals differ per exchange and per contract, so annualized_pct is only computed after normalising to the interval that exchange actually uses, and the formula is part of the answer. current_rate and predicted_rate are strictly separate: where an exchange publishes no forecast, predicted_rate stays null and the reason is named instead of reusing the current rate. next_settlement_ts comes in UTC milliseconds and as seconds_to_settlement, which is the number an agent waits on. Open interest is passed through as the exchange reports it, with the basis of the conversion named. Exchanges that do not answer drop out with a reason and the call stays valid; oldest_age_ms states the age of the oldest value in the comparison.","summary":"Funding rates of one perpetual across Binance Futures, Bybit and OKX side by side, each with its own settlement interval, the seconds left to the next settlement and the annualized rate after normalising for that interval.","inputSchema":{"type":"object","required":["symbol"],"additionalProperties":false,"properties":{"symbol":{"type":"string","pattern":"^[A-Za-z0-9]{2,15}/[A-Za-z0-9]{2,15}$","description":"Perpetual as BASE/QUOTE, for example BTC/USDT. Most perpetuals are quoted in USDT."},"venues":{"type":"array","minItems":1,"maxItems":3,"uniqueItems":true,"items":{"type":"string","enum":["binance-futures","bybit","okx"]},"description":"Perpetual venues to query. Without it all connected ones are used."}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"2000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://markt.halowerk.com/basis","method":"POST","name":"futures_basis","description":"Reads the dated futures of Deribit for BTC or ETH and compares each expiry with a spot price whose source is always named in the answer, because a basis computed against a different venue than the future is a different number. By default the Deribit index is used, which sits on the same venue as the contract; choosing a spot venue instead is possible and is then flagged, including the case where that venue quotes in USDT while the contract settles in USD. Annualization only happens above one day of remaining term, otherwise the field stays null with the reason given. Perpetuals have no expiry: for them the premium against spot is reported in basis points instead of an annualized basis. curve classifies the term structure as contango, backwardation or mixed and the rule behind it is part of the answer.","summary":"Futures basis per expiry against a named spot source: absolute and percentage basis, days to expiry, annualized basis where the remaining term allows it, plus the shape of the curve and the perpetual premium.","inputSchema":{"type":"object","required":["symbol"],"additionalProperties":false,"properties":{"symbol":{"type":"string","pattern":"^(BTC|ETH|btc|eth)/(USD|usd)$","description":"Underlying as BASE/USD, so BTC/USD or ETH/USD. Deribit settles its dated futures in USD."},"venue":{"type":"string","enum":["deribit"],"default":"deribit","description":"Futures venue. Only Deribit is connected here."},"expiries":{"type":"string","default":"alle","description":"alle for every open expiry, naechste for the nearest one, or an exact date as YYYY-MM-DD."},"spot_source":{"type":"string","enum":["deribit_index","binance","coinbase","kraken","okx","bybit"],"default":"deribit_index","description":"Where the spot price comes from. deribit_index sits on the same venue as the contract; anything else is flagged as a cross venue basis."}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"4000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://markt.halowerk.com/open-interest","method":"POST","name":"open_interest_change","description":"Compares the open interest recorded now with the value this hub recorded itself at the start of the window, so both numbers come from the same source and the same basis. Notional value is always taken with the price of its own point in time, never recomputed with the current price. price_change_pct and volume_change_pct cover exactly the same window from the recorded minute candles. interpretation follows a rule printed in the answer, so a buyer can recompute it: price and open interest rising together is a build up, price rising while open interest falls is an unwind, and a move below the noise threshold stays unklar instead of being forced into a label. Without a recorded comparison point the call answers with charged=false and names the date from which the window will be covered.","summary":"Change in open interest over one, four or twenty four hours against this hub own recorded history, together with the price and volume change over the same window and a stated interpretation with its rule.","inputSchema":{"type":"object","required":["symbol"],"additionalProperties":false,"properties":{"symbol":{"type":"string","pattern":"^[A-Za-z0-9]{2,15}/[A-Za-z0-9]{2,15}$","description":"Perpetual as BASE/QUOTE, for example BTC/USDT."},"venues":{"type":"array","minItems":1,"maxItems":1,"uniqueItems":true,"items":{"type":"string","enum":["binance-futures"]},"description":"Venues whose open interest this hub records. Only Binance USDⓈ-M Futures is recorded so far."},"window":{"type":"string","enum":["1h","4h","24h"],"default":"1h","description":"Comparison window."}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"3000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://markt.halowerk.com/liquidations","method":"POST","name":"liquidation_monitor","description":"Reads the liquidation orders OKX publishes for its perpetual swaps, converts every entry into US dollars with the contract size of that instrument and the bankruptcy price of that event, and sums them by the side of the liquidated position. timeline gives the per minute split of long and short. cascade_detected requires two conditions at once: liquidation volume above five times the median of all five minute buckets in the comparison span, and a price move of at least 0.3 percent in the same bucket. Both conditions, both thresholds and both measured values are in the answer, so the finding can be recomputed. Coverage is stated per venue and is deliberately incomplete: Binance and Bybit publish liquidations only over a live stream, so they are named as not covered instead of being estimated. Liquidation zones derived from leverage assumptions are speculation and are not part of this endpoint.","summary":"Forced liquidations of one perpetual over five minutes, one hour or a day, split into long and short, with the largest single event, a per minute timeline and a cascade check whose two conditions and measured values are stated.","inputSchema":{"type":"object","required":["symbol"],"additionalProperties":false,"properties":{"symbol":{"type":"string","pattern":"^[A-Za-z0-9]{2,15}/[A-Za-z0-9]{2,15}$","description":"Perpetual as BASE/QUOTE, for example BTC/USDT."},"venues":{"type":"array","minItems":1,"maxItems":1,"uniqueItems":true,"items":{"type":"string","enum":["okx"]},"description":"Venues with a public liquidation interface. Only OKX publishes one."},"window":{"type":"string","enum":["5m","1h","24h"],"default":"1h","description":"Window to sum over."}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"4000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://markt.halowerk.com/options","method":"POST","name":"options_snapshot","description":"Reads the public option book summaries of Deribit and aggregates them per expiry. iv_atm is the mark implied volatility of the strike closest to the forward, averaged over call and put, and the strike used is named. term_structure lists iv_atm against days to expiry. put_call_ratio is reported twice and never mixed: once by 24h volume and once by open interest. open_interest_by_strike and key_strikes show where positions actually sit, above and below the forward. max_pain comes with the complete calculation and the payout curve so a buyer can recompute it. Greeks are only ever taken from the exchange: skew_25d is derived from the deltas Deribit itself publishes, uses the traded strikes nearest to delta 0.25 without interpolation, names both contracts, and is only computed for a single expiry because it costs one request per contract. unusual_volume needs twenty days of per strike history which this hub does not yet hold, so it stays null with that reason rather than being invented.","summary":"Deribit options snapshot for BTC or ETH: at the money implied volatility per expiry, the term structure, put call ratios split by volume and by open interest, open interest per strike, key strikes and max pain with its full calculation.","inputSchema":{"type":"object","required":["underlying"],"additionalProperties":false,"properties":{"underlying":{"type":"string","enum":["BTC","ETH","btc","eth"],"description":"Underlying. Deribit lists crypto options for BTC and ETH."},"expiry":{"type":"string","default":"naechste","description":"naechste for the nearest expiry, an exact date as YYYY-MM-DD, or alle for every open expiry."},"moneyness_range":{"type":"number","minimum":0.1,"maximum":1,"default":0.3,"description":"How far strikes may sit from the forward to be listed, as a fraction. 0.3 means plus or minus 30 percent."}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"8000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://markt.halowerk.com/peg","method":"POST","name":"stablecoin_peg","description":"Quotes each stablecoin against real US dollars on Kraken and Coinbase and, separately, against USDT on Binance, OKX and Bybit. Only the dollar quotes enter median_price and deviation_bps, because a USDT quote measures two stablecoins against each other and not the dollar; those are reported apart and labelled. Deviation is always in basis points against 1.00, never in percent. agreement is the point of the whole endpoint: a deviation at a single venue is a venue problem, a deviation everywhere is a peg problem, and divergence_type says which of the two the numbers support. depth_at_peg states how much turnover sits inside the peg band on the book, because a peg that only holds for small size is not a peg. status thresholds are part of the answer. No DEX price is included: this hub has no on-chain access, so dex_price and divergence_cex_dex_bps stay null with the reason named rather than being filled from a third party feed.","summary":"Peg check for stablecoins across exchanges: price per venue, median, deviation from one dollar in basis points, how far the sources agree, the depth sitting at the peg and a stated status with its thresholds.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"stablecoins":{"type":"array","minItems":1,"maxItems":6,"uniqueItems":true,"items":{"type":"string","pattern":"^[A-Za-z0-9]{2,10}$"},"default":["USDC","USDT","DAI"],"description":"Stablecoin tickers, for example USDC, USDT, DAI, PYUSD, USDG, RLUSD."},"venues":{"type":"array","minItems":1,"maxItems":5,"uniqueItems":true,"items":{"type":"string","enum":["binance","coinbase","kraken","okx","bybit"]},"description":"Exchanges to use. Without it all connected ones are used."},"peg_band_bps":{"type":"number","minimum":1,"maximum":500,"default":50,"description":"Half width of the peg band in basis points, used for depth_at_peg."}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"3000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]}]}