Notice: all figures in this article are proprietary measurements based on the public APIs of DefiLlama, Hyperliquid, Kalshi, and Binance, frozen on September 14, 2026, at 21:11 UTC, in a single extraction to ensure arithmetic identities align. The only verification not sourced from these APIs is from the DefiLlama website, performed manually in a browser on that same September 14 because the site returns a 403 error to all automated queries. Values change daily; the described mechanism does not, as long as the aggregator does not modify it. This content is analysis, not financial advice. CleanSky does not receive commissions or referral payments from any cited platform and uses DefiLlama data daily.

DefiLlama's internal guide for those writing open interest adapters literally states that open interest "is a snapshot at the window end, never a sum over the window," yet its public endpoint /overview/open-interest serves it summed across five fields: on September 14, 2026, total7d was valued at $176,325,730,294, which is the exact sum to the dollar of the seven previous daily balances. Open interest (OI: the value of derivative positions that remain live and unliquidated) is a balance, like the money in an account, and summing balances from consecutive days does not produce any meaningful magnitude. The endpoint response provides fifteen fields for size and variation for that magnitude; eight are usable and seven contain flow arithmetic within them. This article is the map of all fifteen: which one measures what, with numerical verification alongside, why there is no correction factor to fix the faulty ones, why the DefiLlama website and its API do not return the same ranking for perpetuals (futures without an expiration date), and what part of that "on-chain open interest" is not on any chain at all. Including an eleven-line script so anyone can replicate it.

What distinguishes a balance from a flow and why is open interest a balance?

The billing dashboard of a cloud infrastructure provider shows two numbers that look the same but are not. One is how many instances are powered on right now: it fluctuates throughout the day, and it makes no sense to ask "how many instances have there been this week" by summing each day's count, because they are largely the same machines counted seven times. The other is how many compute hours have been billed: there, Monday's and Tuesday's hours are indeed summed, because each hour is consumed once and disappears.

The mapping to derivatives is direct. Powered-on instances are open interest, a balance (stock) magnitude: positions that remain open from one day to the next and are counted again every time they are checked. Billed hours are volume, a flow magnitude. The rule separating them is brief: a flow is summed over time; a balance is compared between two points or averaged, never accumulated.

The limit of the analogy marks where the problem lies. One can calculate a perfectly informative weekly average for powered-on instances; what one cannot do is publish the sum and call it "instances of the week." This is exactly the operation that appears in five fields of the DefiLlama open interest endpoint, and the practical consequence is that data that is correct at the source leaves the API converted into a figure seven, thirty, or three hundred and sixty-five times larger than the magnitude it claims to measure. For Hyperliquid Perps, on September 14, 2026, the balance was $13,810,050,693 and the three accumulated fields returned that same balance multiplied by 7.33 (total7d, $101,214,621,314), by 29.17 (total30d, $402,871,286,230), and by 236.39 (total1y, $3,264,573,936,926).

Which DefiLlama open interest fields are useful and which should be ignored?

The fifteen fields in the following map describe the size and variation of open interest, and the endpoint does not document them. The exact count depends on where you look, and it is worth knowing before running anything: each protocol object contains seventeen—the fifteen from the map plus annualized1y and monthlyAverage1y, discussed just below—while the root object adds totalAllTime, which is set to zero, and does not include the three annual fields. All have been verified one by one against totalDataChart, the daily series of balances provided in the same response: eight of the nine monetary fields in the root match the series to the dollar, with 0.000000% error, and the five variation fields reproduce the value served based on the header fields, rounded to two decimal places by the API itself. The one that does not match, total24h, deviates from its point in the series by $164,188,971 due to a gap in Polymarket US explained in the ranking section; average1y is verified at the protocol level. The verification column is based on proprietary calculations from the frozen extraction of September 14, 2026.

