Skip to content

About

No description, website, or topics provided.

Resources

Stars

61 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Evidence of Wash Trading on Kalshi's Perpetual Futures

OctopusTakopi
Working paper, 21 September 2026
PDF: paper/main.pdf

Abstract

This paper asks whether the trading volume reported for Kalshi's perpetual futures is genuine. We collected every public trade between 5 and 18 September 2026, about 4.1 million trades worth $11.5 billion, as well as the complete history of the BTC and ETH contracts since they opened in June. As a benchmark we use 408 million trades from Binance, Bybit and Hyperliquid over the same two weeks. When the tests proposed in the wash-trading literature are applied in the same way to every venue, most of them set Kalshi apart from the benchmark. Its volume-weighted first digits are far from Benford's law, it shows none of the clustering at round trade sizes that Cong et al. (2023) associate with authentic trading, and roughly a third of its volume consists of nearly identical buy and sell trades a few seconds apart. We trace these results to orders of a fixed dollar size. Trades of $5,500 account for 59% of ETH volume, and trades of $5,000 or $2,500 account for 57% of BTC volume. Together these trades are about half of all volume on the venue, and similar orders appear in 17 of the 20 contracts that traded. The pattern dates from the first week of trading. On 24 August 2026 the order sizes in the BTC and ETH markets were changed within ten seconds of each other, which is hard to explain unless one operator controls both. Very little of this volume ends up as open positions. Open interest turns over about 23 times a day, compared with once or twice a day on Binance and less than once on Hyperliquid. On ETH the fixed-size orders also trade at much the same rate whether the wider ETH market is busy or quiet, while the rest of Kalshi's ETH trading rises and falls with volume on Binance. Members also pay nothing to produce this volume, because under a rebate programme that Kalshi filed with the CFTC a trade between two self-clearing members carries no net exchange fee.

1. Introduction

In September 2026 a public argument started over whether the volume on Kalshi's new perpetual futures is real. One of the exchange's employees answered that nobody would wash trade on a venue that charges trading fees. We decided to check both the volume and that answer against the data the exchange publishes.

A wash sale, which section 4c(a) of the Commodity Exchange Act prohibits, is a purchase and sale made without the intent to take a genuine position in the market. In practice the two sides have the same owner or have agreed the trade beforehand. Volume gets printed and no risk moves. Kalshi's public tape has no account identifiers, so we test what can be measured: whether the volume is mechanical, whether it comes from one source, whether it leaves positions behind, whether it responds to the market, and what it costs to produce. The rest of the paper takes these in turn. Section 2 deals with cost. Section 4 applies the detectors from the literature. Sections 5 to 8 look at the pattern those detectors pick up. Section 9 goes through the objections we could think of, and Section 10 says what we could not establish.

2. Fees: trading between members is free

The argument that fees deter wash trading depends on which fees apply. Kalshi's first schedule for perps, filed in June 2026, charged takers between 12.0 and 2.6 basis points and makers between 5.0 and 0.6 (KalshiEX LLC, 2026a). The schedule in force during our sample is lower. For crypto perps it charges takers 4.0 bps at the entry tier and 1.0 bps above $1 billion of 30-day volume, and it charges makers 2.0 bps at the entry tier and nothing above $10 million (KalshiEX LLC, 2026b).

Members do not pay these rates either. Under the Temporary Perpetual Fee Rebate Program (KalshiEX LLC, 2026c), which was filed on 2 September 2026 as an update to a programme that was already running and which lasts until 31 December 2026, “all Self-Clearing Members of Kalshi” receive monthly rebates in every perp market. The filing says that “taker fees will be rebated down to 0.3 bps” and that “maker fees will be rebated such that makers net 0.3 bps”. Its worked example gives a maker a rebate that is larger than the fee the maker paid, which means the maker ends up receiving 0.3 bps. Payments are capped only “to prevent trading conditions with net-negative (maker + taker) fees on a per-trade basis”. When two members trade with each other, the taker pays 0.3 bps, the maker receives 0.3 bps, and the exchange keeps nothing. The same is true if one member is on both sides.

The filing acknowledges the problem. It excludes from rebates any fees on transactions “resulting from, or subject to inquiry or investigation for potential, self-matching, wash trading, pre-arranged trading”, it excludes affiliates of the exchange from the programme, and it leaves detection to the exchange's own surveillance. For members, then, the cost that the employee's answer relied on is not there.

3. Data

Kalshi's perps trade under the /margin API. One ETH contract is 0.001 ETH and one BTC contract is 0.0001 BTC. Each trade record gives a price, a contract count, the aggressor side and a timestamp in microseconds. There is no account field. Our core sample is every trade in all 23 listed contracts from 5 to 18 September 2026, which comes to 4,103,097 trades and $11.486 billion. Summed contract volume matches the exchange's own one-minute candles exactly on each of the ten market-days we checked, across seven contracts, and no trade identifier appears twice. For BTC and ETH we also collected every trade since the contracts opened on 3 June 2026, a total of 26.1 million trades and $46.4 billion. The controls are websocket captures for the same fourteen days from Binance spot, Binance USD-M futures (203 million trades, $322.5 billion), Bybit and Hyperliquid, 408 million trades altogether. Hyperliquid publishes both wallet addresses on every trade. Open interest comes from each venue's API. In the figures Kalshi is green, Binance dark gold, Hyperliquid mint and Bybit grey.

