near-toll-audit

main @ 5cf80e518590 · 16 commits since 2026-11-01 13:01 UTC · last 2026-11-13 08:35 UTC
git clone https://code.swiftbotlab.workers.dev/near-toll-audit.git

Read-only mirror, served as static files. Full history is in the clone. refs

131 files
.github/workflows/refresh.yml3,918 B.gitignore91 BLICENSE1,071 BMETHODS.md7,658 BREADME.md9,192 BSECURITY.md1,286 BTHESIS.md11,099 Bdocs/app.js48,955 Bdocs/assets/hero.png120,296 Bdocs/charts.js18,330 Bdocs/data/charts.json105,014 Bdocs/data/grades.json4,937 Bdocs/data/metrics.json47,390 Bdocs/data/model.json10,668 Bdocs/data/status.json4,979 Bdocs/index.html21,758 Bdocs/model.js3,247 Bdocs/styles.css11,889 Bdocs/theme.js181 Bdocs/thesis.html13,334 Bledger/grades.jsonl1,158 Bpipeline/analyze.py87,551 Bpipeline/analyze_explorer.py11,068 Bpipeline/bq.py5,720 Bpipeline/build.py13,133 Bpipeline/common.py6,124 Bpipeline/fetch_chain.py7,635 Bpipeline/fetch_explorer.py7,584 Bpipeline/fetch_public.py16,170 Bpipeline/freeze.py1,448 Bpipeline/grade.py4,055 Bpipeline/model.py6,559 Bpipeline/run_bq.py3,335 Bpipeline/sql/01_supply_daily.sql1,045 Bpipeline/sql/01b_supply_recent.sql1,155 Bpipeline/sql/02_circulating_supply.sql257 Bpipeline/sql/03_balances_daily.sql755 Bpipeline/sql/04_cohort_matrix.sql977 Bpipeline/sql/05_signer_tiers_monthly.sql1,571 Bpipeline/sql/06_top_signers_monthly.sql654 Bpipeline/sql/07_new_account_funders.sql1,513 Bpipeline/sql/08_burn_by_contract.sql584 Bpipeline/sql/09_intents_flows_weekly.sql1,031 Bpipeline/sql/09b_intents_flows_recent.sql1,155 Bpipeline/sql/10_intents_destinations_monthly.sql1,798 Bpipeline/sql/11_top_holders.sql638 Bpipeline/sql/12_contracts_oct.sql592 Bpipeline/sql/13_withdrawal_size_week.sql1,520 Bpipeline/sql/13b_withdrawal_size_prev_week.sql1,457 Bpipeline/sql/14_destination_retention.sql1,360 Bpipeline/sql/15_stake_history.sql1,352 Bpipeline/sql/16_intents_signers_oct.sql337 Bpipeline/sql/17_kaiching_exit.sql707 Bpipeline/sql/18_treasury_outflows.sql517 Bpipeline/sql/intents_tokens.txt9,268 Bpipeline/sql/token_prices.csv10,832 Bpipeline/verify_claims.py1,614 Braw/MANIFEST.jsonl40,456 Braw/bigquery/01_supply_daily.csv.gz93,146 Braw/bigquery/01b_supply_recent.csv.gz2,026 Braw/bigquery/02_circulating_supply.csv.gz26,250 Braw/bigquery/03_balances_daily.csv.gz90,939 Braw/bigquery/04_cohort_matrix.csv.gz36,526 Braw/bigquery/05_signer_tiers_monthly.csv.gz3,129 Braw/bigquery/06_top_signers_monthly.csv.gz2,521 Braw/bigquery/07_new_account_funders.csv.gz285,326 Braw/bigquery/08_burn_by_contract.csv.gz4,076 Braw/bigquery/09_intents_flows_weekly.csv.gz217,200 Braw/bigquery/09b_intents_flows_recent.csv.gz25,087 Braw/bigquery/10_intents_destinations_monthly.csv.gz428 Braw/bigquery/11_top_holders.csv.gz18,894 Braw/bigquery/12_contracts_oct.csv.gz8,612 Braw/bigquery/13_withdrawal_size_week.csv.gz270 Braw/bigquery/13b_withdrawal_size_prev_week.csv.gz276 Braw/bigquery/14_destination_retention.csv.gz548 Braw/bigquery/15_stake_history.csv.gz775 Braw/bigquery/16_intents_signers_oct.csv.gz1,129 Braw/bigquery/17_kaiching_exit.csv.gz224 Braw/bigquery/18_treasury_outflows.csv.gz198 Braw/bigquery/MANIFEST.jsonl6,720 Braw/explorer/MANIFEST.json1,715 Braw/explorer/panel_daily.csv.gz2,193 Braw/explorer/panel_partner.csv.gz23,073 Braw/explorer/panel_recipient.csv.gz4,316 Braw/explorer/panel_routes.csv.gz72,710 Braw/explorer/panel_sizes.csv.gz9,478 Braw/latest/_fetch_status.json.gz1,085 Braw/latest/cg_markets.json.gz3,166 Braw/latest/cg_near.json.gz171 Braw/latest/chain_control.json.gz565 Braw/latest/chain_governance.json.gz989 Braw/latest/chain_protocol.json.gz327 Braw/latest/chain_supply_crosscheck.json.gz221 Braw/latest/chain_validators.json.gz10,393 Braw/latest/chain_wallets.json.gz235 Braw/latest/coinbase_near.json.gz8,194 Braw/latest/comps_holder_revenue.json.gz660 Braw/latest/etf_nrr.json.gz76 Braw/latest/github_activity.json.gz1,243 Braw/latest/llama_bridge_aggregators.json.gz673 Braw/latest/llama_chain_tvl.json.gz9,492 Braw/latest/llama_dex_market.json.gz638 Braw/latest/llama_intents_fees.json.gz9,235 Braw/latest/llama_near_chain_fees.json.gz14,240 Braw/latest/llama_near_tvl.json.gz17,509 Braw/latest/llama_peer_chain_fees.json.gz474 Braw/latest/llama_rail_fees.json.gz404 Braw/latest/llama_rail_volumes.json.gz33,462 Braw/latest/llama_stable_chains.json.gz3,336 Braw/latest/llama_stable_near.json.gz14,194 Braw/latest/nearblocks_charts.json.gz347,950 Braw/latest/nearblocks_stats.json.gz303 Braw/latest/official_revenue_page.json.gz61,804 Braw/latest/oneclick_tokens.json.gz10,550 Braw/latest/price_near_daily.json.gz19,677 Braw/latest/token_prices_weekly.json.gz37,041 Braw/latest/wallet_history.json.gz2,416 Brequirements-bq.txt13,730 Brun.py4,548 Bsite/styles.css11,889 Bsite/template.html18,592 Btests/test_model.py3,011 Btests/test_pipeline.py7,483 Bthesis/README.tmpl.md9,984 Bthesis/THESIS.tmpl.md14,247 Bthesis/grades_frozen.json4,937 Bthesis/incidents.json537 Bthesis/kill_criteria.json3,773 Bthesis/metrics_frozen.json47,390 Bthesis/model_frozen.json10,668 Bthesis/scenarios.json4,949 B

