Mapping Kalshi's RFQ Layer: A Census of the Bots Behind the Quotes
A field map of Kalshi's RFQ layer. Two backbone bots respond to half of every request. Combos and singles are quoted by completely separate crews. And on the non-sports markets we tested, nobody quoted anything at all.
By Ritesh Malpani
A hidden layer most users never see
Kalshi is best known as an order-book exchange. You place a yes-or-no bid, somebody takes the other side, the platform clears the trade. But there's a second liquidity mechanism running underneath: Request for Quote. You announce you want to buy a specific position; market makers respond privately with their prices; you accept one or let them all expire. The rule that makes it interesting: Kalshi only lets you accept the quote containing the best price. So if four makers respond, three of them are competing to lose. It's the same idea as a corporate-bond desk on Wall Street, ported into prediction markets.
Most retail traders never see it. We wanted to know: who actually answers those quote requests?
Over two evenings in late May 2026 we fired 270 quote requests at production Kalshi. Small, auto-cancelled, never executed, no capital ever committed. We covered five sports, six contract sizes, four levels of combo complexity, and every non-sports market we could find live. We watched 90 seconds of the public RFQ firehose for context. And then we counted who came back.
The demand side is public. The supply side is private.
Kalshi broadcasts every RFQ creation on a public WebSocket channel, but only the requests, not the quotes. The quotes that come back go privately to whoever fired the request. So if you watch the public feed long enough, you can map exactly what the world is asking for. You can't see a single thing about who is answering.
That asymmetry alone is interesting, but it also makes the demand-side numbers worth a second look. We watched the firehose for ninety seconds at 11:30pm ET. It carried 12,178 quote requests. That's not a sample. That's ninety seconds.
One requester ID accounted for 1,215 of those RFQs by itself, about 13.5 per second, ten percent of all demand on the platform from one source. To picture that concretely: imagine an automated system that wakes up every 75 milliseconds, picks a combination of sports markets, asks for a price on it, waits a few seconds, cancels if the quote isn't what it wanted, and repeats. The median lifetime of every RFQ on the firehose was 13 seconds. Fire, wait, cancel. Almost every request was a multi-leg combo. Leg counts ranged from 2 to 35. Sizes went up to 70,821 contracts.
This is not retail. The demand side of Kalshi's RFQ is a small number of high-frequency automated systems continuously probing the combo surface for prices, and most of them are getting cancelled within seconds, presumably because the quotes that came back didn't look attractive enough to fill. That gives us our first read on the supply side before we've even fired a request of our own: somebody is replying, and they're not always giving away the store.
So we fired 270 of our own
To see what comes back, we became requesters ourselves. Across two evenings we fired single-market RFQs across five sports (NBA, MLB, WNBA, NHL, ATP) and a complexity ladder of combos from 2 legs to 5 legs. Sizes from 1 contract up to 2,000. Plus a separate batch of 96 RFQs at every non-sports market we could find live (Fed, CPI, GDP, BTC, ETH, BTCD, ETHD, SOL, XRP, TSLA, hurricane).
The goal: who answers, what do they price, and what do they refuse to touch?
Who answered: 13 bots, and two of them carry the layer
At US-evening peak, with games live, exactly 13 distinct quote_creator_ids responded to our 126 sports RFQs. Two of them, 43189200 and 411ee20c (the "Backbones"), answered roughly half of every single request we fired.
Latencies are the first tell. Almost every quote came back in under 200 milliseconds. The slowest median across the entire roster was 300ms. These are not human market makers staring at a screen. These are automated systems pre-priced and ready to fire.
The one exception, and easily the most interesting maker on the list, is fab6f2ff. Its median latency is 232ms, perfectly normal. But its slowest quotes take 1.4 to 4.4 seconds, far slower than anyone else. fab6f2ff only quotes combos, and our reading is that it's the only maker in the visible universe actually running correlation-aware combo pricing. The rest of the combo crew issues a quick price or declines instantly. The slowest bot is the only one doing the math. On a venue of automated systems, the one taking compute time is the one to watch.
The headline finding: singles and combos are two separate markets
Here's what surprised us most. Going in, we assumed the same makers who quote NBA singles would also quote NBA-containing combos. They're the same underlying odds, after all. They don't. Not one of them.
Across 126 sports trials at peak, not a single market maker quoted both singles and combos:
This was the moment the story changed shape for us. Kalshi's RFQ system isn't one liquidity pool with different complexity levels. It's two separate quoter populations that happen to share an API. The prop-trader crew and the parlay-pricing crew don't even talk to each other.
Whatever you think about prediction-market market structure, this is a clean, surprising, empirical fact. There's no overlap by maker ID. There's also no overlap by behavior: singles-only quoters and combos-only quoters have different latency profiles, different pricing styles, and different coverage patterns. They are two firms, or two desks, or two strategies. They are not one continuum.
The combo "cliff" we expected isn't there
Inside the combo crew, we expected a sharp drop-off as parlays got harder to price. The natural hypothesis: 2-leg combos get a few quotes, 5-leg combos get nothing. Reasonable. Wrong.
Walking from a 2-leg combo up to a 5-leg cross-sport parlay (tennis plus WNBA plus MLB, say) loses about one quoter on average. The inside spread doesn't change at all. The same three IDs (99516d7e, b1ef13c9, fab6f2ff) handle every rung.
We didn't push past 5 legs. The public firehose shows traders firing parlay requests with leg counts as high as 35, so there's presumably some complexity beyond which the combo crew gives up. We didn't go far enough to find it. What we can say cleanly: at any complexity a human would actually use, the combo crew engages without flinching.
The Goldilocks band, and it's sport-specific
On NBA game-winners we ran a clean size sweep. Same market, six contract sizes from 1 to 2,000, six trials per size.
An inverted U. Real, clean, almost textbook microstructure. Size 1 isn't too small to bother: four makers show up. Size 50 is the peak. By size 2,000, only the two Backbones remain; the specialists back away from genuinely big risk.
But the curve isn't about size in the abstract. It's about which specialists choose to show up. Run the exact same sweep on MLB and you get a totally different shape:
MLB at the same sizes is flat at 2 quoters (the two Backbones only), zero outside the band. MLB has no dedicated two-sided specialists at all. The Goldilocks curve only exists when specialists show up, which only happens on the sports they care about. NBA gets a curve. MLB gets a flat line. WNBA gets two quoters. ATP at 9:30pm ET gets one.
The visible "curve shape" in microstructure data is a function of the human (or algorithmic) decisions of which makers cover which markets. Same instrument, different roster, different curve.
RFQ on Kalshi is heavily concentrated in sports
To check whether the 13 makers we identified were the sports slice of a larger quoter universe, we fired a separate batch of 96 RFQs at every non-sports market we could find live. That included Fed funds rate, Fed decision dates, CPI releases, GDP, hourly BTC and ETH price, BTC and ETH daily, SOL daily, XRP, Tesla production milestone, and hurricane categorization. Sizes from 1 to 2,000 contracts. Same peak hours as the sports campaign.
Result: zero quotes, from zero makers, across every non-sports category we tried. All 96 RFQs were accepted by the server. Clean rfq_ids came back, clean cancellations went out. Nothing in the API was rejecting us. But not one market maker engaged. Fed funds, Bitcoin, Tesla, hurricanes. All silent.
The honest framing is that the RFQ layer on Kalshi is heavily concentrated in sports, not strictly sports-only. We tested at two snapshots in time. We covered the categories with the most open markets, but Kalshi has thousands of niches (political event futures, award shows, geopolitics) that we didn't individually probe. It's possible some of those have their own dedicated quoters who happen to be quiet at the moments we sampled.
What we can say cleanly: every non-sports market we observed at every size we tried got zero quotes from the 13 makers we identified. The sports quoter pool and the non-sports trading activity on Kalshi don't currently overlap. Macro, crypto, and weather markets either trade exclusively on the lit order book or simply don't see RFQ as their liquidity layer. From the outside, Kalshi looks like a unified prediction market. Inside the RFQ layer, it functions more like a small dedicated sports-betting market-maker desk bolted onto an otherwise lit-book exchange.
Why this matters
Three observations the careful reader can take away.
The cast is small, and deterministic. Thirteen automated market makers run the entire RFQ supply. We ran the same campaign twice 17 minutes apart and got nearly identical numbers, prices, and latencies. These are bots, and there are not many of them. The whole layer would fit in a single Excel sheet.
The cast is segmented in ways that aren't obvious from outside. Combos versus singles is a hard partition. NBA versus everything else is a soft one. Sports versus non-sports is a wall. The makers who answer one type of RFQ have nothing to do with the makers who answer another, even when the underlying assets overlap.
Edge lives at the seams. The interesting question is no longer "where do the bots give up?" It's "where do the bots not bother?" Single-market RFQs at size 2,000+. Multi-day-out NHL games at night. ATP matches in US-evening prime time. Anything macro, crypto, or weather. The seams between maker populations are where the market is inefficient by design, not because the makers are bad at pricing but because they're strategically absent.
RFQ on Kalshi is not the generic liquidity layer it looks like.From outside, RFQ on a regulated exchange suggests something like the corporate-bond market: a way to source size across asset classes when the lit book is thin. On Kalshi, that's only true within sports. Macro, crypto, weather: every non-sports market we tested drew zero engagement from the same 13 makers who answer sports RFQs reliably.
Where this goes from here
The cast we mapped is the cast today. A few predictions about how this layer changes over the next 12 to 24 months. Predictions, not data.
1. Parlays become native. Today combos sit behind a separate API behind the lit book. That will not stay true. Same-game parlays went from niche feature to dominant product on FanDuel and DraftKings in roughly three years. Expect Kalshi to follow.
2. Cross-category combos arrive. Today we get cross-sport: tennis plus WNBA plus MLB on one ticket. Tomorrow we get NBA plus Fed plus BTC plus election plus weather. A single line priced as a joint distribution across uncorrelated asset classes. A genuinely new product with no real analog in equities or sportsbooks.
3. The RFQ cast grows. Thirteen is the floor, not the ceiling. As volume scales and combos go native, the economics of running a quote engine improve quickly. Expect the institutional MMs that already run RFQ desks in other markets (Susquehanna, Citadel, Jane Street, plus dedicated prediction-market specialists) to enter at scale. In 18 months the visible cast probably looks more like 30 to 50.
4. The combo crew is the moat. fab6f2ff is the only quoter actually doing correlation math today. As parlays go native, the firms that can price joint distributions across uncorrelated legs will eat. Most makers handle 2-leg combos with independence assumptions. Very few will price a 10-leg cross-category combo correctly. That gap is where the next generation of prediction-market market makers gets built.
5. Non-sports silence flips on. Today every non-sports RFQ drew zero quotes, but that's a function of volume, not structure. As election cycles, macro events, and crypto attract RFQ demand, a dedicated macro and crypto RFQ crew emerges. Probably different firms than the sports crew, repeating the partition pattern at a coarser scale.
One last rule worth knowing
Kalshi enforces a specific rule on RFQ: the requester can only accept a quote containing the best price. That sounds procedural. It changes how you read everything above.
When we counted 4 makers answering an NBA RFQ at size 50, only one of them actually had a shot at the trade. The other three quoted into the void. They spent the compute, they hit the API, they got the data, and the system threw their quote away because somebody else had a better number. That's why the cast is so disciplined, why the spreads are so tight, and why the seams between maker populations matter as much as they do. You're not just competing to quote. You're competing to be chosen.
The best price is the one someone must choose. Everything else is noise.
Frequently asked questions about Kalshi RFQ
What is RFQ on Kalshi?
Request for Quote is a separate liquidity mechanism layered on top of Kalshi's exchange. Instead of placing a yes-or-no order on the visible order book, you announce that you want to buy a position and market makers respond privately with prices. You accept one or let them all expire. RFQ is heavily used for multi-leg combos, the parlay-style positions across multiple markets that don't have a natural order book. In our research it is the dominant liquidity mechanism for Kalshi sports markets, and effectively unused outside sports.
How many market makers are on Kalshi RFQ?
Across 174 sports RFQs we fired into Kalshi over two evenings, exactly 13 distinct quoter IDs responded (plus another 96 non-sports RFQs that received zero responses). Six makers were active overnight and seven additional ones appeared during US-evening peak hours. The 13 split cleanly: 8 quote single markets only, 5 quote multi-leg combos only, with zero overlap. They are all automated. Every quote response came back in under half a second, with one slow combo specialist that takes up to 4 seconds for genuine multi-leg pricing.
Are RFQ quotes on Kalshi the same as the order book?
No, and that's the point. RFQ quotes are private to whoever asked. The public WebSocket channel broadcasts every RFQ that gets created (about 135 per second) but never the quotes. The bid-ask you see on Kalshi's order book and the RFQ quotes you can solicit are two different markets, with different makers behind each. For most sports markets, the public order book is empty and RFQ is effectively the only liquidity layer.
Does Kalshi RFQ work for non-sports markets like Fed rates or Bitcoin?
In our testing, no. We fired 96 RFQs at non-sports markets including Fed funds, Fed decision, CPI, GDP, BTC and ETH hourly, BTC/ETH/SOL daily, XRP, Tesla production milestone, and hurricane categorization. Sizes ranged from 1 to 2,000 contracts. All RFQs were accepted by the server but received zero quotes from zero makers. We can't say this is true for every Kalshi market, since niche categories like political event futures or award shows weren't individually probed, but every non-sports market we observed at every size we tried drew nothing. The RFQ layer is heavily concentrated in sports.
What is a multivariate event collection on Kalshi?
A multivariate event collection is Kalshi's parlay product. You select multiple legs across different markets (for example Knicks win plus over 210.5 points plus Anunoby hits 4+ threes) and Kalshi mints a combined market whose payoff depends on all legs resolving favorably. You can then RFQ that combined market and get a single price for the parlay. Three quoter IDs specialize in pricing these multi-leg combos and quote nothing else.
SEE THE LIQUIDITY LIVE
Watch every market on Kalshi and Polymarket in one place.
Oddpool tracks the visible book on both venues in real time, and surfaces the spread, whale flow, and arbitrage the RFQ layer hides.