Positioning
Who is on the other side of your trade. Up to eight reads on one coin — who is crowded, who is fragile, who is trapped — plus the price levels the whole board is watching.
What it does
Deterministic positioning read for one coin — the game-state companion to research_regime, answering 'who is crowded, who is paying, who is trapped, and where'. Up to nine axes, each tagged with the market-actor cohort it reads: crowding (annualized funding vs the venue-standard 0.01%/8h anchor, long/short skew, dollars/day the majority pays to hold, crowd-vs-top-trader divergence, and cross-venue funding dispersion), buildup (24h price vs open-interest direction and the funding trend — whether positions are being added into the move or closed out), liquidity (order-book spread and imbalance — makers backing off), basis (perp vs oracle premium — spot-perp froth or hedging pressure, informational), fragility (24h liquidations as a share of market-wide open interest; the axis degrades rather than substituting a single venue's OI, since the liquidation total is cross-exchange), predation (visible on-chain whale positions within 2 daily sigmas of their liquidation price, with defending book depth), trap (share of tracked whale notional underwater on the funding-paying side — attrition fuel), house book (the on-chain exchange's LP-vault inventory, summed across its child sub-vaults — the literal venue counterparty, so the inventory it carries mirrors how traders are crowded; measured as net over its own gross book, since a market maker's net is a rounding error against venue open interest; informational), and disagreement (the most liquid matching prediction market, volume-gated, informational). Each axis reports its state, the numbers, and a +1/0/-1 fragility vote (+1 clean, -1 crowded/fragile); the stance is the disclosed sum-of-votes rule. Also returns a one-line 'farmed' synthesis (which cohort the board is currently farming, or an explicit statement that none is), focal points — reachable liquidation and breakeven price levels the whole market can see — and 'would change the call' thresholds a polling agent can watch statelessly. Reports the board, not a direction: crowding says who is paying, not where price goes. Deterministic — same inputs, same read. Call research_regime first for market context, then this per coin before sizing or timing decisions.
Parameters
| Name | Type | Description |
|---|---|---|
symbolrequiredpath | string | Coin symbol, e.g. "BTC" or "ETH". |
Call it
One API key works for MCP, REST and WebSocket; each call uses one unit. Agents without an account can pay per call with x402.
curl "https://mcp.f1ow.com/v1/research/positioning/BTC" \
-H "Authorization: Bearer $F1OW_API_KEY"{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "research_positioning",
"arguments": {
"symbol": "BTC"
}
}
}const res = await fetch("https://mcp.f1ow.com/v1/research/positioning/BTC", {
headers: { Authorization: `Bearer ${process.env.F1OW_API_KEY}` },
});
const data = await res.json(); // the tool's result as JSON, typed in the OpenAPI spec
console.log(data);import os, requests
res = requests.get(
"https://mcp.f1ow.com/v1/research/positioning/BTC",
headers={"Authorization": f"Bearer {os.environ['F1OW_API_KEY']}"},
)
data = res.json() # the tool's result as JSON, typed in the OpenAPI spec
print(data)// wss://mcp.f1ow.com/v1/ws — subprotocol "jsonrpc-2.0", Authorization: Bearer <key>
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "research_positioning",
"arguments": {
"symbol": "BTC"
}
}
}
// Or push a fresh result whenever it changes (minimum interval 15 s)
{
"jsonrpc": "2.0",
"id": 2,
"method": "subscriptions/subscribe",
"params": {
"name": "research_positioning",
"arguments": {
"symbol": "BTC"
},
"intervalSeconds": 60
}
}# No account: the first call answers 402 with a PAYMENT-REQUIRED challenge;
# an x402 client pays it in USDC on Base and retries.
curl "https://mcp.f1ow.com/x402/v1/research/positioning/BTC"Sample response
A real response captured 2026-11-13. Interactive is the tool's MCP App rendering it, as Claude, ChatGPT and other MCP Apps hosts show it; here it is read-only. JSON is what REST and WebSocket return, and the structuredContent of an MCP call (trimmed for length), with generatedAt for freshness. Text is the report an MCP client hands to a model.
=== BTC Positioning — 2026-11-13 08:05 UTC ===
Stance: LEAN CLEAN (vote score +1 across 9 axes)
Rule: stance = sum of axis votes (+1 clean / 0 neutral / -1 crowded-fragile): >= +3 CLEAN BOARD, +1..+2 LEAN CLEAN, 0 MIXED, -1..-2 CROWDED, <= -3 FRAGILE
Farmed: no cohort clearly farmed — funding near the anchor, no systemic trap, no exposed majors (longs pay the carry, bleeding ~$2.4M/day carry)
Crowding STRETCHED SHORT (bottom of its own window) funding +0.0002%/h (ann +1.8% vs anchor +10.9%) | crowd L/S 3.32 vs top traders 2.14 — crowd 1.55x more long-skewed | longs paying ~$2.4M/day market-wide | venue funding +3.3pp vs merged | series at +1.8% ann sits 5th pct of its own 30-point window (+0.1% to +12.2%) | CoinGlass 2026-11-13 08:00 UTC bucket [funding arbs, retail crowd]
Buildup LONG LIQUIDATION price -6.8% / OI -6.3% over 24h ($50.93B -> $47.73B) | funding +8.5% -> +1.8% ann (falling) | 3th pct of 53 rolling 24h moves (-6.5% to +3.6%) — a move for this tape, under the absolute band — positions closing | CoinGlass 2026-11-13 08:00 UTC bucket [new entrants, closing leverage]
Liquidity TIGHT spread 0.1 bps | depth $3.9M bid / $12.0M ask | ask-heavy book (-51% imbalance) [market makers / HFT]
Basis FLAT perp -4.1 bps vs oracle (mark $68654 / oracle $68686) | venue funding +0.0006%/h [cross-venue / spot-perp arbs]
Fragility DELEVERAGING 24h liq $918.6M = 1.92% of $47.73B market-wide OI [liquidation hunters]
Predation NO EXPOSED MAJORS 5 visible positions >=$1.0M ($265.7M = 10.4% of venue OI) | exposed within 2 sigma: 0 ($0) | 30d daily sigma 2.0% [directional whales, hunters]
Trap CLEAN $4.0M of $265.7M tracked (2%) underwater on the paying side (longs pay) = 0.2% of $2.56B venue OI | single-name (largest $4.0M = 100% of trapped) [trapped whales]
House book BOOK TOO SMALL TO READ HLP holds only $6k gross in BTC against $49.3M vault equity (readable at $246k) — the vault is flat here, not positioned, so its 11% net-to-gross is residue rather than a direction (informational) [DEX LP vault (HLP)]
Disagreement ODDS Will Bitcoin dip to $45,000 by December 31, 2026? -> 'No' 95% ($9511k volume, resolves 2027-01-01T05:00:00Z) — check against funding's implied lean [informed flow (proxy)]
Focal points (known price levels, nearest first):
- $68831.3 (long breakeven): visible $4.0M long underwater (-$10k uPnL) entered here — breakeven exit level
Would change the call:
- annualized funding >= +30.9% -> crowded long; <= -9.1% -> crowded short (now +1.8%)
- funding at/above the 85th pct of its own window -> stretched long; at/below the 15th -> stretched short (now 5th)
- crowd and top traders are 1.55x apart — the clean vote is withheld until they converge inside 1.5x
- 24h OI change >= +5.0% -> positions building; <= -5.0% -> unwinding (now -6.3%)
- or a 24h move at/above the 85th pct of this window's own moves (now 3th)
- spread >= 5.0 bps -> makers backing off (now 0.1 bps)
- 24h liquidations >= 1.0% of market-wide OI -> deleveraging (now 1.92%)
- a visible >=$1.0M position moving within 2 daily sigmas of its liquidation flips Predation
- >=50% of tracked AND >=5% of venue OI underwater on the paying side -> trapped majority (now 2% of tracked, 0.2% of venue OI)
- HLP's book in BTC reaching $246k gross (0.5% of its $49.3M equity) makes the axis readable (now $6k)
Inputs: 9/9 axes computed
Options (Deribit; option-holder cohort, informational, no vote):
OI $22.73B, put/call OI 0.79 → BALANCED | 25Δ RR 30d -4.1 (PUTS OVER CALLS) | next expiry 14 Nov 2026 $160.9M (1% of OI), max pain $73500.00 (theoretical)
modeled gamma (dealers long calls / short puts, not observed): NEGATIVE MODELED GAMMA, signed -$176.4M of gross $329.8M per 1% | nearest flip $76832.51 (+12.0%) | nearest large gamma strike $70000.00 (+2.0%){
"axes": [
{
"actors": "funding arbs, retail crowd",
"detail": "funding +0.0002%/h (ann +1.8% vs anchor +10.9%) | crowd L/S 3.32 vs top traders 2.14 — crowd 1.55x more long-skewed | longs paying ~$2.4M/day market-wide | venue funding +3.3pp vs merged | series at +1.8% ann sits 5th pct of its own 30-point window (+0.1% to +12.2%) | CoinGlass 2026-11-13 08:00 UTC bucket",
"metrics": {
"fundingRatePctPerHour": 0.0002105,
"annualizedFundingPct": 1.84398,
"fundingRateIsOiWeighted": 1,
"anchorAnnualPct": 10.95,
"fundingDragUsdPerDay": 2411081.02544037,
"longShortRatio": 3.32,
"crowdVsTopDivergence": 1.18,
"crowdLongShortRatio": 3.32,
"topTraderLongShortRatio": 2.14,
"crowdVsTopSkewRatio": 1.55140186915888,
"fundingVenueDispersionPct": 3.316098,
"fundingWindowPercentile": 5,
"fundingWindowLowPct": 0.09855,
"fundingWindowHighPct": 12.20706,
"fundingWindowSpreadPct": 12.10851,
"fundingWindowRankedPct": 1.84398
},
"name": "Crowding",
"state": "STRETCHED SHORT (bottom of its own window)",
"vote": -1
},
{
"actors": "new entrants, closing leverage",
"detail": "price -6.8% / OI -6.3% over 24h ($50.93B -> $47.73B) | funding +8.5% -> +1.8% ann (falling) | 3th pct of 53 rolling 24h moves (-6.5% to +3.6%) — a move for this tape, under the absolute band — positions closing | CoinGlass 2026-11-13 08:00 UTC bucket",
"metrics": {
"priceChangePct24h": -6.79676,
"oiChangePct24h": -6.28777326501869,
"oiPriorUsd": 50927482234,
"oiNowUsd": 47725277621.5434,
"annualizedFundingPriorPct": 8.482965,
"annualizedFundingPct": 1.84398,
"oiChangeWindowPercentile": 2.83018867924528,
"oiChangeWindowLowPct": -6.48941665693922,
"oiChangeWindowHighPct": 3.59523545652303,
"oiBuildThresholdPct": 5
},
"name": "Buildup",
"state": "LONG LIQUIDATION",
"vote": 0
},
{
"actors": "market makers / HFT",
"detail": "spread 0.1 bps | depth $3.9M bid / $12.0M ask | ask-heavy book (-51% imbalance)",
"metrics": {
"spreadBps": 0.145644147654037,
"imbalancePct": -50.9388172371789,
"bidDepthUsd": 3892521.77123,
"askDepthUsd": 11975508.92851
},
"name": "Liquidity",
"state": "TIGHT",
"vote": 1
},
{
"actors": "cross-venue / spot-perp arbs",
"detail": "perp -4.1 bps vs oracle (mark $68654 / oracle $68686) | venue funding +0.0006%/h",
"metrics": {
"premiumBps": -4.076522,
"markPriceUsd": 68654,
"oraclePriceUsd": 68686
},
"name": "Basis",
"state": "FLAT",
"vote": 0
},
{
"actors": "liquidation hunters",
"detail": "24h liq $918.6M = 1.92% of $47.73B market-wide OI",
"metrics": {
"liqIntensityPct": 1.92481223638172,
"liquidation24hUsd": 918621983.506613,
"marketWideOpenInterestUsd": 47725277621.5434
},
"name": "Fragility",
"state": "DELEVERAGING",
"vote": -1
},
{
"actors": "directional whales, hunters",
"detail": "5 visible positions >=$1.0M ($265.7M = 10.4% of venue OI) | exposed within 2 sigma: 0 ($0) | 30d daily sigma 2.0%",
"metrics": {
"visiblePositions": 5,
"visibleNotionalUsd": 265705194.2608,
"visibleShareOfVenueOi": 0.103786653312487,
"venueOpenInterestUsd": 2560109472.4656,
"exposedCount": 0,
"exposedNotionalUsd": 0,
"dailySigmaPct": 1.97356463971501,
"nearestLiqDistanceSigmas": 23.2465772650821,
"bidDepthUsd": 3892521.77123,
"askDepthUsd": 11975508.92851
},
"name": "Predation",
"state": "NO EXPOSED MAJORS",
"vote": 1
},
"… 3 more"
],
"axesComputed": 9,
"axesTotal": 9,
"farmed": "no cohort clearly farmed — funding near the anchor, no systemic trap, no exposed majors (longs pay the carry, bleeding ~$2.4M/day carry)",
"focalPoints": [
{
"priceUsd": 68831.3,
"reason": "visible $4.0M long underwater (-$10k uPnL) entered here — breakeven exit level",
"side": "long breakeven"
}
],
"skippedAxes": [],
"stance": "LEAN CLEAN (vote score +1 across 9 axes)",
"stanceRule": "stance = sum of axis votes (+1 clean / 0 neutral / -1 crowded-fragile): >= +3 CLEAN BOARD, +1..+2 LEAN CLEAN, 0 MIXED, -1..-2 CROWDED, <= -3 FRAGILE",
"symbol": "BTC",
"thresholds": [
{
"comparator": ">=",
"current": 1.84398,
"flipsTo": "CROWDED LONG",
"metric": "annualizedFundingPct",
"value": 30.95
},
{
"comparator": "<=",
"current": 1.84398,
"flipsTo": "CROWDED SHORT",
"metric": "annualizedFundingPct",
"value": -9.05
},
{
"comparator": ">=",
"current": 5,
"flipsTo": "STRETCHED LONG",
"metric": "fundingWindowPercentile",
"value": 85
},
{
"comparator": "<=",
"current": 5,
"flipsTo": "STRETCHED SHORT",
"metric": "fundingWindowPercentile",
"value": 15
},
{
"comparator": ">=",
"current": 1.55140186915888,
"flipsTo": "COHORTS SPLIT",
"metric": "crowdVsTopSkewRatio",
"value": 1.5
},
{
"comparator": ">=",
"current": -6.28777326501869,
"flipsTo": "BUILDING",
"metric": "oiChangePct24h",
"value": 5
},
"… 7 more"
],
"wouldChange": [
"annualized funding >= +30.9% -> crowded long; <= -9.1% -> crowded short (now +1.8%)",
"funding at/above the 85th pct of its own window -> stretched long; at/below the 15th -> stretched short (now 5th)",
"crowd and top traders are 1.55x apart — the clean vote is withheld until they converge inside 1.5x",
"24h OI change >= +5.0% -> positions building; <= -5.0% -> unwinding (now -6.3%)",
"or a 24h move at/above the 85th pct of this window's own moves (now 3th)",
"spread >= 5.0 bps -> makers backing off (now 0.1 bps)",
"… 4 more"
],
"options": {
"informational": true,
"nextExpiry": "2026-11-14T08:00:00Z",
"nextExpiryMaxPainTheoretical": 73500,
"observedAt": "2026-11-13T08:05:16Z",
"oiNotionalUsd": 22726606453.448,
"provider": "Deribit",
"putCallOi": 0.786936722608645,
"riskReversal25At30d": -4.13282585233276,
"skewState": "PUTS OVER CALLS",
"state": "BALANCED",
"gamma": {
"flips": [
76832.5074174907
],
"gammaState": "NEGATIVE MODELED GAMMA",
"grossUsdPer1Pct": 329834819.687822,
"largestGammaStrikes": [
70000,
72000,
80000
],
"observed": false,
"regime": [
"NEGATIVE MODELED GAMMA"
],
"scenario": "calls_long_puts_short",
"signedUsdPer1Pct": -176374379.632186,
"spotUsd": 68625.86
}
},
"generatedAt": "2026-11-13T08:05:50.6034395+00:00"
}Related tools
research_regimeWhat kind of market you are trading in. Seven forces — trend, volatility, cycle, sentiment, leverage stress, ETF liquidity, rotation — each voting with its own reasoning and its own threshold for changing the call.
research_opportunitiesA liquidity-qualified major and mid-cap universe screened on crowding, stress, leverage, compression, trend, location and entry quality. Ranked candidates with disclosed setup rules and entry, stop and target geometry — not a forecast or a proven edge.
research_trade_planCheck your entry, stop and target against ATR, perp levels, liquidation distance, fees, slippage and funding. Add account size and risk for sizing, or a placement time to replay a trade from public candles. An interactive ticket in MCP Apps hosts; no orders placed or plans stored.
research_token_viewOne coin, fully assembled. Market data, technicals, on-chain, cited narrative synthesis, catalysts, social, ETF flows and prediction odds — the entire dossier from a single call.
Call Positioning from your agent
Sign in, get an API key and make your first call in under a minute. No card required.
For agents: this page as Markdown · all docs
Market Regime
What kind of market you are trading in. Seven forces — trend, volatility, cycle, sentiment, leverage stress, ETF liquidity, rotation — each voting with its own reasoning and its own threshold for changing the call.
Opportunity Scan
A liquidity-qualified major and mid-cap universe screened on crowding, stress, leverage, compression, trend, location and entry quality. Ranked candidates with disclosed setup rules and entry, stop and target geometry — not a forecast or a proven edge.