We use three definitions throughout, and Appendix A gives the formulas. The dollar-size concentration of a market-day is the largest share of its notional that falls inside a window one per cent wide on the trade-size axis. A ticket at a dollar amount K is the set of trades whose notional lies between K-15 and K+1 dollars. Non-ticket trades are the other trades in the same Kalshi market. Whenever we compare with another exchange we name it. Confidence intervals are 95% bootstrap intervals that resample whole days.

4. The detectors in the literature

We implemented the tests described in our three reference papers and in the SEC-style matching approach, and ran them on Kalshi ETH and BTC and on ETH and BTC at Binance USD-M, Bybit and Hyperliquid. Table 1 and Figure 2 give the results. Three choices matter when these tests are applied to a venue like this one. Benford's law has to be weighted by volume, because the question is about volume. The round-size test of Cong et al. (2023) has to be read in its original direction, in which authentic trading clusters at round sizes. And trade sizes have to be matched with a small tolerance, because the sizes involved differ by a contract or two. Applied in this way, most of the detectors separate Kalshi from every control.

Table 1. Detectors from the reference materials. Kalshi values are medians of 14 daily values (pooled over 14 days for the DCCA and tail statistics); the control range covers the six control markets. The last column says whether Kalshi falls outside the control range.

Detector Kalshi ETH Kalshi BTC Controls Outside?
Cong, Li, Tang and Yang (2023)
Benford MAD of trade size, by trade count 0.086 0.081 0.021–0.097 no
Benford MAD of notional, by notional 0.133 0.113 0.011–0.023 yes
Round-size clustering, t statistic 1.17 1.03 2.42–3.57 yes
Tail exponent of trade size (Hill, top 10%) 1.95 2.79 0.84–1.33 yes
SEC-style matching and the reference chat
Near-identical opposite pairs within 5 s, share of notional 26.9% 38.5% 1.2–13.8% yes
Same, within 60 s 47.9% 58.7% 5.3–31.5% yes
Near-identical sizes (1% band, contracts or coins) 34.9% 20.9% 1.5–4.0% yes
Most common exact size, share of trades 10.1% 11.3% 2.6–65.1% no
Side flips between consecutive orders 0.37 0.37 0.28–0.49 no
Zwydak, Wątorek, Kwapień and Drożdż (2026), one-minute series
Approximate entropy of trade counts 1.38 1.39 1.01–1.16 yes
Approximate entropy of volume 1.20 1.21 0.81–0.98 yes
DCCA, counts and volume (64 min) 0.86 0.92 0.94–0.97 yes
DCCA, counts and absolute returns 0.70 0.67 0.77–0.85 yes
DCCA, volume and absolute returns 0.53 0.69 0.70–0.84 ETH yes
Multifractal width of volume 1.74 1.19 0.53–1.07 wider

Benford's law. Figure 1 shows the first digit of each trade's dollar notional with every trade weighted by its notional. The six control markets stay close to Benford's curve. Their mean absolute deviation (MAD) is between 0.009 and 0.020, and the forensic literature usually puts the limit of conformity near 0.015. On Kalshi ETH, 61% of all volume starts with the digit 5 and the MAD is 0.132. On Kalshi BTC, 39% starts with 4 and 31% with 2, and the MAD is 0.111. This holds on every day of the sample: the daily MAD ranges from 0.083 to 0.151 on Kalshi and from 0.006 to 0.029 on the controls. When the same test is weighted by trade count, as it is usually run, every venue fails it, because every venue has a large number of orders at the minimum lot size. About 60% of Binance ETH trades have a notional that starts with 2, because the most common order there is 0.009 ETH, about $22. Those orders carry almost no volume, which is why the volume-weighted version is the one that bears on inflated volume. Weighting Benford's law by volume is not a theorem, and we rely on the six control markets to show that it holds in ordinary trading.

Round-size clustering. Cong et al. (2023) observe that human traders favour round sizes, so authentic markets show more trades at round sizes than at the sizes next to them, and they treat the absence of this clustering as a sign of wash trading. We follow their procedure with round sizes defined as multiples of 0.1 ETH and 0.01 BTC, compare the frequency at each round size with the mean frequency of its neighbours, and compute a t statistic over 100 windows. All six control markets show significant clustering, with daily median t between 2.4 and 3.6. On Kalshi the statistic is 1.17 for ETH and 1.03 for BTC, which is not significant. The tail of the trade-size distribution is also different. Cong et al. expect a power-law exponent between 1 and 2 in authentic trading. The controls have exponents between 0.84 and 1.33. Kalshi's are 1.95 and 2.79, meaning that large trades are much rarer there than on any control.