FieldWhat it measuresValue (Sep-14-2026)Verdict
total24hbalance of the last full day (Sep-13)$25,122,649,937use
total48hto24hbalance of the previous day (Sep-12)$25,197,768,313use
total7DaysAgobalance of Sep-06$24,991,683,562use
total30DaysAgobalance of Aug-14$19,570,281,227use
change_1dbalance vs balance−0.30%use
change_7dbalance vs balance0.52%use
change_1mbalance vs balance28.37%use
average1ydaily average of balances (total1y/365, protocol level only)$8,944,038,183 (Hyperliquid)use
total7dsum of 7 daily balances$176,325,730,294ignore
total14dto7dsum of the previous 7$168,875,947,712ignore
total30dsum of 30 daily balances$697,638,142,046ignore
total60dto30dsum of the previous 30$569,810,559,914ignore
total1ysum of 365 daily balances$6,291,328,936,979ignore
change_7dover7dsum vs sum4.41%ignore
change_30dover30dsum vs sum22.43%ignore

Two usage notes. First: of the three annual fields—average1y, annualized1y, and monthlyAverage1y—the only one with meaning is the daily average—for Hyperliquid Perps, $8,944,038,183.36 on September 14, 2026, which is exactly total1y divided by 365; annualized1y repeats the total1y value and monthlyAverage1y multiplies the average by 30.44 ($272,256,522,301 for Hyperliquid Perps), two scaled balances without inherent meaning. Second: the last point of totalDataChart is the current day and is incomplete, so sums are calculated over [-8:-1] and [-31:-1], not simply the last seven or thirty elements. Furthermore, at the protocol level, the windows differ from the root: each protocol's total24h is the current day, September 14, 2026, while total48hto24h, total7DaysAgo, and total30DaysAgo are September 12, September 6, and August 14, meaning change_1d spans two days, change_7d eight, and change_1m thirty-one, with the numerator still partial.

Can DefiLlama's change_7dover7d be corrected with a fixed factor?

The natural reaction to an inflated field is to look for a divisor: if total7d is seven summed balances, dividing by seven should suffice. This works for size fields but fails completely for variation fields, which is where the error creeps in unnoticed. A ratio between two seven-day sums is not equivalent to the ratio between the balances at the endpoints, because the sums incorporate the shape of the curve within each window. The result is a bias that changes in size, and sometimes in sign, depending on the series and the window.

Series and window (Sep-14-2026)Correct fieldSum fieldRatio
Aggregate, 7 days0.52%4.41%8.48x
Aggregate, 30 days28.37%22.43%0.791x
Hyperliquid Perps, 30 days17.85%22.55%1.263x
Kalshi (prediction markets), 7 days12.61%13.90%1.102x
Hyperliquid Perps, 7 days−3.41%+4.33%opposite sign
tradeXYZ, 30 days−6.74%+1.40%opposite sign

The last two rows are the verdict. In the same JSON object from September 14, 2026, for Hyperliquid Perps—the top market on the list, with a $13,810,050,693 balance—one field says open interest fell by 3.41% between September 6 and 14 (current day) and another says it rose by 4.33%. For tradeXYZ and the thirty-day window, the same occurs with crossed signs: −6.74% versus +1.40%. No factor can reconcile this; one must know which field is being read. The error is not confined to a specific series either: on September 11, 2026, Aster Perps had crossed signs at seven days, but by the 14th, it did not. And the size of the bias does not help intuition: in the aggregate, the sum field converts a +0.52% at seven days into +4.41%, and at thirty days, it converts +28.37% into +22.43%.

What does the DefiLlama guide say about summing open interest?

The rule that these five fields contradict is written in DefiLlama's own adapter repository. The file open-interest/AGENTS.md—the guide applied to all adapters in the directory—contains these two sentences:

"OI is a snapshot at the window end, never a sum over the window. Under pullHourly a summed OI comes out 24x too high."

"A source that only serves current OI uses runAtCurrTime: true; snapshot metrics never carry cumulative columns."

The dimensions table in the same file requires a single mandatory field, openInterestAtEnd, described as "total open interest at the end of the period." These literals were added to the repository on September 8, 2026, in commit b207d843a, six days after the file was renamed from GUIDELINES.md to AGENTS.md. Yet total7d, total30d, and total1y are the cumulative columns that this guide prohibits.

