Digital Assets Research · Investment ThesisNEAR Hackathon 2026 · Investment Thesis Track

← Dashboard

Appendix: detail, method and the pre-registered event study

NEAR HACKATHON 2026 · Investment Thesis track · data snapshot to 2026-11-09 · every number below is generated by src/build.py from data/raw/ · this is the appendix to THESIS.md.

The thesis is written to be read in a few minutes. Everything it leaves out is here.

Part B. The detail behind the thesis

B1. The rating in full: five questions, what the price assumes, and the rule

Rating: Hold. Hold means keep NEAR you own and do not add yet. Horizon: the end of 2029, by when what reaches NEAR would have to cover issuance for holders to stop being diluted. First review: 31 March 2027, when the five calls in RATING.md are scored.

Question for a holder What the data shows Reading
Did the trust shocks cost flow? 1Click volume, counted swap by swap, -5% against August in the 28 days from the freeze. Reported volume against its model: -24.3% with the pre-registered comparison venues, +1.0% with a narrower set; neither is distinguishable from noise, and a loss under 35.7% cannot be excluded. 17 of 25 large integrators kept at least half their August volume; fewer individual senders came back. No collapse. A smaller loss is not ruled out.
Did the shocks dent what reaches NEAR? In dollars, no: DefiLlama's revenue ran $72k a day in the 28 days from the freeze, against $59k in the 28 days before and $23k in August. In NEAR the wallets gained 14,492 a day: -23% against the 28 days before (September's record), +11% against August. Not in dollars. In NEAR it fell back from a record to above August.
Is the holder paid? Nothing is paid out. Three wallets gain 13,571 NEAR a day against 86,966 issued: 16%, or 11% without the front-end fund. NEAR trades at 213× annualised Intents revenue. No. Holders are diluted, and the NEAR stays with signers.
Is it growing? By month since Mar 2026 it has run from 6% to 22% of issuance with no steady rise: the last three months averaged 18%, against 11% in the first three. Revenue in dollars grew 3.9× from Mar 2026 to Oct 2026, but NEAR's price rose 3.8×, so the same months bought the same NEAR. Unevenly, and not yet enough to matter.
Can the holder check it, and who controls it? Revenue: yes, the wallets are public. They are moved by 2 of 4 keys (buybacks wallet), 2 of 4 members (1Click fund) and 2 of 5 (front-end fund); no rule in code says what happens to the NEAR. Volume: 13% of it is visible as public swaps, 1Click settles on a permissioned instance, and DefiLlama's volume is NEAR's own dataset. Its growth since August (+44%) is not in the part I can count (1Click -5%). Revenue yes, at the signers' discretion. Volume: only as the operator reports it.

What the price assumes, to the end of 2029. NEAR trades at 213× annualised Intents revenue. The table is arithmetic, not a forecast: the change in NEAR's price if Intents revenue grows at the stated rate and the market pays the stated share of today's multiple, with supply growing at HSP-029's target rate.

Intents revenue growth a year Multiple falls to a quarter (53×) Multiple halves (107×) Multiple holds (213×)
0% -76% -52% -5%
50% -15% +70% +241%
100% +110% +321% +742%

The rule (RATING.md, timestamped; computed in src/build.py):