Near-identical pairs. SEC wash-trading cases describe purchases and sales that are “virtually identical” in price and quantity and close together in time. We count a trade as paired if a later trade on the opposite side occurs within the window with a size within 1% and a price within 1 bp. Within five seconds, 27% of Kalshi ETH notional and 39% of BTC notional is paired, against 14% on Binance, 7 to 9% on Bybit and 1 to 2% on Hyperliquid. We note one property of this result. If we shuffle the aggressor signs within each hour, the paired share on Kalshi goes up, to 47% and 53%. The pairs therefore come from the repetition of identical sizes, and the buy and sell signs themselves arrive in runs. We return to this in Section 9.

Complexity measures. Zwydak et al. (2026) characterise artificial activity on Bitget by more irregular short patterns and by weaker cross-correlations. Kalshi shows both. Approximate entropy of one-minute counts and volume is higher than on any control. The detrended cross-correlation between volume and absolute returns is 0.53 on Kalshi ETH, compared with 0.70 to 0.84 on the controls, so volume on that contract is only loosely tied to volatility. Two of their indicators go the other way on Kalshi. The multifractal spectrum of volume is wider than on the controls, and the autocorrelation of volume decays more slowly. Their Bitget case involved a flood of small trades. The Kalshi pattern consists of medium-sized trades, which probably explains the difference. The graph method of Victor and Weintraud (2021) needs account identities, so we could only apply it to Hyperliquid (Section 6.4).

Figure 1

Figure 1. Benford's law on dollar notional. How to read it: bars show the share of each market's dollar volume whose trade notional begins with each digit, and the black line is Benford's law. Sample: all trades, 5–18 September 2026 (Kalshi ETH 0.99 million trades, BTC 2.2 million, controls 2.3 to 66 million each). Trades are weighted by notional. MAD is the mean absolute deviation from Benford over the nine digits.

Figure 2

Figure 2. Detectors from the reference materials on Kalshi and on the controls. How to read it: each panel is one detector and each row is a market. Where the Kalshi rows (green) lie apart from the control rows (Binance dark gold, Bybit grey, Hyperliquid mint), the detector separates Kalshi from ordinary venues. The dotted line in the clustering panel is the 5% significance level. Sample: ETH and BTC, 5–18 September 2026, one value per day, with one-minute bins for the series detectors. DCCA values are pooled over the 14 days.

5. The source: fixed dollar tickets

All of the readings above have one source, which becomes visible when trade size is measured in dollars. Figure 3 shows the share of each market's notional by trade size. On Binance and Hyperliquid the distribution is smooth. On Kalshi ETH, 59.0% of notional (469,255 trades, $2.58 billion) is at $5,500. On Kalshi BTC, 30.2% is at $5,000 and 26.6% at $2,500 (965,945 trades, $3.29 billion). These three tickets add up to $5.87 billion, which is 51% of all the notional traded on the venue in the sample. They are present on each of the fourteen days, at 39 to 69% of daily notional on ETH and 47 to 64% on BTC.

The trades sit just under the round figure. The 1st and 99th percentiles of ticket notional are $5,497.43 and $5,500.01 on ETH, $4,992.00 and $4,999.93 for the larger BTC ticket, and $2,492.01 and $2,499.93 for the smaller one. This is what results from buying the largest whole number of contracts that fits under a dollar limit. Because the limit is in dollars, the contract count moves with the price (Figure 4), and on ETH it takes 258 different values in the sample. That is why tests built on exact or round contract sizes miss the pattern, while tests that allow a small tolerance or work in dollars find it.

Other contracts. The same kind of ticket appears across the venue. In 17 of the 20 contracts that traded, at least one ticket at a fixed dollar amount carries 4% or more of notional. The larger ones are HYPE at $2,400 (33%, centred on the amount and not capped by it), LTC at $1,000 (21%), SOL at $3,500 (12%), AAVE at $3,000 (10%), NEAR at $10,600 (10%) and HYPE again at $25,100 (8%). The same unusual amounts recur in unrelated contracts. A $10,600 ticket appears in NEAR, ZEC, SUI, DOGE and BCH. A $12,000 ticket appears in KSHIB, SUI, LINK, BCH and LTC, a $25,100 ticket in HYPE, XRP and SOL, and a $500 ticket in AAVE, VVV, BCH and WLD. Independent traders in different contracts would have no reason to settle on $10,600.

Comparison with other venues. Figure 5 shows the dollar-size concentration for every market-day with at least 500 trades. The median is 58% on Kalshi ETH, 29% on Kalshi BTC (which has two tickets, so the single largest window holds about half of them) and 12% on the other Kalshi perps. It is 5% on Hyperliquid, 3% on Binance spot and 2% on Bybit and Binance USD-M. The highest value among the 392 control market-days is 19.5%. Appendix B shows that the ranking does not depend on the width of the window.