NEAR Toll Audit

An evidence-first investment thesis on NEAR that anyone can re-run, built at NEAR HACKATHON for the Investment Thesis track (thesis).

Dashboard

What it is

NEAR's investment case now rests on NEAR Intents. Most public numbers repeat one data source and stop at volume. This project asks the questions an investor would ask next: is the volume real, who keeps the fee, does any of it reach the token, and can the toll be raised?

It is a one-command pipeline from public data to a thesis, a live dashboard, an editable valuation model and kill criteria that grade themselves.

This is research, not investment advice. We make no claim about holdings.

Conclusion: chain data through 2026-10-31, prices and fees 2026-11-10

NEAR built a real toll road. The token does not own the tolls yet.

QuestionAnswerEvidence
Is the flow real?Settled flow yes, user demand is a rangeEnd-user demand is about 16% to 24% of reported volume, leaving out the 100 or the 10 largest addresses. One-way on-chain flow, 57%, is a ceiling and includes solver rebalancing
Is Intents leading?Yes, among native swap rails with public data64% share over 13 weeks, down from 78% in June
Who keeps the fee?Mostly wallets and partners, less than beforeNEAR kept 36% of gross fees in 30 days, 19% all time; partners, wallets and solvers kept the rest
Does it reach the token?Partly, by choice, not by rule4.23M NEAR held in two wallets, burn plus revenue equalled 20% of issuance in October 2026 at best
Can the take rise?InconclusiveIntervals do not rule out a 25% loss of volume against rivals
What is priced in?3x to 12x today's volume$3.60 depends on what you pay for the chain
What is it worth?$2.91 on our weights, sensitive to themBear $0.57, base $2.05, bull $8.94. $3.67 on a 30% bull weight. Market $3.60

The table above, the memo, the live dashboard and the submission text all come from this one snapshot. python3 run.py pulls fresh data and moves the dashboard; only pipeline/freeze.py issues a new memo. Kill rules T6 and A5 were added on 2026-11-12 after review and graded on this same snapshot; the ledger records when each row entered.

Try it

You need Python 3.9 or newer. No install, no keys, no network for steps 1 to 4.