The trail of why this happens lies in the typing. In adapters/types.ts, openInterestAtEnd is declared on line 148 within FetchResultVolume, the volume type, three lines below dailyVolume, and both share the same whitelistedDimensionKeys list on line 228. The aggregate layer applies the same template to both dimensions, and the template is correct for one of them: in api.llama.fi/overview/dexs, the volume total7d was $71,998,953,101.49 on September 14, 2026, which is also the exact sum of the seven previous full days. There, summing is exactly what should be done, because volume is a flow. What brings flow arithmetic to a balance metric is the inheritance of that volume template.

The document DefiLlama publishes for automated consumption of its API, api-docs.defillama.com/llms.txt, occupies 8,132 bytes—8,124 characters—and contains zero occurrences of total7d and zero of total24h. The endpoint is described in one line—"List all open interest dex exchanges along with summaries of their open interest"—and none of the fifteen fields are defined there. The rule lives in the adapter guide and does not appear in the llms.txt consulted by those integrating the API. As an external contrast, CoinGlass, a derivatives data aggregator, publishes its aggregate open interest in OHLC candles, and the value closing each window is called close, defined in its documentation as "open interest at interval end."

Why do the DefiLlama website and its API not return the same perpetuals ranking?

The second defect is visible only if both surfaces are opened simultaneously. On September 14, 2026, the endpoint returned 127 protocols, and in second place, with $3,989,395,072, appeared tradeXYZ. On defillama.com/open-interest, opened manually that same September 14, 2026, tradeXYZ is not on the list.

Both surfaces are right, each in its own way. tradeXYZ deploys its own markets on Hyperliquid infrastructure, so its open interest is already counted within Hyperliquid Perps; anyone wanting details on how that distribution works can find it in our analysis of tradeXYZ builder codes. DefiLlama knows this and discounts it: it marks sixteen entries with doublecounted: true for a total of $4,063,248,097, and the web applies this filter before rendering the ranking. The public endpoint serves all 127 entries unfiltered and indicates the exclusion only with that boolean.

Someone looking at the page sees the deduplicated ranking; someone consuming the API without checking the page sees a second-largest perpetuals market that is already counted within the first. On September 14, 2026, building market share from the list without reading the boolean inflated the market by $4,063,248,097 over a net base of $25,168,568,979, an inflation of 16.14%.

There is a second discrepancy in that same list that is also unrelated to double counting. The sum of the 127 protocols exceeds the header total24h by $4,109,167,139, and removing the marked entries does not fully explain it: $25,168,568,979 remains compared to the header's $25,122,649,937. The $45,919,042 surplus is a one-day lag, matching to the dollar the difference between the September 14 point and the September 13 point in the daily series. The header total24h corresponds to September 13, 2026, the last closed day, and each protocol's total24h to the 14th, the current and still partial day. The full count comes from there: 4,063,248,097 + 45,919,042 = 4,109,167,139.

The September 14 snapshot also shows a gap in the daily series. Polymarket US—a prediction market declared off-chain and without a double-counting mark—appears in the protocol breakdown of the series, totalDataChartBreakdown, since October 31, 2025, but is missing points for September 9, 10, 13, and 14, 2026. The header and the list use its September 12 value, $164,188,971, so the header total24h does not match the September 13 point in totalDataChart—$25,122,649,937 vs $24,958,460,966—nor does the list's net base match the September 14 point: $25,168,568,979 vs $25,004,380,008. In both cases, the difference is exactly $164,188,971. The gaps also pass into the sum fields: the aggregate total7d, covering September 7 to 13, only includes Polymarket US on four of the seven days, and the protocol's own total7d, $567,497,280, is the sum of those four points. On September 11, 2026, the list showed the total24h for that entry as null.

