An on-chain audit of the contract behind NEAR's headline volume: 44,994 transactions, three independent samples, six tests set in advance.
NEAR's investment case leans on one number: the volume of NEAR Intents, published from NEAR's own data tables. We asked whether an outsider can confirm that number and what stands behind it. Six claims were written down with pass rules before the data was analysed. Each was then tested on a seeded random sample of the contract's transactions, repeated on a second sample, and checked out-of-sample on a third drawn after the rules were fixed.
| Claim tested | Pass rule (set in advance) | Measured | Verdict | |
|---|---|---|---|---|
| T1 | The published volume is real: value entering the contract on-chain matches it | between 0.5× and 2.0× | 0.70× (0.56×–0.84×) | supported |
| T2 | Demand is multi-chain: no single chain supplies half of the deposits | below 50% | 29.2% (21.6%–36.8%) | inconclusive |
| T3 | It is a dollar rail: stablecoins are most of the value moved | above 50% | 72.5% (66.4%–78.5%) | supported |
| T4 | Settlement is NOT concentrated: no single account sends half of the value | below 50% | 44.2% (39.1%–49.4%) | inconclusive |
| T5 | Access is NOT concentrated: the five busiest signers submit under 90% of transactions | below 90% | 97.6% (97.4%–97.8%) | contradicted |
| T6 | NEAR captures value: revenue is at least 5 bps of volume (30 days) | above 5.0 bps | 4.9 bps | contradicted |
T1–T5 show the pooled estimate of the first two samples with 95% intervals. A claim is supported or contradicted only when the whole interval is on one side of the rule and both samples' own estimates agree; otherwise it is inconclusive. T6 uses published figures.
Value entering the contract in our sample is 0.79× (95% CI 0.57× to 1.06×) of the volume NEAR publishes for the same 28 days. The headline number is not an artefact of a dashboard: money of that order shows up on-chain. A second check agrees: the sample's transaction count is 0.97× the exact count. The independent replication sample measures 0.66× (95% CI 0.49× to 0.84×); pooling both samples gives 0.70× (0.56× to 0.84×). The verdict holds.
Stablecoins are 72.8% (95% CI 63.1% to 80.4%) of the value moved inside the ledger. This is a dollar-transfer product more than a trading venue. The independent replication sample measures 72.2% (95% CI 63.6% to 80.4%); pooling both samples gives 72.5% (66.4% to 78.5%). The verdict holds.
Exact counts for 180 days. The contract handled about 56,619 transactions a day in the first 30 days of this window (2026-05-18 onwards) and 113,293 a day in the last 30: 2.0× as many. Published volume over the same two spans went from $85M to $127M a day (1.5×). The busiest day was 2026-11-05 with 279,561 transactions.
What cuts against it: every one of the three samples puts deposits below the published figure, and the third sample alone is inconclusive. We can confirm roughly two thirds of the headline, not all of it. Whether one chain dominates deposits is not settled: the samples disagree.
Up to 2026-10-30, 21.8% (95% CI 19.7% to 23.8%) of transactions carried a swap settled in the open. From 2026-10-31 it is 3.5% (95% CI 2.8% to 4.3%). Open swaps fell from about $38M to $16M a day while shielded value rose from $54M to $113M a day. The share has been under 3% on every one of the last 10 full days (since 2026-11-04), with open swaps averaging $2M a day. Re-drawing the sample 1,000 times puts the break between 2026-10-30 and 2026-11-03 in 95% of draws.
Published volume did not fall with it: $126M a day before, $132M after. Swaps we can see in the open were 30% of the published figure before the break and 12% after. The rest of the published number now has to be taken on trust.
But read it with this: that account is on one side or the other of 86.7% (95% CI 78.2% to 92.6%) of the value, and it is not an anonymous whale. NEAR's own documentation names it as the Confidential Intents Treasury: a transfer into it is the "shield" step that moves funds onto the confidential ledger, and a transfer out of it is the unshield. Every one of the 5,964 sampled transfers into it carries a long opaque memo (120 to 184 characters), and none of the 14,566 other transfers does. That matches the documentation, which says the shield memo carries the encrypted recipient. We stored only the memo's length; the one we re-fetched in full is base64 data.
For the thesis. Privacy is a product most cross-chain venues do not sell, and the flow adopted it within days. 2,770 different accounts shielded funds in the sampled windows. Two solver accounts, solver-priv-liq.near and solver-multichain-asset.near, supply 36% of the shielded value between them; the ten largest shielders together account for 61.2% (95% CI 44.7% to 72.8%). Accounts that each contribute under 1% make up 34%. So use is broad by count, with solver liquidity as the largest single block.
Against it. The swap itself executes on a separate private contract. From outside we can count what crosses the boundary, not who traded what or at what price. NEAR's take was 4.9 bps of published volume before the break and 4.0 bps after; what users paid went from 15.5 bps to 15.1 bps. The timing matches; we have no evidence of cause.
At block 224,532,448 (2026-11-14 15:23 UTC) the treasury held $129M on the public contract, in 174 assets; 33% of it stablecoins. About $113M a day has been shielded since the break, so the pool turns over roughly every 1.1 days.
The holdings are readable by anyone at any block. The shielded balances they back are not published, so nobody outside can confirm that one covers the other. Our sample cannot fill that gap: inflow and outflow are each uncertain by tens of millions of dollars a day.
Five accounts submit 97.5% (95% CI 97.2% to 97.7%) of every transaction that touches the contract. End users almost never sign a NEAR transaction themselves (1.6% of transactions are signed by an unnamed user account). The independent replication sample measures 97.8% (95% CI 97.4% to 98.1%); pooling both samples gives 97.6% (97.4% to 97.8%). The verdict holds.
NEAR's captured revenue is 4.9 bps of volume over the last 30 days: $1.8M on $3.8B. Users pay 16.0 bps; NEAR keeps 30.5% of that.
| Venue | Volume | Users pay | Keeps | Revenue |
|---|---|---|---|---|
| NEAR Intents | $3.80B | 16.5 bps | 4.7 bps | $1.80M |
| Relay | no series | n/a | n/a | $696.93K |
| Unit | $2.18B | 2.4 bps | 2.4 bps | $531.87K |
| deBridge | no series | n/a | n/a | $458.11K |
| Circle CCTP | no series | n/a | n/a | $199.78K |
| Symbiosis | no series | n/a | n/a | $114.16K |
| TeleSwap | $43.16M | 17.4 bps | 16.1 bps | $69.40K |
| Maya Protocol | $400.04M | 9.3 bps | 0.9 bps | $37.02K |
| Across | no series | n/a | n/a | $0.00 |
DefiLlama has both volume and revenue for 4 of these 9 venues. Among them NEAR Intents keeps 4.7 bps, ranking 2 of 4. The venues of comparable size keep less: Unit 2.4 bps and Maya Protocol 0.9 bps. By revenue in dollars it is first of the 9. This cuts against our own T6 objection: the 5 bps bar was ours, and the comparable venues we can measure do not clear it either.
NEAR's market value is $4.09B, or 182× annualised Intents revenue of $22.4M. This is arithmetic on Intents revenue alone. The token is also valued for gas, staking and everything else built on NEAR, so these multiples overstate what Intents must deliver by itself. They are still the cleanest way to see how far revenue is from carrying the price.
| Scenario | What has to be true | Volume a day | Take | Revenue a year | Market value ÷ revenue |
|---|---|---|---|---|---|
| Bear | Volume halves and the take stays where it is. Prediction P5 would fail first. | $63M | 4.9 bps | $11.2M | 365× |
| Base | The last 30 days repeat for a year. | $126M | 4.9 bps | $22.4M | 182× |
| Bull | Volume doubles and NEAR keeps everything users pay today, not a third of it. Needs access and fee policy to change (T5, T6). | $252M | 16.0 bps | $147.2M | 28× |
| Volume a day ↓ / NEAR's take → | 4.9 bps (today) | 10.0 bps | 16.0 bps (all user fees today) | 25.0 bps |
|---|---|---|---|---|
| $63M (0.5×) | $11M · 365× | $23M · 178× | $37M · 111× | $57M · 71× |
| $126M (today) | $22M · 182× | $46M · 89× | $74M · 56× | $115M · 36× |
| $252M (2×) | $45M · 91× | $92M · 45× | $147M · 28× | $230M · 18× |
| $503M (4×) | $90M · 46× | $184M · 22× | $294M · 14× | $459M · 9× |
The scenarios are illustrations with no probabilities attached. The point they make is structural: at today's take, even four times the volume leaves the multiple at 46×. The valuation case needs the take to rise, and the take is a policy choice that depends on who controls access.
| Risk | Level | Evidence in this report | What would reduce it |
|---|---|---|---|
| Verifiability | High | Open swaps fell from 22% to 3.5% of transactions; open swap value is 12% of the published figure since 2026-10-31. | NEAR publishes auditable aggregates for the confidential ledger. |
| Custody concentration | High | One treasury account holds $129M and backs every shielded balance; the claims against it are not published. | Disclosure of key holders, controls and the shielded supply. |
| Access concentration | High | Five accounts submit 97.6% (97.4%–97.8%) of transactions. Same result in every run. | Top-five share under 90% (P1 fails). |
| Value capture | Medium | NEAR keeps 4.9 bps of volume; users pay 16.0 bps. The take went from 4.9 bps to 4.0 bps around the break. | Take above 5 bps over 30 days (P3 fails) without volume falling. |
| Quality of the headline volume | Medium | Sampled deposits are 0.64× (95% CI 0.53× to 0.76×) of published volume; all three samples sit below 1×. The rest is not explained by anything we can see. | A published method for the volume figure, or a full on-chain count. |
| Liquidity concentration | Medium | Two solver accounts supply 36% of shielded value. | More solvers taking share. |
| Our own measurement | Medium | 1,440 windows over 29 days. Two of six tests are inconclusive; value shares depend on a few very large transfers. | A larger sample or a full count; the BigQuery cross-checks, which were written but not run. |
Five predictions were registered on 2026-11-14 and will be graded on 2026-12-14. A daily job re-samples the last 24 hours and scores them without anyone editing the result.
| Prediction | Met when | Baseline | If we are wrong | |
|---|---|---|---|---|
| P1 | Access stays closed: the five busiest signers keep submitting at least 90% of transactions | ≥ 90.0% | 98.4% | Relayer access is opening up. The main structural objection in this thesis weakens. |
| P2 | The move to confidential settlement is permanent: at least 90% of visibly settled value is shielded | ≥ 90.0% | 99.7% | The collapse of public swaps was temporary, and the audit gap is smaller than we say. |
| P3 | NEAR's take stays under 5 bps of published volume, measured over the trailing 30 days | < 5.0 bps | 4.9 bps | Value capture is improving. The second structural objection weakens. |
| P4 | It remains a dollar rail: stablecoins stay above half of the value moved | > 50.0% | 58.4% | The flow is turning speculative, and the demand case needs rewriting. |
| P5 | Demand persists: published volume stays at or above $100M a day | ≥ $100M | $176M | The volume was a one-month spike, and the bull case falls. |
intents.near in it is downloaded with its event logs. Main sample 720 windows; two further samples of 360 windows each with different seeds.python3 rebuild.py recomputes every figure in this note from the committed raw data; the test suite re-derives the sampling plan from the seeds.| Run | Windows | T1 | T2 | T3 | T4 | T5 |
|---|---|---|---|---|---|---|
| Main sample | 720 | 0.79× (0.57×–1.06×) | 31% (16%–45%) NEAR | 73% (63%–80%) | 41% (34%–46%) | 97% (97%–98%) |
| Replication sample | 360 | 0.66× (0.49×–0.84×) | 51% (35%–63%) Ethereum | 72% (64%–80%) | 53% (44%–63%) | 98% (97%–98%) |
| Pooled (main + replication) | 1,080 | 0.70× (0.56×–0.84×) | 29% (22%–37%) Ethereum | 72% (66%–78%) | 44% (39%–49%) | 98% (97%–98%) |
| Third sample | 360 | 0.54× (0.39×–0.76×) | 44% (28%–60%) Ethereum | 72% (62%–81%) | 48% (39%–55%) | 97% (97%–98%) |
| Pooled (all three samples) | 1,440 | 0.64× (0.53×–0.76×) | 32% (25%–39%) Ethereum | 72% (67%–78%) | 45% (41%–50%) | 98% (97%–98%) |
| Older half only | 360 | 0.66× (0.47×–0.85×) | 25% (16%–37%) Ethereum | 62% (44%–80%) | 33% (21%–42%) | 97% (97%–98%) |
| Recent half only | 360 | 0.90× (0.51×–1.44×) | 38% (17%–54%) NEAR | 77% (66%–84%) | 43% (35%–50%) | 98% (98%–98%) |
| Whales removed | 720 | not meaningful | 35% (29%–42%) Ethereum | 67% (62%–71%) | 44% (39%–48%) | 97% (97%–98%) |
| Prices at fetch time | 720 | 0.73× (0.54×–1.00×) | 31% (20%–43%) Tron | 76% (68%–83%) | 41% (35%–47%) | 97% (97%–98%) |
29 of 39 re-checks give the same verdict as the main sample. No verdict flips to the opposite side. Differences: T1 is inconclusive in “Replication sample” (supported in the main sample); T2 is inconclusive in “Replication sample” (supported in the main sample); T4 is inconclusive in “Replication sample” (supported in the main sample); T1 is inconclusive in “Third sample” (supported in the main sample); T2 is inconclusive in “Third sample” (supported in the main sample); T4 is inconclusive in “Third sample” (supported in the main sample); T1 is inconclusive in “Older half only” (supported in the main sample); T3 is inconclusive in “Older half only” (supported in the main sample); T2 is inconclusive in “Recent half only” (supported in the main sample); T4 is inconclusive in “Recent half only” (supported in the main sample). T5 gives the same verdict in every run, and the treasury's share is between 86% and 92% in every run. T2 and T4 depend on a few very large deposits and transfers, so the headline marks them inconclusive. A third sample (360 windows, 11,387 transactions) was drawn after the verdict rule was fixed, so it is an out-of-sample check. On its own it gives T1 inconclusive, T2 inconclusive, T3 supported, T4 inconclusive and T5 contradicted: the same as the headline for 4 of 5 tests, and the opposite verdict for none. The headline verdicts were not changed after seeing it. Pooling all three samples gives T1 0.64× (95% CI 0.53× to 0.76×), against 0.70× (95% CI 0.56× to 0.84×) for the first two: still inside the 0.5×–2× band, but nearer its lower edge. All three samples put deposits below the published volume.
A user on another chain deposits; the public contract intents.near keeps the ledger; swaps settle either in the open or on a private contract behind one treasury account; relayers submit nearly every transaction.
| Term | Meaning |
|---|---|
| Intent | A signed statement of the outcome a user wants, such as “at least X of token B for Y of token A”. |
| Solver | A market maker that fills intents from its own inventory. |
| Relayer / signer | The account that submits a transaction and pays the network fee. Test T5 measures how few of them there are. |
| Shield / unshield | Moving funds into or out of the confidential side through the treasury account. |
| Open swap | A swap settled on the public contract (a token_diff event), where anyone can see who gave what for what. |
| Basis point (bps) | One hundredth of a percent. 5 bps of $100 is 5 cents. |
| Take | The share of volume a protocol keeps as revenue. |
| Window / stratum | The period is cut into equal strata; from each, one window of 40 consecutive blocks is downloaded in full. |
| 95% interval | The range holding the middle 95% of results when the sample is re-drawn from itself 2,000 times. |
| Pooled | A precision-weighted average of independent samples. |
| Out-of-sample | Checked on data that did not exist when the rule was written. |
| Source | Where | Used for |
|---|---|---|
| FastNEAR transactions API | tx.main.fastnear.com/v0 | Sampled transactions; exact daily counts |
| NEAR RPC view call | mt_batch_balance_of on intents.near | Treasury holdings |
| 1Click token list | 1click.chaindefuser.com/v0/tokens | Asset ids, chains, decimals, list prices |
| DefiLlama | api.llama.fi, coins.llama.fi | Published volume, fees, revenue; daily prices; peers |
| CoinGecko | api.coingecko.com/api/v3/coins/near | NEAR market value |
| NEAR Intents documentation | docs.near-intents.org/integration/market-makers/confidential-example | Treasury account, private contract, shield and unshield |
| BigQuery public dataset | bigquery-public-data.crypto_near_mainnet_us | Cross-check queries in sql/ (written, not run) |
The repository adds METHODOLOGY.md (estimators, event dictionary, a worked example), TUTORIAL.md (seven hands-on exercises) and SOURCES.md (every endpoint and reference, and what could not be used).