Unsupervised clustering. A clustering algorithm finds the same trades without being told about dollar amounts. We describe each trade by five features of how it was placed: log notional, log time since the previous trade, log length of the current same-side run, price change from the previous trade in ticks, and the number of trades in the same millisecond. We draw 60,000 trades at random from each of Kalshi ETH, Binance USD-M ETH and Hyperliquid ETH, fit HDBSCAN, and draw a t-SNE map with the same settings for all three (Figure 6). On Kalshi, 42% of the sampled trades, carrying 51% of notional, fall in clusters whose notional is essentially constant (interquartile range below 1% of the median). On Binance and on Hyperliquid no trades do. Over three independent samples and three settings of the minimum cluster size, the Kalshi share ranged from 38% to 44%, and the control share was zero in all eighteen runs. On the map, the control venues form rounded groups, while half of the Kalshi map is made of thin threads, which is how points look when one of their coordinates is fixed. We add a caution about what this shows. When we ran the same pipeline on Hyperliquid and compared the clusters with the wallets, the clusters did not correspond to wallets (weighted purity 4 to 9% against a baseline of 3 to 5%). The clustering shows that a very large number of near-identical trades exist on Kalshi and on no control. It does not show how many operators produce them.

Figure 3

Figure 3. Share of each market's notional by trade size. How to read it: each bar is the share of a market's dollar volume traded in one size bucket, and labels give the share and dollar level of the largest buckets. Sample: all trades, 5–18 September 2026, for eight Kalshi perps and four control markets. Bin width 2% in log notional.

Figure 4

Figure 4. The ETH ticket is a dollar limit. How to read it: binned density of contract count against price. The dashed line is 5,500 dollars divided by the price. The dark ridge along the line is the ticket, and almost nothing trades above it. Sample: Kalshi ETH perp trades of 1,500 to 2,700 contracts, 5–18 September 2026. Bins are 10 USD by 10 contracts, colour is the trade count per bin on a log scale, and empty bins are blank.

Figure 5

Figure 5. Dollar-size concentration on Kalshi and on four control venues. How to read it: each dot is a market-day, placed at the largest share of its notional found inside any 1%-wide window of trade size. Sample: 637 market-days with at least 500 trades, 5–18 September 2026. Histogram bin 0.25% in log notional.

Figure 6

Figure 6. The same trade map on three venues. How to read it: points that are close together are trades placed in a similar way. The left panels show how many sampled trades fall in each cell. The right panels show what share of them lie in the market's heaviest 1% size window, which was not used to build the map. Sample: 60,000 random trades from each market, 5–18 September 2026, with identical scaler, HDBSCAN and t-SNE settings (perplexity 50). The grid is 70 by 70, cells with fewer than three trades are left blank on the right, and the axes have no units.

6. One operator

6.1 The sizes were changed in both markets within seconds

Figure 7 shows, for every day since the contracts opened, how that day's dollar volume is spread over trade sizes. On Binance the picture is a smooth band. On Kalshi it is a set of thin horizontal lines, each of them a fixed dollar amount, and the lines step to new values on 10, 18 and 24 August. The tickets make up between 20% and 70% of daily notional from the first week of June onwards, so they are not a response to anything that happened in September. The dollar amount has been changed several times. On ETH it was $5,000 until 9 August, $4,000 from 10 August, $4,500 from 18 August and $5,500 from 24 August. On BTC it was $5,000 for most of June and July and took other values for short periods in early August. A pair of $4,000 and $2,100 first appears on 10 August and is in place from 15 to 24 August, and a pair of $5,000 and $2,500 follows from 24 August.

The change on 24 August can be timed from the tape, and Figure 8 plots every trade in the eleven minutes around it. On BTC the last trades at the old sizes, a $4,000 print and a $2,100 print in the same burst, are stamped 03:07:13.088 UTC. The first $2,500 trade is stamped 03:07:14.730 and the first $5,000 trade 03:07:20.405. On ETH the last $4,500 trade is stamped 03:07:22.985 and the first $5,500 trade 03:07:24.710. After that, the old sizes do not trade again, apart from one stray print. Both markets therefore switched within about ten seconds of each other, and within each market the change took less than two seconds. The change on 10 August reached the two markets ten minutes apart (03:55 UTC on ETH and 04:05 on BTC). The change on 18 August affected only ETH. Total volume was about the same before and after each change, which suggests that existing flow was re-sized and that no new flow was added. We cannot think of a market event that would move trade sizes to new round dollar figures in two contracts within ten seconds, whereas one operator changing a setting would do exactly that.

Figure 7

Figure 7. Size spectrogram. How to read it: each column is one UTC day and each row is a trade size. The colour is the share of that day's notional traded at that size, so a thin dark horizontal line is a fixed dollar amount that is traded day after day. Sample: every trade in the Kalshi ETH and BTC perps from 3 June to 18 September 2026 (26.1 million trades), and Binance USD-M ETH and BTC for 5–18 September. Bins of 3% in trade notional, log colour scale, cells below 0.05% left blank. Dotted lines mark 10, 18 and 24 August.

Figure 8