There is a second-order trap for those trying to shortcut by category. On September 14, 2026, the fifteen entries categorized as Interface summed to $4,063,398,400 and the sixteen marked as double-counted, $4,063,248,097: they are similar, but do not match. They differ by $150,303 due to three crossed cases between label and boolean, and one of them explains the count mismatch: Helix Perp is Derivatives, is marked as double-counted, and shows total24h as null, so the sets are fifteen and sixteen entries and the subtraction still balances. Furthermore, the category does not describe activity in a way that is useful for filtering: tradeXYZ appears as Interface while operating 120 proprietary markets on Hyperliquid, so category is no substitute for the boolean.

Is DefiLlama's open interest data wrong?

No. And the numerical detail is necessary, because the summed fields and the double counting in the list invite the opposite conclusion. Reconstructing the Hyperliquid book from its own API—summing openInterest by markPx in each market of the base book and the ten markets deployed by third parties via HIP-3 (the standard allowing the launch of proprietary perpetuals on Hyperliquid)—yields this, measured at 21:11 UTC on September 14, 2026:

Hyperliquid Book Component (Sep-14-2026, 21:11 UTC)MarketsOpen Interest (Sep-14-2026)
Base book (no dex assigned)234$10,645,862,907
xyz (tradeXYZ)120$3,983,653,922
io (entropy.io)10$52,870,946
para (Paragon)35$14,501,190
mkts (Kinetiq Markets)23$5,880,205
flx, vntl, hyna, km, abcd, cash97$0
Total Hyperliquid Book (unrounded sum of components)519$14,702,769,171

That same September 14, 2026, DefiLlama published Hyperliquid Perps = $13,810,050,693, which is 93.93% of the $14,702,769,171 measured at the primary source. The gap is not distributed across the book: it lies entirely in the base book. Subtracting the four HIP-3 protocols that DefiLlama publishes separately from Hyperliquid Perps, the implicit base book is $9,747,467,010, or 91.56% of the $10,645,862,907 in the table. The four HIP-3 protocols, however, match—tradeXYZ against xyz at 100.14% · entropy.io against io at 100.08% · Paragon against para at 99.65%—and the worst of the four is Kinetiq Markets against mkts, at 99.09% on a balance of $5,880,205. That day crypto prices were rising: on Binance, BTC went from $76,842.01 at the 00:00 UTC open to $79,100 at the 21:00 UTC candle open, up 2.94%, and ETH from $2,477.10 to $2,570.64, up 3.78%. The plausible reading, unproven because the endpoint does not publish its cutoff time, is that DefiLlama took the base book hours earlier with lower prices, while the HIP-3 markets, mostly stocks and commodities, barely moved relative to that reference. The deduplication, meanwhile, matches to the dollar except for Polymarket US: the 127 protocols sum to $29,231,817,076; subtracting the sixteen marked entries leaves $25,168,568,979, which is the September 14 point in the daily series plus the $164,188,971 from that entry, which is missing from that point in the series, as detailed in the previous section. The four HIP-3 adapters match and the subtraction is correct. What demonstrably fails is the API's contract with those who consume it without opening the website.

How much of DefiLlama's "on-chain" open interest is not on any chain?

The endpoint is read in the sector as the reference for on-chain open interest. Of the $25,168,568,979 net base in the September 14, 2026 list, $4,917,090,038—19.54%—corresponds to ten protocols declared with chains: ['Off Chain']. The five largest, in millions of dollars: Aster Perps 2,770.1 · Kalshi 1,226.9 · Antarctic 334.0 · QFEX 221.9 · Polymarket US 164.2. Kalshi and Polymarket US are prediction markets; Antarctic and QFEX are perpetual platforms with off-chain order books. Nearly one in every five dollars of the aggregate is not on any chain. The final detail: Off Chain does not appear in the endpoint's own allChains array, which has 70 entries, so the breakdown by chain also fails to capture that 19.54%.