DoSee
git clone https://code.swiftbotlab.workers.dev/near-toll-audit.git && cd near-toll-audit && python3 run.py --offlinesnapshots verified: N ok, 0 bad, then every step at exit 0 and every test ok, in under a minute
python3 -m http.server -d docs 8000, then open http://localhost:8000The same dashboard, built from the snapshots on your disk
In thesis/scenarios.json, set the base case cagr to 0.630, then run python3 pipeline/analyze.py && python3 pipeline/model.py"base" comes out at about $3.60, the market price: this is the reverse DCF
Change one byte in any file in raw/latest/, then run python3 run.py --offlineThe run stops with HASH MISMATCH
Change any number in THESIS.md, then run python3 pipeline/verify_claims.pyMISMATCH THESIS.md, because the memo is rendered from frozen metrics
Open the dashboard, go to Valuation, drag Volume growth a yearValue per NEAR, the reverse DCF and the heatmap update at once
Open the dashboard, go to Kill listEleven criteria with dates and thresholds, each graded by code
python3 run.pyA live refresh from every keyless source, about eight minutes

How the fee numbers fit

All from revenue.near.org, so the differences are windows, not sources. NEAR's 30-day split covers the 30 days to the pull on 2026-11-10, not calendar October 2026, which is why it differs from the monthly series.

NumberValueWindow and formula
Gross fee16.0 bps, or $0.160 per $100October 2026: gross fees / volume
NEAR's share of gross fees35.9%NEAR's own 30-day split (front end + partners + quote improvement)
Reaches NEAR per $100$0.057 (5.74 bps)$0.160 x 35.9%
Captured rate, one month6.28 bps, or 39.2% of the gross feeOctober 2026: revenue $2.5M / volume
Captured rate, three months (kill row T3)4.65 bpslast three full months: revenue $5.6M / volume
Revenue a year, run rate (used for the 157x market-cap multiple)$30MOctober 2026 x 12
Revenue a year, annualised (kill row A2)$22.3Mlast three full months x 4

What is different here

How it works

fetch_public.py  keyless APIs ──────┐
fetch_chain.py   NEAR RPC ──────────┤
run_bq.py        BigQuery SQL ──────┼─> raw/ (date + sha256) ─> analyze.py ─> metrics.json ─┬─> model.py ─> model.json
fetch_explorer.py swap sample ──────┘                                       charts.json   ├─> grade.py ─> ledger/grades.jsonl
                                                                                           └─> build.py ─> docs/ (static site)

.github/workflows/refresh.yml can rerun this every six hours on a runner. The public copy is a static build, and its header and footer name the snapshot dates. If a source fails, its last good snapshot stays and the page footer names it.

Data sources

SourceKeyUsed for
NEAR RPC, FastNEAR, archival RPCNoneProtocol parameters, validators, wallets, contract views
NEAR BigQuery public datasetFree Google accountHeaders, signers, cohorts, funders, gas, token flows
NEAR Intents Explorer APIFree read-only JWTSwap-level volume, partners, fees, user cost
DefiLlamaNoneIntents volume and fees, rival rails, chains, stablecoins, comps
revenue.near.orgNoneThe official claims we test
CoinGecko, CoinbaseNonePrices, market caps, a price cross-check
NearBlocksNoneLong daily series
GitHub APINoneCore repo activity
nrretf.comNoneETF holdings

To refresh the keyed sources, set GOOGLE_APPLICATION_CREDENTIALS and run python3 run.py --bq, or set INTENTS_JWT and run python3 pipeline/fetch_explorer.py, about four hours, then python3 run.py --offline --explorer. Swap rows stay out of git because of size. Aggregates and a sample manifest are committed, and the seeded sampling lets anyone draw the same swaps.

Repo map

PathWhat
run.pyThe one command
pipeline/Fetchers, SQL, analysis, model, grader, site build
raw/Snapshots with dates and sha256
thesis/Scenarios, kill criteria, memo template, frozen metrics
ledger/grades.jsonlHash-chained grading history. Public git history is what makes a rewrite visible
docs/The published site
tests/Parity between the Python and browser models, invariants, tamper tests

AI tools

The code, SQL and first drafts of the memo were written with Claude Code (Anthropic's coding assistant) under our direction. The questions, data choices, kill thresholds and conclusions are ours. Every number is computed by the code in this repo from the committed snapshots, pipeline/verify_claims.py fails if the memo carries a hand-typed number, and the tests in tests/ run in the one command above. Nothing in the pipeline calls an AI model.

Libraries

Python standard library for everything except a live BigQuery refresh, which uses cryptography 50.0.2 to sign the Google login. Node runs only the model parity test, and that test is skipped if Node is missing. The site uses no third-party scripts, and its charts are hand-written SVG.

Hackathon disclosure

All code here was written inside the hackathon window, in this new repo, with no earlier baseline. This team's other NEAR HACKATHON project is Duly, pay-by-link invoices that settle on NEAR. The two are independent.

License

MIT.