Figure 8. The change of ticket sizes on 24 August 2026. How to read it: each point is one trade, placed at its time and its dollar size. Orange points are trades at the old ticket sizes and green points are trades at the new ones. Sample: all 2,309 trades in the Kalshi ETH and BTC perps between 03:02 and 03:13 UTC. We use a plain scatter because the points are few and each one matters. The dotted line is 03:07:18 UTC.

6.2 Quotes of fixed size, and orders that match them

The tickets are resting quotes. On BTC there are 169,594 bursts (groups of trades within one millisecond) in the core sample that contain both a $5,000 print and a $2,500 print. In 99.8% of them all trades are on the same side, the two prints are at different prices, and 73% of these bursts consist of exactly those two trades. When the two prints are adjacent on the tape they carry the identical microsecond stamp in 66% of cases. This is what one aggressive order looks like when it takes two resting quotes at neighbouring prices. On ETH, 92% of ticket trades are the only trade in their millisecond, so there the aggressive order is the same size as the $5,500 quote.

The aggressive orders are sized to the quotes. Of the notional in one-sided BTC bursts that include a ticket print, between 51% and 75%, depending on the day, is in bursts whose total equals one quote or the sum of the two (ten days around the change of 24 August). The remainder are larger sweeps by other participants that also reach the quotes. When the quotes were re-sized on 24 August, the aggressive orders changed with them. From 17 to 23 August the median size of a burst containing both tickets was between $6,094 and $6,098 on every day, which is the sum of $4,000 and $2,100. From 25 August it was between $7,493 and $7,495, the sum of $5,000 and $2,500. On the 24th both sizes occur, with 971 bursts at the old size and 3,521 at the new one. One reading is that the quoter and the aggressor were reconfigured together. The other is that the aggressor simply sizes each order to the depth it sees displayed. The tape does rule out an aggressor that has a fixed order size of its own.

6.3 A replenishment cycle of about 117 milliseconds

Timestamps in microseconds show how the quotes are maintained (Figure 9, top). For non-ticket trades in the same Kalshi markets the time between consecutive trades has a smooth distribution that rises towards zero, and 48% of gaps on ETH and 40% on BTC are shorter than 100 ms. Ticket trades behave differently. Two consecutive trades of the same ticket on the same side are almost never less than about 117 ms apart. The share of such gaps under 100 ms is 0.009% for the ETH ticket, 0.04% for the $5,000 BTC ticket and 0.4% for the $2,500 ticket, and the first percentile of the gap is between 111 and 120 ms. Ticket trades on opposite sides can be closer together (3 to 6% of those gaps are under 100 ms), so the limit applies to each side of the book separately. When we thin the non-ticket trades at random to the same count as the tickets, 47% and 35% of the gaps are still under 100 ms, so the limit is not a consequence of there being fewer ticket trades.

Figure 10 shows the same thing for every trade size at once. The rows of the three tickets, $5,500 on ETH and $5,000 and $2,500 on BTC, begin abruptly at the 117 ms line. Most other sizes have waiting times all the way down to a fraction of a millisecond, and on Binance no size has such an edge.

The simplest explanation is that after a ticket quote is taken, the process that posts it needs about 117 ms to put it back, and that all the ticket quotes on one side of a market come from that single process. Independent quoters would not share one cycle time. Once the quote is back it tends to be taken again quickly. Between 6% and 10% of same-side gaps fall between 100 and 150 ms, right after the limit, and more than half are under one second.

Figure 9

Figure 9. Timing of the ticket trades, and where the non-ticket Kalshi trades come from. How to read it: the top panels show the time between consecutive trades of the same kind within one Kalshi market. The non-ticket trades (grey) have a smooth distribution that rises towards zero. The ticket trades (green) have almost no gaps below about 110 ms, and the BTC panel pools two tickets, whose paired prints account for the mass below 1 ms. The bottom panels show the average Binance price path around a Kalshi trade, signed so that up means in the Kalshi aggressor's favour. Sample: Kalshi ETH and BTC perps, 5–18 September 2026 (ETH ticket 469,255 trades, BTC tickets 965,945). Top: 4 ms bins on a log scale. Bottom: 10 ms grid, notional weighted, with different vertical scales in the two panels.

Figure 10

Figure 10. Trade size against waiting time. How to read it: for every trade, the horizontal position is the time since the previous trade of the same size (within 1%) on the same side, and the vertical position is its dollar size. A row that starts abruptly at the dotted line belongs to a size that is never traded twice on the same side within about 117 ms. Sample: Kalshi ETH and BTC perps and Binance USD-M ETH, 5–18 September 2026. Bins of 0.05 in log10 milliseconds by 0.025 in log10 dollars, colour is the trade count on a log scale, and empty bins are blank. The vertical stripes on Binance come from its millisecond timestamps.

6.4 On Hyperliquid a dollar ticket belongs to one wallet