Rating When Now
Avoid Two or more tripwires broken (order flow counts as broken if it breaks under either set of comparison venues), or the three wallets hold less NEAR than 28 days earlier 1 of 3 broken; wallets growing. With the comparison venues as pre-registered the order-flow tripwire reads -34.5% against a limit of -35.7%: still holding, by about a point
Buy Not Avoid, and the wallet inflow averages 21,700 NEAR a day or more over the latest three full months (25% of today's issuance) 15,486 a day over the last three full months, 17.8% of issuance (the 16% elsewhere is the last 28 days)
Hold Otherwise Hold

Not in the rule, but reviewed if they happen (added 2026-11-11):

B2. What is at stake, and the tripwires

Intents revenue, last 30 days $1.8M
Annualised $22.3M
NEAR market cap, 2026-11-09 $4.75B
Market cap ÷ annualised Intents revenue 213×

At 213× revenue, durability of today's flow cannot justify the price. The price needs Intents to keep growing. What this study adds is that the two most likely interruptions to that growth have now happened once, and neither caused a collapse.

Tripwires: when this thesis is wrong

Each is recomputed on every build, over the latest 28 days, with limits fixed by the calm period. The dashboard shows the same values. The order-flow and Zcash limits are the worst tenth of calm-period windows, so each breaks by chance in about one window in ten; the take-rate limit is the calm-period average. One broken tripwire is therefore not unusual, which is why the rule needs two. Applied to the 71 28-day windows of the calm period (overlapping; about 3 independent), at least one would have been broken in 30% of them and two or more in 6%.

Tripwire Rule Now Limit Status
Order flow against the model 28-day abnormal volume stays above the worst tenth of calm-period windows +0.5% -29.5% holding
The same, with the comparison venues as pre-registered (counts in the rule) as above -34.5% -35.7% holding
Take rate fees per dollar of volume stay above the calm-period average 15.0 bps 13.6 bps holding
Zcash held on Intents 28-day change in ZEC units stays above the worst tenth of calm-period windows -19.4% -17.4% broken

B3. Detail for Part 1: the flow after a freeze and a hack

Two tests of users' trust arrived within three days of each other.

Both hit the thing that makes Intents revenue worth a multiple: users trusting it with funds. That makes the week a natural experiment on durability.

Who routes the flow: integrators and large swaps

Added after seeing results. Source: every successful 1Click swap of $10,000 or more from 2026-08-01 to 2026-11-09, 64,591 swaps, from the NEAR Intents Explorer API (src/fetch_explorer.py). The repository stores them as totals by day and integrating app (the swap's referral), and as counts of sender addresses that came back; no per-swap record or address is stored (see the note on API terms in the README).

August 28 days from the freeze After the switch
Large swaps a day 626 574 597
Their volume a day $28.9M $28.5M $27.6M
Share of all 1Click dollars 75% 78% 75%
Integrators routing large swaps 66 81 64
Largest integrator (swapkit), share of dollars 35% 40% 37%
Five largest integrators, share 78% 63% 66%
No integrator named 11% 20% 14%
Integrator August 2026-09-08 to 2026-09-28 28 days from the freeze After the switch
swapkit $10.0M $14.6M $11.4M $10.3M
lifi $2.0M $3.9M $2.1M $4.4M
new.intents-referral.near $6.8M $0.4M $0.5M $0.8M
zodl $1.2M $4.7M $2.4M $1.5M
rango $2.6M $2.9M $1.4M $1.3M
No integrator named $3.3M $6.2M $5.6M $4.0M

The four after swapkit carried less in October than in August. Most of that is one label, new.intents-referral.near, whose volume had already gone in the three weeks before the freeze, while swaps naming no integrator rose. I cannot tell a relabelling from a loss. - The flow is concentrated. One integrator, swapkit, routes more than a third of large-swap dollars. That is a dependency a holder should know about: a routing decision at one company could move more volume than the freeze did. - Individual senders came back less. Of addresses that sent a large swap in the 28 days before the freeze, 8.4% sent another in the 28 days after (9,146 addresses). At the 4 start dates the data allows before the freeze (2026-08-29 to 2026-09-01), the rate was 10.2% to 10.9%. For addresses active on 5 or more days: 59% against 68% to 75% (94 addresses). This agrees with appendix A6, on a different population. - Limits. The calm comparison is one window: its 4 start dates overlap almost entirely, so there is no p-value, and its 28 days after include the September forum post. A sender is an origin-chain address; chains that use a new address per payment make people look new, and 21% of rows have no sender. An integrator is whatever the swap's referral field says.

The flow held and the apps that route it kept routing it, while fewer of the individual large senders came back. The customer that decides is the integrator.

What the pre-registered model adds

In one line: an underpowered null, and the estimate depends on the comparison venues. With the venues as pre-registered, reported volume was -24.3% against its model (p = 0.34; detection threshold -35.7%). With the narrower set I chose after seeing which venues had zero-volume days, it was +1.0% (p = 0.50; threshold -29.5%). Almost all of the difference is one venue, the 0x aggregator: without it the pre-registered set gives -8.2%. The pre-registered verdict is the same under both: no collapse, but too imprecise to clear the 25% bar. So the model cannot say whether Intents lost a quarter of its flow or none. The direct counts can say more: 1Click volume counted swap by swap (Part 2) and swaps of $10,000 or more (Part 1) were within a few percent of August.

What the freeze bears got right and wrong

B4. Detail for Part 2: the swaps left public view

On NEAR's chain the share of Intents volume visible as public swaps was 43% in the summer, 29% in the four weeks after the freeze and 13% from 2026-10-27 (appendix A7). The second step has a documented cause, traced below swap by swap. This part was added after seeing results; the switch date comes from NEAR Intents' changelog, not from this data.

NEAR Intents' changelog, 27 October 2026: "From October 27, 2026, 1Click swaps settle confidentially. The API is unchanged." The swap settles on FAR (the NEAR Private Shard), "a permissioned instance of the NEAR protocol operated by a small validator set with no public networking". Shielding moves tokens to the Treasury account 51e8f94d…7cbe on intents.near; unshielding releases them. The 1Click swap's nearTxHashes then hold "the hashes for the shield and the unshield instead" of the swap. The switch date used below comes from the changelog, not from this data.

Swap by swap. 300 successful 1Click swaps were drawn at random on each of five days from the NEAR Intents Explorer API (src/fetch_explorer.py) and followed through their NEAR transactions to what intents.near logged (sql/intents_swap_trace.sql, NEAR BigQuery). The days: one in August, one after the forum post, the days either side of 27 October, and one a week later.

12 Aug 15 Sep 26 Oct 28 Oct 5 Nov
Successful 1Click swaps that day 24,346 15,972 17,372 15,518 21,017
Sampled swaps found on NEAR's chain 100% 100% 100% 100% 100%
Logged a public swap (token_diff) 98% 97% 89% 83% 7%
the same, by dollars 100% 97% 98% 91% 15%
Moved funds through the Treasury 0% 0% 0% 6% 87%
the same, by dollars 0% 0% 0% 9% 76%
NEAR transactions per swap (median) 2 2 2 2 4
Deposited from a user's confidential balance 0% 0% 0% 0% 0%

Day by day (sql/intents_confidential_daily.sql): receipts executed by intents.near, and daily volume, averaged by period.

Period Receipts logging a public swap Receipts moving funds through the Treasury 1Click volume (Explorer) Public swap volume (BigQuery) DefiLlama volume
2026-08-01 to 2026-08-31 33,121 6,002 $38.7M $40.5M $89.6M
2026-09-08 to 2026-10-26 23,532 15,214 $43.0M $47.8M $145.4M
2026-10-28 to 2026-11-09 8,881 61,051 $36.9M $15.0M $129.2M

B5. Detail for Parts 3 and 4: what reaches NEAR, and who controls it

This thesis judges NEAR by what NEAR Intents sends back to it: cross-chain swap revenue that arrives as NEAR in three wallets, labelled a buyback since 23 February 2026. DefiLlama credits it to NEAR's holders, and it can be measured onchain. I do not test whether NEAR's price follows it; the claim is narrower, that a holder's case for years rests on that revenue lasting and growing.

Part 3 uses the same snapshot as the rest but was added after the pre-registration (deviation 5).

B6. Evidence against, in full

B7. Deviations from the pre-registration

  1. Donors. The pre-registered rule drops a donor only for missing days in the estimation window. Applied literally it keeps thorchain-dex, chainflip-amm, maya-protocol, socket-protocol, jumper-bridge-aggregator, 0x-bridge-aggregator, rango and gives -24.3%. I narrowed it after looking at the series, before computing any outcome: I dropped donors with zero-volume days (THORChain and Maya; LI.FI has missing days and falls to the rule itself) and 0x, whose history does not cover the placebo windows. My stated reason for the zero-day drop, that a zero makes the log index undefined, was wrong: the index averages the donors before taking logs. The narrower set (chainflip-amm, socket-protocol, jumper-bridge-aggregator, rango) gives +1.0%. 0x's mean daily volume in the event window was 8.4× its estimation-window mean, a launch curve rather than a market-wide factor, which is why I still think it is a poor comparator; that argument was made after seeing the results. Appendix sections A2 to A7, the tripwires and archive/PREDICTIONS-2026-11-10.md use the narrower set. Both estimates are reported wherever the volume result is stated.
  2. Placebo dates start 2026-03-10, not 2026-01-01, because CoinGecko's free daily history covers only the last 365 days.
  3. On-chain sample (H5) replaced. The keyless block archive was too slow for the planned random block sample. H5 instead uses every transaction to intents.near from NEAR's public BigQuery dataset, which is a census rather than a sample. The 2-day and 5-day user tiers are post hoc. The withdrawal-to-deposit ratio was not computed.
  4. Scroll and Plasma are not reported by DefiLlama, so H3 uses nine of the eleven paused networks.
  5. Added after seeing results: the robustness grid, the NEAR/ZEC/other balance decomposition, the long-term section, the Confidential Intents trace and the Explorer API data (Part 2), the integrators and large swaps (Part 1), the measured buyback wallets and the pace test, the public-visibility analysis (appendix A7), the rival comparison, the hack-date sensitivity, the new/returning account split, the valuation multiple, the fee-timing check in H2 and the tripwires. None of these change a pre-registered verdict.
  6. Position. archive/PREDICTIONS-2026-11-10.md names make fetch && make fetch-bq && make as its scorer; scoring later also needs the end date set: make fetch && END_DATE=2027-03-31 make fetch-bq && LAST_DAY=2027-03-31 make (only make fetch is strictly required, since P1 to P3 use DefiLlama). It also contains one error that cannot be edited without breaking its timestamp: P2's failure note says growth would have "stalled for 18 months"; if P2 fails in March 2027, the last record will be six months old and the first peak sixteen. Its first line also says "Written 2026-11-11", but its timestamp is 14:41 UTC on 2026-11-10: the date is wrong, and the timestamp is the date that counts. The pre-registration maps outcomes to a position only when the detection threshold is under 25%. It was not, so the position, its tripwire rule and the predictions in archive/PREDICTIONS-2026-11-10.md are my judgment, set after seeing the results.

  7. Rating changed from Long to Hold. archive/PREDICTIONS-2026-11-10.md (timestamped 2026-11-10) says "Long NEAR". On 2026-11-11 I measured the three revenue wallets and found the NEAR reaching them is 16% of issuance, uneven by month, and paid to no one. I changed the rating to Hold and wrote one current file, RATING.md, with the rule, the three earlier predictions carried over and two further calls, timestamped with OpenTimestamps (RATING.md.ots). The first version is kept unchanged in archive/ so its proof still verifies; its exit to neutral is the rule's Avoid. The rule was written after seeing the wallet data, so its fit to the past months is not evidence; only its calls on later data are.

Sources

Part A. The pre-registered event study

Rules fixed in advance

What is and is not pre-registered:

Fixed before the result Evidence of when
The five tests and their decision rules (PREREGISTRATION.md) Yes, by my statement Bitcoin block 975284, mined 29 minutes after the data download began. It shows the plan was frozen early, not that it came first.
Three predictions to 2027-03-31 (first version, archive/PREDICTIONS-2026-11-10.md; carried into RATING.md as P1 to P3) Yes: scored only on later data Bitcoin block 975308, 2026-11-10
The rating rule and two more calls, C1 and C2 (RATING.md) Calls yes; the rule was written after seeing the wallet data OpenTimestamps, 2026-11-11
The rating itself No. Long on 2026-11-10, Hold on 2026-11-11 after the wallets were measured (deviation 7)
Parts 1 to 3 and appendix A6 and A7, the wallets, the long-term case No. Added after seeing results (deviation 5)

I wrote the tests and decision rules in PREREGISTRATION.md before downloading any daily series. That ordering is my statement. What can be checked is the OpenTimestamps proof (PREREGISTRATION.md.ots): it anchors the file in Bitcoin block 975284, mined at 10:15 UTC on 2026-11-10. The download began 29 minutes earlier (09:46 UTC, data/raw/MANIFEST.json). So the plan was frozen within half an hour of the download: any revision after seeing the data had at most that long. The proof alone does not show the plan came first.

Pre-registered verdict: no collapse, but too imprecise to clear the 25% bar. With the donors as pre-registered, 28-day volume came in -24.3% against the model (placebo p = 0.34), with a detection threshold of -35.7%: a loss must be at least that large just to reach p = 0.10. With the narrower set, +1.0% (placebo p = 0.50; threshold -29.5%). The pre-registration required a threshold under 25% before calling the durability objection weakened. Neither set meets it, so I do not make that claim.

Rating: Hold. The pre-registration maps outcomes to a position only when the detection threshold is under 25%; it was not, so the rating is mine (deviations 6 and 7). archive/PREDICTIONS-2026-11-10.md, timestamped on 2026-11-10, set it at Long with two exits: neutral if a second tripwire breaks, or if Intents has not set a new monthly volume record by 2027-03-31. The next day I measured what reaches NEAR and changed the rating to Hold, by a rule written down and timestamped in RATING.md. 1 of 3 tripwires is broken now.

Predictions. archive/PREDICTIONS-2026-11-10.md was timestamped at 14:41 UTC on 2026-11-10 (Bitcoin block 975308), before the BigQuery data behind appendix A6 and A7 was fetched (14:55 UTC), so it predates the onchain findings. It commits the thesis to three dated, falsifiable calls to 2027-03-31, scored only on data after 2026-11-10 and timestamped with OpenTimestamps in Bitcoin block 975308 (archive/PREDICTIONS-2026-11-10.md.ots): order flow stays above its limit, Intents sets a new monthly volume record, and the take rate stays above its calm-period average.

A1. Volume: no detectable loss, size unknown (H1, primary)

The model fits log daily Intents volume on an index of comparison venues (the narrower set: chainflip-amm, socket-protocol, jumper-bridge-aggregator, rango; the pre-registered set is reported beside it) and on NEAR and ZEC spot volume, over 2026-06-01 to 2026-09-07 (R² = 0.72). Inference compares the real event window with 155 pseudo-events from calm periods.

Horizon from 2026-09-29 Abnormal volume
7 days -10.3%
14 days +3.5%
28 days (pre-registered horizon), narrower donor set +1.0%
28 days, donors as pre-registered -24.3%
to 2026-11-09 +1.5%

A2. Fees held up, but the premium predates the shocks (H2)

Fees came in +25.2% against the fee model over the event window (placebo p > 0.99). That is not an effect of the shocks. Abnormal fees were already +28.5% in the week before 2026-09-29, and fell to -1.3% after the event window.

The take rate tells the same story. It was 13.6 bps in the calm period, 16.4 bps in the three weeks before the shocks, 16.2 bps in the event window and 14.4 bps since. So the shocks did not force Intents to cut prices to keep users. The later decline is what the take-rate tripwire watches. A fee-schedule change would produce the same pattern, and I did not find or verify one.

A3. Balances on the paused networks dipped, then recovered (H3, exploit channel)

Balances are measured in token units at fixed 2026-09-28 prices, so price moves cannot pose as flows.

A4. Zcash holders did not flee, at first (H4, freeze channel)

Zcash is the asset most exposed to a freeze story: it was 18.3% of balances on 2026-09-28, and the 50-day hold involved a ZEC swap.

Window ZEC units held Calm-period 10th percentile
14 days from 2026-09-07 (forum post) +0.7% -11.7%
28 days from the freeze (balances from 2026-09-28, the day before) -6.9% -17.4%
Latest 28 days (to 2026-11-09) -19.4% -17.4%

The pre-registered freeze-channel hypothesis is not supported: ZEC stayed within normal variation after both events. The drain came later. In the most recent 28 days ZEC units fell past the calm-period limit, so it is the tripwire that is now broken. It is too late to blame on the freeze with any confidence, and I have no test that separates it from the ZEC price cycle.

The opposite of the hypothesis did happen in the freeze window. Non-ZEC balances changed -15.0% in the 28 days from 2026-09-28, beyond their calm-period limit of +0.2%. Appendix A5 shows that this was mostly NEAR leaving after the September rally, not a broad exit.

A5. Where balances actually moved

Outside ZEC, the largest move was NEAR. NEAR units held on Intents rose sharply during the September rally and four weeks after 2026-09-28 they had changed by -28.9%. Everything that is neither NEAR nor ZEC was +2.6%. Total balances at fixed prices were still +26.7% above the end of the calm period. This decomposition is exploratory, not pre-registered.

A6. Onchain: established accounts pulled back (H5, exploratory)

Source: every transaction sent to intents.near from 2026-03-01 to 2026-11-09, from NEAR's public BigQuery dataset (sql/intents_signers_daily.sql). 82.6% of those transactions are signed by intents.near itself (relayed transactions, including 1Click), so they show no individual user and are excluded. What is left is 30,680 accounts that sign their own transactions: self-custody users, solvers and escrow contracts, a median of 130 active on a day.

The pre-registered measure is the re-sighting rate: the share of accounts active in the 28 days before 2026-09-29 that are active again in the 28 days after, against the same rate at 136 calm-period dates.

Accounts active before the shocks Accounts Came back Calm-period median Calm-period 10th percentile p
On at least 1 day (pre-registered) 8,545 5.8% 8.8% 7.3% < 0.01
On at least 2 days (repeat users) 594 44.3% 55.5% 50.8% < 0.01
On at least 5 days (heavy users) 135 80.7% 81.9% 73.0% 0.35
First seen in those 28 days (new) 7,972 3.5% 3.9% 0.33
Seen before those 28 days (returning) 573 38.4% 52.9% < 0.01

So the flow that held is mostly relayed and heavy-user flow. The accounts that pulled back are established ones that sign their own transactions.

A7. The public record left (exploratory, onchain)

Two measures built from the same intents.near events in NEAR's public BigQuery dataset.

Public swap volume. Every token_diff swap event logged by intents.near lists each party's balance change. Summing the stablecoin side (ten USDC and USDT tokens on Ethereum, Tron, Solana, Base, Arbitrum and NEAR) gives the dollar value of public swaps without a price feed (sql/intents_stable_volume_daily.sql). A stablecoin-to-stablecoin swap shows a stablecoin received on both sides, so half of that part is removed: 58% of the gross figure is such swaps, and counting both sides would put the summer share at 59% instead of 43%. Divided by DefiLlama's total, it gives the share of volume visible as public swaps.

Period Visible as public swaps
2026-06-01 to 2026-07-08, before Confidential Intents opened to every app 44.3%
2026-07-08 to 2026-09-07, after it opened 42.7%
2026-09-08 to 2026-09-28, after the Zcash forum post 36.7%
2026-09-29 to 2026-10-26, after the freeze and the exploit 29.3%
2026-10-27 to 2026-11-09 12.6%

Event counts. Every event intents.near logs, by name and format version, and every code deployment to it (sql/intents_event_counts_daily.sql, sql/intents_deploys.sql). Daily averages:

Period Public swaps (token_diff) Executed intents Transfers Deposits (mt_mint)
2026-08-01 to 2026-09-07 119,511 46,107 56,681 29,216
2026-09-08 to 2026-09-28 78,240 47,228 71,911 24,425
2026-10-08 to 2026-10-26 54,114 46,128 69,863 24,559
2026-10-27 to 2026-11-09 24,689 89,934 124,369 25,665