tech.ensotrade/ensotrade
repo:https://github.com/smithshsh/enso-fundamentals
Live crypto data: why a coin or the market is moving (funding, OI, positioning, flow).
- transport:
- remote
- credential class:
- self-provisionable
Owner verification
Not yet verified. Verifying proves you control this server and is free, permanently — it never changes a published score.
Start verification →Tools
- carry_pressureshallow
Toxic Carry Score (cost-of-leverage from funding, positive = bullish) + Open Interest Quality Index (is the price trend agreeing with new positioning, i.e. healthy, or against it, i.e. forced flow / reversal risk). Requires an EnsoTrade Pro API key. `coin` = ticker e.g. 'btc'. See the `market_glossary` resource for how to read these numbers.
- currency_legshallow
The cost of the currency you were never quoted in. Use for "what does it really cost me to trade $5M of SOL", "which venue is cheapest for a USD fund", "how much am I paying to hold USDT", "should I use a USDC venue instead". THE POINT: every execution cost in this API, and in every competing tool, is denominated in the VENUE'S OWN quote currency. Most perp venues quote USDT. A fund's money is USD. So the quoted cost is for a trade the fund cannot place until it has bought USDT, and the price of that conversion appears in nobody's TCA. This walks the live USD/USDT and USD/USDC books at the caller's size, reports the cheapest round trip and the capacity ceiling, and re-ranks venues on cost INCLUDING the leg. IT DOES NOT TELL YOU WHICH VENUE TO TRADE ON, and you must not present it as if it does. That output existed, was measured across 20 coins x 5 sizes, flipped 0 of 95 times, and was deleted — `leg_does_not_change_venue` in the response carries the numbers. What it tells you is what the trade ACTUALLY costs: quote `leg_as_pct_of_execution_cost`, which is the leg measured against the trade's own execution cost on the venue the desk would really use. THE LEG IS A COST ON CAPITAL MOVED, NOT ON TURNOVER. `turns` is how many times the desk turns the balance over before repatriating to USD. At turns=1 the full round trip is charged; at turns=50 the leg is rounding error and the response will show that. Do not quote the turns=1 figure as a per-trade cost for a desk that trades continuously. `coin` = ticker e.g. 'sol'. `notional_usd` = order size in USD. `side` = 'buy' or 'sell'. Requires an EnsoTrade Pro API key.
- execution_windowshallow
When during the day crypto is cheapest to execute into, as a session-level profile pooled across the coin universe. Use for "what time of day should I trade", "when is crypto most liquid", "best time to execute a large crypto order". Returns four UTC session blocks with a relative execution-cost number each (lower = cheaper), measured as Amihud illiquidity (|hourly return| / hourly quote volume) over ~62 days of hourly candles. IMPORTANT when quoting this: the effect is WEAK BUT STABLE — roughly 1.3-1.45x between the cheapest and dearest session, and the response ships a split-half check so you can see that both halves of the sample agree on the ordering. There is deliberately NO per-coin "best hour" because that version FAILED split-sample validation; do not invent one from this data. Free on any EnsoTrade API key.
- exit_capacityshallow
How fast a crypto position can be exited and what it costs. Use for "how long to get out of $5M of SOL", "can I exit this position", "what's my liquidity risk". Returns: immediate exit cost by walking the live book; direction skew (up-cost vs down-cost, since a lopsided book matters); time to exit at 5%/10%/20% participation; max exitable in 24h; and how concentrated the depth is on one venue. IMPORTANT when quoting the capacity numbers: they are computed on REPORTED venue volume, which is an UPPER BOUND on genuinely tradable capacity — say so, and treat the time-to-exit figures as optimistic. An "effective volume" adjustment was built and deliberately NOT shipped: comparing how much volume each venue needs to move price one bp collapses into a pure size proxy, because arbitrage equalises price travel across venues. The response carries a live degeneracy_check showing this for the requested asset. Do not present the capacity figures as adjusted or verified volume. `coin` = ticker e.g. 'sol'. `position_usd` = position size in USD. Requires an EnsoTrade Pro API key.
- explain_moveshallow
Explain WHY a crypto coin is up or down right now, from live order-flow and positioning. Use this for "why is bitcoin down", "why is BTC/ETH/SOL pumping or dumping", or any question about the CAUSE of a crypto move. Returns a ready-to-quote sentence plus structured signals (price, regime, funding, open interest, basis). `coin` = ticker like 'btc', 'eth', 'sol'. Pass an EnsoTrade Pro API key as a Bearer token for real-time data (public calls are 15-minute delayed) — generate one at ensotrade.tech under Account -> Developer Access.
- fetch_seriesshallow
Raw time series for one field on one symbol, oldest-first, capped at 1000/1500 points. Use this to explore what a field actually looks like before wiring it into test_formula. Requires an EnsoTrade Pro API key. `symbol` e.g. 'SOL' or 'SOLUSDT'. `timeframe="scalp"` (default): WDE order-flow microstructure, second-scale. `field` is one of mid, spread_bp, signal, toxicity, cost_bp, ret_1s_bp, ret_5s_bp, ret_30s_bp, ret_60s_bp (top-level), or ofi1, ofi5, dofi, qi, mp, obi, tf1, tf5, tf30, run, inten, vpin, wall, bid_pr, ask_pr, sigma1m (order-flow features). `hours` max 168. Coverage is uneven and only covers whatever windows the WDE panel was actively open for a symbol — SOL and BNB have the most logged history, other symbols may return no rows for a recent window; widen `hours` or try a different symbol if so. `timeframe` = "15m", "1h", "4h", or "1d" for day/swing work: real OKX perp candles instead of order-flow logs (always available, not dependent on the WDE panel being open). `field` is one of open, high, low, close, volume, ret_pct (bar-over-bar % return), range_pct (bar high-low as % of close), body_pct (close-open as % of open), rsi14, vol_ratio (volume vs its 20-bar average). `hours` max ~1500 bars worth (e.g. up to ~62 days for "1h").
- get_fundingshallow
Current perpetual funding rate and crowding read for a crypto coin (are longs or shorts paying / crowded). Use for "what's the funding rate on <coin>", "is funding positive". `coin` = ticker e.g. 'btc'. Bearer-auth with a Pro API key for real-time data.
- get_order_flowshallow
Positioning regime + open interest + recent taker imbalance for a crypto coin — whether a move is new longs, short covering, fresh shorts, or deleveraging. Use for "crypto order flow", "open interest change", "is this a short squeeze". `coin` = ticker e.g. 'btc'. Bearer-auth with a Pro API key for real-time data.
- leg_ratesshallow
What it costs, right now, to move USD into and back out of the stablecoins the crypto venues quote in — and how much can be moved before the book runs out. Use for "what does USDT conversion cost", "is USDC or USDT cheaper to hold", "how much can I convert at once", "what is the USDT basis". No coin involved: this is the currency leg on its own. Returns per-market cost in and out, the cheapest venue for each direction, aggregate capacity, and how far each stablecoin is trading from 1.0000. `where_to_convert` IS THE ACTIONABLE PART: the cheapest and dearest conversion venue and the bp/USD penalty between them. Measured at 13.5x-17x on USDT and 27.7x on USDC, and the winner ROTATES with size because these books are shallow enough that the usual winner runs out — Kraken wins to $2.5M and loses to Bitfinex at $5M. CAPACITY IS THE PART THAT SURPRISES PEOPLE. The USD/stablecoin books are thin relative to the coin books they feed, so a size that walks a coin book comfortably can exhaust the currency book outright. `size_exceeds_capacity` is a hard wall, not a cost. par_offset_bp is NOT charged as a cost — a desk that buys and later sells the same stablecoin is flat to it. Do not add it to the round-trip figure. `notional_usd` = the size to price. Requires an EnsoTrade Pro API key.
- market_rotationshallow
Cross-sectional momentum ranking across the whole crypto perp universe right now — which coins are leading (top percentile) vs lagging (bottom percentile). Use this FIRST when asked to "find a coin" or "what should I look at" before drilling into one with the other tools. Requires an EnsoTrade Pro API key.
- market_snapshotshallow
One combined live snapshot for a crypto coin: price, 24h change, funding, open interest, perp basis, positioning regime. `coin` = ticker e.g. 'btc'. Bearer-auth with a Pro API key for real-time data plus the validated funding-momentum directional signal (public calls get a 15-minute-delayed price and no directional call).
- mass_mapshallow
Bounded MASS scan. Select exchanges with comma-separated venues. Rows stay separate. Pro key required.
- mass_scanshallow
MASS on one selected exchange or comma-separated exchanges. One result per exchange; no blend. Pro key required.
- options_chainshallow
Full crypto options chain for a coin: strikes, mark IV, greeks, and the Black-Scholes fair-value gap per contract. Requires an EnsoTrade Pro API key. `coin` = underlying ticker e.g. 'btc'.
- perp_dashboardshallow
Full perp dashboard for a crypto coin: mark price, index price, funding rate + next funding time, open interest, 24h high/low/volume. Requires an EnsoTrade Pro API key (Bearer auth) — generate one at ensotrade.tech, Account -> Developer Access. `coin` = ticker e.g. 'btc'.
- position_limitsshallow
Position-limit table for a universe of crypto perps: the largest position in each coin that could be exited inside 24 hours at a chosen participation rate, sorted TIGHTEST-FIRST. Use for "what position limit should I set on X", "which of my positions is too big to get out of", "how much SOL can I safely hold", "rank my coins by exit risk". `coins` = optional comma-separated list (default: the liquid crypto perp universe by volume). `participation` = the fraction of daily volume you are willing to be, default 0.10 (10%). `limit` = how many coins to return, max 40. IMPORTANT when quoting these: they are computed on REPORTED venue volume, which is an UPPER BOUND on genuinely tradable capacity — say so, and treat the limits as optimistic. No effective-volume adjustment is applied; that was built, measured and cut because arbitrage equalises price travel across venues, collapsing volume-per-bp into a size proxy. Requires an EnsoTrade Pro API key.
- post_mapshallow
Universe-wide maker/taker table: for each liquid crypto perp, the best venue to post on and the round-trip prize, sorted widest-first. Use for "where is being passive worth the most", "which coins should I be quoting rather than taking", "rank my book by spread capture". Same honesty requirement as post_value and it is not optional: these are prizes CONDITIONAL ON BEING FILLED. No fill probability is estimated anywhere in the response. Say so. `coins` = optional comma-separated list (default: the liquid crypto perp universe by volume). `notional_usd` = optional; supplying it prices crossing as the real book walk and adds the best-venue-to-cross comparison per coin. `limit` = how many coins, max 40. Requires an EnsoTrade Pro API key.
- post_valueshallow
What POSTING a resting order is worth versus CROSSING the spread, per venue, for a crypto perp. Use for "should I use a limit order or market order", "what does paying the spread cost me", "which venue should I quote on", "is it worth being passive here", "maker vs taker". Returns per venue: the current spread in bp, taker and maker fee, the value of posting per side, and the round trip (2x, because a position is opened and closed). Ranked by posting value. Pass `notional_usd` to price the crossing side as the real walk down the book instead of half the spread — a larger and more honest number at size. MEASURED across 54 coin-venue pairs: median 4.09bp per side / 8.17bp round trip, mean 4.63bp, p90 6.72bp. Wide-spread names go much further (ARB 20.31bp round trip, OP 19.33bp, DOT 19.70bp). Note SOL at a 0.13bp spread is still worth 4.07bp per side — on a tight book the whole of the value is the maker/taker FEE DIFFERENTIAL, which does not shrink as spreads tighten. That is a floor, and it is why this holds up on liquid majors where cheapest_venue has almost nothing to choose between. YOU MUST STATE THIS WHEN QUOTING ANY NUMBER FROM THIS TOOL: it is the SIZE OF THE PRIZE, NOT THE PROBABILITY OF WINNING IT. A resting order that never fills does not save the spread, it costs the trade, and that is routinely worth more than the basis points here. EnsoTrade does NOT estimate fill probability — that needs order-book time series this service does not log — and does not approximate it. Never present posting as free money. Also read `cross_vs_post`: the best venue to POST on is frequently NOT the best venue to CROSS on, because maker fees and spreads rank venues differently from depth. Where they differ, the answer is to rest on one and take on the other. `coin` = ticker e.g. 'sol'. Requires an EnsoTrade Pro API key.
- route_ordershallow
Cheapest way to fill a crypto perp order across multiple venues, and what that saves versus using the single best venue. Merges every order-book level from Binance, Bybit, Bitget, Hyperliquid, OKX and Gate into one list ordered by FEE-ADJUSTED price and walks it until filled. Use for "how should I split this order", "what's the cheapest venue to buy $2M of SOL", "how much would routing save me". Returns the per-venue allocation, the blended price, the best single venue, and the saving in bp and USD. `coin` = ticker e.g. 'sol'. `notional_usd` = order size in USD. `side` = 'buy' or 'sell'. `venues` = optional comma-separated subset (e.g. "binance,bybit") for a desk that only has accounts on some — the saving is only real on venues you can actually trade. This is a MEASUREMENT of a live book, not a prediction: it is optimal for the static snapshot, prices move while an order works, and it assumes capital is already on each venue and ignores transfer costs. Requires an EnsoTrade Pro API key.
- save_strategyshallow
Save a formula as a strategy IF it currently validates. Re-runs test_formula itself server-side first — never trusts a stale claim from an earlier call, since data moves — and only saves when that fresh verdict is 'validated'. Saved strategies appear in the user's own EnsoTrade dashboard under Strategies; they're private to that account, not published or shared with anyone else. Same parameters as test_formula: `symbol`/`formula` as usual, `timeframe`="scalp" (use `horizon`) or "15m"/"1h"/"4h"/"1d" (use `horizon_bars`), `hours` = history window tested. `label` is an optional short name for the strategy (e.g. "BTC 1h RSI reversion"). Requires an EnsoTrade Pro API key.
- test_formulashallow
Invent a formula over EnsoTrade's data, and get back whether it actually predicts forward returns — validated on a holdout split, not just fit to the whole window. `formula` is a math expression combining any of the fields listed in fetch_series' docstring (for the same `timeframe`) with +, -, *, /, **, %, unary +/-, and abs/min/max/ sqrt/log/log1p/exp/sign/clip/mean/std, e.g. "ofi1 * vpin - dofi / 2" or "sign(qi) * sqrt(abs(obi))". No other Python is executed — this runs through a restricted, default-deny expression evaluator, not eval(). `timeframe="scalp"` (default, WDE order-flow, second-scale): `horizon` is which forward return to correlate against — ret_1s_bp, ret_5s_bp, ret_30s_bp, or ret_60s_bp. `hours` max 720 (30 days). `timeframe` = "15m"/"1h"/"4h"/"1d" for day/swing strategies (real OKX candles, always available): use `horizon_bars` instead of `horizon` — the forward % return N candles ahead (e.g. horizon_bars=4 on timeframe="1h" = predicting the move 4 hours out). `hours` max ~1500 bars worth; a small `hours` still fetches at least 150 bars (the minimum needed for a meaningful 70/30 split) rather than failing outright, so the actual window tested can be wider than requested for a small `hours` value. Either mode needs enough rows that a 70/30 split leaves >=150 total. Returns train (first 70% chronologically) and holdout (untouched final 30%) Spearman/Pearson correlations plus a verdict: 'validated' only if holdout |spearman| >= 0.15 AND same-signed as train — this guards against keeping a formula that only looked good by chance on one slice of data. ALSO returns, computed on the holdout portion only: - `net`: risk-adjusted performance AFTER trading costs — sharpe, sortino, max_drawdown_pct, calmar, ann_return_pct, ann_volatility_pct, win_rate_pct, profit_factor. Sharpe is annualized and corrected for overlapping horizons (a horizon spanning N bars sampled every bar is subsampled to non-overlapping periods first, which removes the ~sqrt(N) inflation naive Sharpe would show). - `gross`: the same metrics before costs, so the cost drag is visible. - `costs`: fee/slippage assumptions, position_changes (turnover), total_cost_pct. Costs are charged on position CHANGES only, not per bar — holding one side is cheap, flipping every bar is not. - `cost_verdict`: survives_costs / marginal_after_costs / killed_by_costs / unknown. IMPORTANT: `verdict` is a correlation test and says nothing about profitability; a formula can be 'validated' and still be killed_by_costs. Check both. - `walk_forward`: the same formula re-scored on 5 consecutive time blocks, with consistency_pct (share of blocks agreeing on direction) and a `stable` flag. An edge that passes one holdout but flips sign between blocks is usually noise. `fee_bp`/`slippage_bp` are per side, defaulting to 5bp taker + 2bp slippage; raise them for illiquid coins or a worse fee tier. Iterate: call this repeatedly with different formulas, keep what validates AND survives costs, discard what doesn't. Requires an EnsoTrade Pro API key.
- top_moversshallow
Top gaining and losing crypto perpetuals right now, ranked across the whole market. Use for "top crypto movers", "biggest crypto gainers and losers today".
Embed this server’s score
Tool count and median score across every tool in this server’s corpus — honest in a way a single cherry-picked tool’s badge wouldn’t be.
[](https://vouch.tools/servers/5317d6dc-88c5-4a2e-af0e-d3f6ff8093df)