Hyperliquid shows both wallets on every trade, which lets us check whether a dollar ticket points to a single operator. For each of 98 symbol-days we took the heaviest 1% size window and found the wallet that was a party to the largest share of it. In the median symbol-day that wallet is a party to 90% of the window's notional (interquartile range 76 to 96%), and it appears both as maker and as taker (Figure 11). So where identities are visible, a dollar ticket does belong to one operator. The scale is very different, though. On Hyperliquid such a ticket accounts for a median of 5% of a market-day and never more than 19.5%. On Kalshi the figure is 57 to 59%.

We also applied the method of Victor and Weintraud (2021) to Hyperliquid's daily trade graph. Wallet pairs whose two-way trading nets to within 1% account for 0.06 to 0.08% of volume. On a venue with visible identities, then, the kind of position-neutral trading the method looks for is a very small part of the total. The method cannot be run on Kalshi, because it needs account identifiers and Kalshi's public data have none.

Figure 11

Figure 11. Hyperliquid calibration. How to read it: on the left, each dot is one Hyperliquid symbol-day and shows how much of that day's largest dollar ticket involves a single wallet, as buyer or as seller. On the right, each dot shows how much of a day's notional the largest dollar ticket takes, for Hyperliquid and for the two Kalshi contracts. Sample: 98 Hyperliquid symbol-days and 14 days for each Kalshi contract, 5–18 September 2026. The ticket is the heaviest 1% window of trade size, and the black bars are medians.

7. The volume leaves no positions

On 21 September 2026 Kalshi reported open interest of $4.10 million on ETH with 24-hour volume of $246.0 million, and $10.07 million on BTC with $264.1 million. The open interest therefore turns over 60 times a day on ETH and 26 times on BTC. Across all 23 contracts, open interest was $27.1 million and daily volume $619.0 million, a ratio of 22.8. During our sample, Binance USD-M turned over a median of 1.27 times a day on BTC and 1.51 on ETH, with a maximum of 5.3 on any day for any symbol, and Hyperliquid turned over 0.51 and 0.48 times (Figure 12). Since launch the two Kalshi contracts have traded $47.4 billion and hold $14.2 million of open interest. We have only one open-interest snapshot for Kalshi, but the difference from the other venues is more than a factor of ten. It means that nearly all positions opened during a day are closed the same day.

The rest of the tape does not look like customer demand either. For non-ticket trades, the Binance price moves 2.7 bps on ETH and 1.0 bps on BTC in the aggressor's favour during the 100 ms before the Kalshi trade, mostly between 100 and 50 ms before it, and it is flat afterwards (Figure 9, bottom right). These are arbitrageurs hitting Kalshi quotes that have not yet caught up with Binance. Trades that follow a Binance move of more than 1 bp in this way account for 61% of non-ticket notional on ETH and 32% on BTC. Putting the pieces together, ETH volume is 59% tickets, 25% arbitrage of this kind and 16% everything else. For BTC the figures are 57%, 14% and 29%.

Figure 12

Figure 12. Daily turnover of open interest. How to read it: 24-hour traded notional divided by the notional value of open positions, so that 1x means the whole open interest changes hands once a day. Sample: Kalshi snapshot of 21 September 2026 at 04:16 UTC, Binance USD-M median of 14 daily values for 5–18 September, Hyperliquid snapshot of 21 September. Log scale.

8. Response to the market

Volume that serves a trading purpose usually rises when markets are active. To test this we regressed the log of hourly notional on the log of hourly Binance USD-M notional in the same asset. For non-ticket trades on Kalshi the elasticity is 0.64 on ETH, with an interval of 0.51 to 0.78, and 0.84 on BTC (0.75 to 0.90). The correlations are 0.72 and 0.85. For the ETH ticket the elasticity is 0.27, its interval runs from −0.24 to 0.67 and so includes zero, and the correlation is 0.19. Its elasticity with respect to realised volatility is 0.41 (−0.36 to 1.11), compared with 1.05 for non-ticket ETH trades. The DCCA coefficient between volume and absolute returns in Table 1 points the same way. The ETH ticket also trades more evenly across the 24 hours than other flow does. The coefficient of variation of its hour-of-day profile is 0.25, against 0.31 for non-ticket Kalshi trades and 0.55 for Binance. The BTC tickets are different. Their elasticity is 0.90 (0.77 to 0.97) and their volume follows the market about as closely as other BTC trades, so this test counts against the ETH flow and not against the BTC flow.

9. Objections

The venue charges fees. Between members the net fee is zero (Section 2).

This is ordinary market making. A market maker quotes both sides and trades when customers arrive. We would not expect one to produce turnover of 60 times open interest, to account for half of a venue's volume in one exact dollar size, to have its quote taken in full again within a fraction of a second of replacing it, or to show the same volume in busy and quiet hours. On Hyperliquid, where market makers can be identified, the largest dollar ticket is about 5% of a market-day.