The second block of non-homogeneous magnitudes is prediction markets: seven entries, $1,758,534,330, or 6.99% of the net base, with Kalshi contributing $1,226,851,870, Polymarket International $363,763,462, and Polymarket US $164,188,971. A dollar of open interest in a perpetual rests on a fraction of margin and can be leveraged; a binary contract is paid in full upfront. And in Kalshi's case, the unit is not even a dollar: its API declares notional_value_dollars equal to "1.0000" per contract—in all 200 open markets consulted on September 14, 2026, without exception—and the DefiLlama adapter, unchanged since August 2, 2026, sums SUM(CASE WHEN status = 'active' THEN open_interest ELSE 0 END) without multiplying by price, while the same SQL query does divide volume by 100 with SUM(price * contracts_traded / 100). Kalshi's 1,226,851,870 "dollars" are 1,227 million contracts at maximum notional, not market value.

How to verify DefiLlama open interest fields in five seconds?

The identities in this article are self-verifying. These eleven lines download the endpoint response, run the two sum assertions, and print the deviation between the two daily series cuts; the output noted in the comments is from the snapshot on September 14, 2026, at 21:11 UTC:

import json, urllib.request
d = json.load(urllib.request.urlopen("https://api.llama.fi/overview/open-interest"))
v = [x[1] for x in d["totalDataChart"]]
assert sum(v[-8:-1]) == d["total7d"]      # total7d is a sum, to the dollar
assert sum(v[-31:-1]) == d["total30d"]
# Cuts: Polymarket US gap in the series. Its Sep-13 and 14 points are missing and the
# header and list carry over the Sep-12 one: 164188971 for both (Sep-14, 21:11 UTC)
print(d["total24h"] - v[-2])
print(sum((p.get("total24h") or 0) for p in d["protocols"]
          if not p.get("doublecounted")) - v[-1])
print(d["change_7d"], d["change_7dover7d"])           # 0.52 and 4.41

If DefiLlama fills in the September 13 point for Polymarket US, the first difference should drop to 0. From this emerge the three usage rules that summarize the piece, which remain valid even if the numbers change tomorrow:

  1. For size, use total24h, total48hto24h, total7DaysAgo, and total30DaysAgo. The five totalNd fields are sums of balances and measure nothing.
  2. For variation, use change_1d, change_7d, and change_1m. The two change_NoverN fields compare sums and can result in a reversed sign, as happened with Hyperliquid Perps at seven days and tradeXYZ at thirty on September 14, 2026.
  3. For ranking, filter by the doublecounted boolean, which differs from the Interface category by $150,303, and do not mix the list's total24h with the header's, as they represent different days.

A final warning regarding the expiration of the above: if DefiLlama documents the fifteen fields, stops serving cumulative columns for open interest, or filters double counting in the API as well, this article becomes a description of how the endpoint functioned until that date, and the field map will no longer be necessary. That would be the best possible outcome: the rule is already written for adapters, and the change would only affect the aggregate layer, not the adapters themselves. In the meantime, anyone using that ranking to compare perpetuals markets—including our own comparisons of Lighter, Aster, and edgeX and appchain vs Solana and Ethereum L2—must apply the filter before summing anything.

Sources and links: DefiLlama — endpoint /overview/open-interest · DefiLlama — endpoint /overview/dexs · DefiLlama — api-docs llms.txt · dimension-adapters — open-interest/AGENTS.md · dimension-adapters — adapters/types.ts · dimension-adapters — hyperliquid-perp-oi.ts · dimension-adapters — dexs/kalshi.ts · Hyperliquid — info endpoint documentation (POST api.hyperliquid.xyz/info: metaAndAssetCtxs, perpDexs) · Kalshi — Trade API v2, markets · Binance — market candles (klines) · DefiLlama — open interest page · CoinGlass — aggregate open interest OHLC history

Related articles: Hyperliquid Builder Codes: how tradeXYZ revenue is distributed, the protocol appearing here as a double-counting case. Lighter vs Aster and edgeX and appchain vs Solana and Ethereum L2, two comparisons using open interest as a magnitude. DeFi Metrics for the basics of what each indicator measures. The USDD Collateral Ratio, where DefiLlama's price service served WTRX and TRX at $0.23777637 and $0.33854228 on September 11, 2026. Monitor your positions on CleanSky — the portfolio tracker consolidates wallets and lending positions into a single view.