The trades do not alternate between buying and selling. That is correct. Consecutive ticket trades change side 22 to 34% of the time. At the level of whole orders Kalshi flips side 37% of the time, which is inside the control range of 28 to 49%, and shuffling the signs raises the share of near-identical opposite pairs. Alternation is what we would expect when two accounts wash against each other and both take liquidity. In the pattern here one side rests in the book and the other takes. If both sides had the same owner, that owner's net position would be zero after every trade whatever the sequence of buys and sells, so there would be no need to alternate.

The aggressor has an edge. After a ticket trade the Binance price moves in the aggressor's favour by 0.25 bps over thirty seconds, and the gross markout on ticket trades is between 0.13 and 0.21 bps, about $98,000 on $5.87 billion. Ticket flow also moves the Kalshi price at least as much per dollar as other flow does. At the lowest list taker fee of 1.0 bp the same notional would cost $587,000, six times the gross edge, and at the entry tier it would cost $2.35 million. Only at the rebated rate of 0.3 bps does the edge come close to covering the cost. It also does not explain the other side of the trades. A quoter that loses the same markout on every fill, a million times a fortnight, needs some other source of income, and the rebate is one.

10. Limits

The tape has no account identifiers, so we cannot show that the quoter and the aggressor have the same owner or an agreement between them. That is the legal element of a wash sale and it remains open. A few of our results point away from the simplest wash-trading story, and we list them here. The BTC ticket volume follows the market. Sweeps by other participants do reach the fixed-dollar quotes (33% of multi-level sweeps on ETH include a ticket print), so the quotes are available to everyone. The aggressor's direction carries a small signal and its trades have ordinary price impact. Two of the indicators of Zwydak et al. (2026) move in the opposite direction on Kalshi from their Bitget case. Our open-interest figure for Kalshi is a single snapshot. We measure markouts from trade prices because no historical order book is public, and we infer resting sizes from bursts. Event contracts, which are most of Kalshi's business, are not covered. Nothing in this paper identifies a person or a firm.

11. Conclusion

About half of the volume reported for Kalshi's perpetual futures comes from resting quotes of a fixed dollar size being taken in full by orders of the same size. The detectors in the wash-trading literature pick this pattern up once they are weighted by volume and allowed a small tolerance in size. The pattern has existed since the contracts opened, its settings were changed in two markets within ten seconds of each other, and the quotes on each side of a market are replaced on a single cycle of about 117 ms. This trading leaves almost no open interest. On ETH the fixed-size orders trade at much the same rate in busy and quiet markets, unlike the rest of Kalshi's trading. Under the exchange's rebate programme, members pay no net exchange fees on these trades. The controls show nothing similar, including Hyperliquid, where every wallet can be seen.

References

  • Cong, L. W., Li, X., Tang, K., Yang, Y. (2023). Crypto wash trading. Management Science, 69(11).
  • KalshiEX LLC (2026a). Exchange fee schedule (perpetual futures contracts), self-certification filed 24 June 2026. https://www.cftc.gov/filings/orgrules/rules0624267243.pdf
  • KalshiEX LLC (2026b). Update to perpetuals fee schedule, self-certification filed 2 September 2026, CFTC filing 63563. https://www.cftc.gov/filings/orgrules/rules09022622948.pdf
  • KalshiEX LLC (2026c). Temporary Perpetual Fee Rebate Program update, self-certification filed 2 September 2026, CFTC filing 63564. https://www.cftc.gov/filings/orgrules/rules09022622952.pdf
  • Victor, F., Weintraud, A. M. (2021). Detecting and quantifying wash trading on decentralized cryptocurrency exchanges. Proceedings of the Web Conference 2021.
  • Zwydak, J., Wątorek, M., Kwapień, J., Drożdż, S. (2026). Detecting unusual trading patterns on cryptocurrency exchanges by means of complexity measures. Entropy, 28(7), 804.

Statute: Commodity Exchange Act §4c(a), 7 U.S.C. §6c(a).

A. Estimators

Trade i in market m has price p_i, size q_i, aggressor sign s_i ∈ {+1,-1}, time t_i and notional v_i=p_i q_i in dollars. Sums run over the trades of one market-day unless stated otherwise.

Dollar-size concentration. With δ=ln 1.01,

$$C_\delta = \max_x \; \frac{\sum_i v_i\,\mathbf{1}[x \le \ln v_i < x+\delta]}{\sum_i v_i},$$

computed on a grid of 0.25% in ln v. Appendix B repeats it with a fixed $20 window and with a 3% window.

Ticket. T_K={i: K-15 ≤ v_i ≤ K+1}. The ticket share is Σ_{i ∈ T_K}v_i/Σ_i v_i.

Benford. With D(v) the first significant digit, f_d=Σ_i w_i 1[D(v_i)=d]/Σ_i w_i and MAD=(1/9) Σ_d | f_d-log10(1+1/d)|, where w_i=v_i for the volume-weighted version and w_i=1 for the count version.

Round-size clustering (Cong et al., 2023). Sizes are placed on a grid g (the venue's lot, or 0.001 ETH and 0.0001 BTC if finer). For round sizes jX, j=1,…,100, with X=0.1 ETH or 0.01 BTC, let Δ_j=φ(jX)-mean(φ)_j, where φ is the share of trades at a grid size and mean(φ)_j is its mean over the other grid sizes within X/2 of jX. The statistic is t=mean(Δ)/(s_Δ/√100).

Near-identical pairs. Trade i is paired within W if some trade j has 0<t_j-t_i ≤ W, s_j=-s_i, | q_j/q_i-1| ≤ 0.01 and | p_j/p_i-1| ≤ 10^-4. Both i and j are then marked, and the statistic is the marked share of notional. The permutation version shuffles s within each hour.

Replenishment limit. For consecutive trades of T_K with the same sign, we report Pr(t_(i+1)-t_i<100 ms) and the first percentile of the gap. The placebo draws | T_K| non-ticket trades at random.

Turnover. 24-hour notional divided by open-interest notional, both taken from the venue's API.

Market response. ln V^(K)_h=α+β ln V^Binance_h+ε_h over hours h, where V^(K)_h is ticket notional and V^Binance_h is Binance USD-M notional in the same asset. Intervals resample days.

Hyperliquid party share. For the trades in the heaviest 1% window of a symbol-day, the share of their notional in which a given wallet is buyer or seller, maximised over wallets.

Fixed-size cluster share. The share of sampled trades that HDBSCAN assigns to a cluster with (Q_75-Q_25)/Q_50<0.01 for notional.

B. Robustness

Table 2. Dollar-size concentration under three window definitions. Median and maximum over market-days with at least 500 trades, 5–18 September 2026.

$20 window median $20 window max 1% window median 1% window max 3% window median 3% window max
Kalshi ETH 0.578 0.688 0.581 0.691 0.584 0.693
Kalshi BTC 0.289 0.346 0.293 0.351 0.297 0.353
Kalshi other perps 0.091 0.550 0.121 0.550 0.146 0.553
Hyperliquid 0.047 0.185 0.052 0.195 0.058 0.240
Binance spot 0.028 0.093 0.029 0.090 0.038 0.098
Bybit 0.016 0.082 0.018 0.089 0.030 0.101
Binance USD-M 0.013 0.059 0.017 0.048 0.027 0.052

The fixed-size cluster share of Section 5 was recomputed on three independent samples of 60,000 trades with minimum cluster sizes of 200, 300 and 500. It was between 0.384 and 0.437 on Kalshi ETH (0.465 to 0.530 of notional) and exactly zero in all nine runs on Binance USD-M ETH and in all nine on Hyperliquid ETH. The daily volume-weighted Benford MAD was between 0.083 and 0.151 on Kalshi ETH and between 0.097 and 0.124 on Kalshi BTC, and between 0.006 and 0.029 on the six control markets.

C. Replication

The scripts are in paper/analysis/. a01 computes dollar-size concentration for 662 market-days. a02 and a03 compute the ticket profile, markouts and the Binance alignment. a04 computes turnover and a05 the Hyperliquid wallet calibration. a06 draws the figures. a07, a09 and a15 cover bursts, timing and the order-size comparison. a08, a10 and a18 produce the trade maps and their stability check. a11 computes sweeps and elasticities, a12 the Hyperliquid trade graph, a13 the ticket history, a14 Benford, a16 the detectors of Section 4, a17 the timing of the size changes, a19 the tickets in all contracts, a20 the reconciliation against the exchange's candles, a21 the size spectrogram and the trades around the change of 24 August, and a22 the joint density of size and waiting time. Outputs are in paper/out/ and the three filings we cite are in paper/refs/.


Repository

paper/main.tex, main.pdf     the paper (this README is generated from main.tex by paper/tex2readme.py)
paper/analysis/a01..a22      analysis scripts (each writes to paper/out/)
paper/analysis/a06_figures   all figures (paper/fig/)
paper/out/                   results used in the text (csv/json/npz), incl. the API snapshots in out/ext/
paper/refs/                  the CFTC filings cited
py/                          harvest and normalisation of the Kalshi tape and the control tapes
make harvest      # Kalshi perp tape via the public API (no key needed)
make normalize    # raw JSONL -> fixed-point parquet under data/norm/
make analysis     # a01..a05, a07..a22 -> paper/out/
make figures      # paper/fig/
make paper        # paper/main.pdf (needs latexmk + pdflatex)
make readme       # this file

Raw and normalised data are not in the repository (several GB). The Kalshi tape can be re-harvested with make harvest. The control tapes are websocket captures that are not redistributed here; py/normalize_crypto.py documents the expected input layout, and any trade tape with price, size, aggressor side and millisecond timestamps can be substituted. Hyperliquid trades, including both wallet addresses, are public through its API. Python 3.11+, with numpy, pandas, pyarrow, scipy, scikit-learn, matplotlib.

Code is under the MIT licence; the paper, figures and result files are under CC BY 4.0 (see LICENSE). Read DISCLAIMER.md before relying on anything here.

About

No description, website, or topics provided.

Resources

Stars

61 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages