金库流出能衡量 DAO 支出吗?一项预注册验证

作者:Irina_cp0x

基于12个协议年(2023-2025)的预注册检验发现,自动计算的金库流出与 DAO 报告支出相差约 2.2 倍。

标签: treasury, DAO spending, on-chain data, pre-registered study, DAO

This cp0x study tested whether treasury outflows computed automatically from public data can stand in for the spending that DAOs (decentralised autonomous organisations) report. The benchmark is 12 protocol-years of reported spending for Lido, Aave, Sky and Uniswap in 2023 to 2025, frozen with a sha256 hash before any outflow was computed. The primary transfer-based proxy (P1, Ethereum mainnet) misses the reported figure by a median factor of 2.21, against a pre-registered limit of 1.4, and only Lido has a median ratio inside the allowed band of 0.5 to 2. The primary balance-based proxy (B1, DefiLlama daily balances on all chains) covers only 9 protocol-years, below the required 10, with a median error factor of 2.12. Neither family passes, so by the frozen decision rule a planned cp0x study of how DAOs allocate resources continues as case studies. The gaps have structural causes that differ by protocol and that no scalable rule removes.

Key findings

  • In this cp0x validation (Lido, Aave, Sky and Uniswap, 12 protocol-years, 2023 to 2025), the transfer-based treasury outflow proxy P1 differed from reported DAO spending by a median factor of 2.21 (median absolute log ratio 0.792 against a limit of 0.336).
  • In the same study, the median ratio of P1 to reported spending was 6.36 for Uniswap, 2.52 for Aave, 1.55 for Lido and 0.15 for Sky, so only 1 of 4 protocols fell inside the allowed band of 0.5 to 2.
  • In the same study, P1 matched the direction of change in reported spending in only 5 of 8 year pairs, with a Spearman rank correlation of −0.15.
  • The balance-based proxy B1, built from DefiLlama daily treasury balances, covered only 9 of the 12 protocol-years because the balance series start in February 2023 (Sky in October 2023), and its median error factor was 2.12.
  • In 2023 to 2025 the mismatch had structural causes, for example Uniswap DAO funding the Uniswap Foundation in tranches ($42.7M in 2023, about $138M of UNI in 2025) and Sky minting payments directly to recipients outside the treasury.
  • A manually cleaned diagnostic version of the transfer proxy still had a median error of about 2.0 times (0.714 log points), so accurate on-chain spending figures would need address-by-address labelling of each protocol.

Study at a glance

Item Value
Question Does an automatic treasury outflow track reported DAO spending well enough to use at scale?
Sample 12 protocol-years in 4 protocols (3 each for Lido, Aave, Sky, Uniswap); 9 covered in family B; Olympus screened out
Period 2023-01-01 to 2025-12-31 (Lido first unit May to December 2023)
Unit of returns Not applicable; the unit of comparison is r = proxy outflow (USD) / reported spending (USD)
Benchmark or control Realised spending from protocol or commissioned financial reports
Data sources Routescan, DefiLlama treasury and coins APIs, DefiLlama-Adapters, protocol reports
Method Two proxy families (transfers P, balances B) tested on accuracy, bias, direction of change and coverage
Pre-registration Method frozen 2026-10-07T09:18:12Z, sha256 4dfa38a8…0815; benchmark frozen 2026-10-07T09:31:26Z, sha256 16882766…e9f6
Independent review Yes, 2026-10-07; one bug fixed and several explanations corrected, verdict unchanged
Main verdict Both families fail; the planned study of DAO resource allocation becomes case studies and no new proxy is designed

Question and motivation

A planned cp0x study asks how DAOs allocate resources and whether spending is followed by growth in fees, market share and token price. Public reports of realised spending for two years or more exist for only five of the sixty largest protocols in the sample. The only way to get spending data for a large sample would be to estimate it from on-chain treasury outflows.

Before building a study on that estimate, we tested it against the figures DAOs publish themselves, under rules frozen in advance.

Data

Source What was used URL Access date
Protocol financial reports Realised spending, 12 benchmark rows Lido forum, Aave Insights (TokenLogic), Steakhouse, Sky Frontier Foundation, Uniswap Foundation (exact URLs in data/reported_spending.csv) 2026-10-07
DefiLlama-Adapters registries/treasury.js, commit 07a9a470, treasury address sets https://github.com/DefiLlama/DefiLlama-Adapters 2026-10-07
Routescan API ERC-20 transfers, normal and internal transactions, blocks 16308190 to 24136052 https://api.routescan.io/v2/network/mainnet/evm/1/etherscan/api 2026-10-07
DefiLlama coins API Daily USD prices by token address https://coins.llama.fi 2026-10-07
DefiLlama treasury API Daily token units and USD values per chain https://defillama.com/docs/api 2026-10-07

The benchmark counts realised operating expenses, grants and contributor pay, including pay in own tokens, but not budgets. Cost of revenue, user incentives, buybacks and staking rewards are excluded when a report separates them. Calendar years are used where available, otherwise a reported period of at least 6 months.

Per-protocol benchmark choices were logged before any proxy total was seen (entry V2 of the change log CHANGES_R6V.md, cited below as CHANGES V1 to V13). Olympus had only budgets and one community-posted actual outside the window, so it has no unit.

Method

  1. The treasury set T is exactly the address list of the protocol's DefiLlama treasury adapter, so that the measure can scale.
  2. Family P (transfers, Ethereum only). P0 is every outflow from T to an address outside T, valued at the nearest DefiLlama daily price within 3 days. P1, the primary variant, removes outflows in transactions where T also receives value (swaps, deposits, wraps, claims), burns, and outflows to contracts that are not multisigs (checked through a public Ethereum RPC, or remote procedure call, endpoint). P1c is P1 without the protocol's own token.
  3. Family B (DefiLlama balances, all chains). B1, the primary variant, sums the net daily outflow, max(0, −sum of token value changes). B0 sums negative token changes gross. A unit enters B only if the series covers the whole period.
  4. For each unit, r = proxy / reported, and the error is |ln r| in log points (absolute natural log of the ratio).
  5. C1 accuracy requires median |ln r| ≤ ln 1.4, about 0.336.
  6. C2 no bias requires each protocol's median r to lie in [0.5, 2] for at least 80 percent of protocols, which with 4 protocols means all 4 (CHANGES V3).
  7. C3 dynamics requires the direction of change between consecutive units to match in at least 2/3 of pairs, and is not evaluable with fewer than 3 pairs.
  8. Coverage requires at least 4 protocols and 10 units, otherwise the family fails. A family passes only if all applicable criteria hold.
  9. If neither family passes, the planned resource allocation study becomes 5 to 10 case studies with no new proxy. Diagnostic variants cannot change the verdict.

Results

Unit-level comparison

The table shows reported spending and the two primary proxies for each protocol-year, in millions of USD, with the ratio r.

Protocol Period Reported, USD M P1, USD M r (P1) B1, USD M r (B1)
Lido May to Dec 2023 12.5 12.9 1.03 19.5 1.56
Lido 2024 40.9 63.4 1.55 80.1 1.96
Lido 2025 40.7 63.0 1.55 70.3 1.73
Aave 2023 12.2 16.2 1.33 not covered  
Aave 2024 23.9 72.2 3.02 87.2 3.65
Aave 2025 25.1 63.1 2.52 153.8 6.13
Sky 2023 53.7 8.1 0.15 not covered  
Sky 2024 69.0 35.7 0.52 146.6 2.12
Sky 2025 73.7 4.2 0.06 517.0 7.01
Uniswap 2023 6.7 42.7 6.36 not covered  
Uniswap 2024 15.7 17.0 1.08 21.6 1.37
Uniswap 2025 20.7 156.3 7.55 810.0 39.13

Ratios range from 0.06 to 7.55 for P1 and from 1.37 to 39.13 for B1. Errors of several times in both directions are exactly the case the frozen rule treats as closing the quantitative design.

Criteria for the primary variants

The table shows each frozen criterion for P1 and B1 from data/verdict.json.

Criterion Threshold P1 B1
Coverage ≥ 10 units, ≥ 4 protocols 12 units, 4 protocols (pass) 9 units, 4 protocols (fail)
C1 median |ln r| ≤ 0.336 0.792, factor 2.21 (fail) 0.754, factor 2.12 (fail)
C2 protocols in [0.5, 2] 4 of 4 1 of 4 (fail) 1 of 4 (fail)
Protocol median r   Aave 2.52, Lido 1.55, Sky 0.15, Uniswap 6.36 Aave 4.89, Lido 1.73, Sky 4.57, Uniswap 20.25
C3 direction matches ≥ 2/3 of pairs 5 of 8 (fail) 5 of 5 (pass)
Spearman correlation descriptive −0.15 0.47
Verdict all criteria fail fail

P1 fails all three quality criteria. B1 tracks the direction of change but fails coverage, accuracy and bias.

Diagnostic variants

The table shows diagnostic variants that explain the outcome but cannot change the verdict.

Variant Units Median |ln r| Error factor Protocols in [0.5, 2] Spearman
P0 gross outflow 12 1.93 6.89 0 of 4 0.39
P1c without own token 12 infinite infinite 2 of 4 0.00
B0 gross balance outflow 9 1.065 2.90 0 of 4 0.45
B1 without own token 9 0.916 2.50 1 of 4 0.90
Manually cleaned P1 12 0.714 about 2.0 2 of 4 (Lido 1.55, Sky 1.97) not computed

P1c is infinite because Sky and Uniswap send no non-own-token value under the P1 rules. The factor of about 2.0 for the manual variant is our conversion of 0.714 log points. Its rules were set after seeing P1, and its Sky figures reflect treasury moves rather than payments (CHANGES V10).

Why the proxy fails, protocol by protocol

The causes below are the corrected explanations from CHANGES V12 and the independent review. Each is structural.

Protocol Error Corrected explanation
Lido P1 about 1.55 times reported in 2024 and 2025 Committee and foundation multisigs are funded monthly near actual costs, the best fit of the four. The excess is pre-funding plus LDO sent to a 4-of-9 Safe multisig (not a vesting contract) before token pay is booked.
Aave P1 1.33 to 3.02 times reported The treasury set includes the Ecosystem Reserve, which pays Safety Module rewards ($12.3M, $39.8M and $50.2M of P1 in 2023 to 2025). Real aToken (interest-bearing deposit token) payments are removed because each carries a small interest mint to the Collector in the same transaction. Stream withdrawals explain only $0.47M.
Sky P1 0.06 to 0.52 times reported Spells mint DAI or USDS directly to recipients, so payments never appear as treasury outflows. Large treasury operations, such as $663.7M of USDC sent out in 2024 after a PSM (Peg Stability Module) swap, are correctly removed.
Uniswap P1 6.36 and 7.55 times reported in 2023 and 2025 The DAO funds the Foundation in tranches, $42.74M of UNI in October 2023 and $137.98M of UNI in March 2025, while the Foundation spends $6.7M to $20.7M a year from wallets outside the set. The 2024 match (r 1.08) is a coincidence.

Family B also picks up adapter artefacts (CHANGES V13). The Sky adapter does not track USDS, so DAI to USDS conversions count as outflows ($104.9M in 2024, $216.5M in 2025). Lido shows a $9.2M sUSDS conversion, and B counts Uniswap's 100M UNI burn in December 2025 ($600.5M).

Robustness and replication

The table lists checks run by the independent reviewer and the authors.

Check Outcome Verdict changed?
De-duplication bug fixed (V5) Sky 2024 P1 from $35.28M to $35.68M; P1 median |ln r| from 0.797 to 0.792 No
Rule-based fix for the aToken interest mint Median |ln r| 0.556, 2 of 4 in band (Aave 3.80, Sky 0.82); Sky 2025 rises to $144.6M through SKY mints No
Benchmark alternatives (Uniswap 2023 $7.08M, Sky 2025 $67M) Median |ln r| 0.792; Uniswap median r 6.04 No
Family B without Sky conversions and the Uniswap burn Still 9 units; Uniswap about 10 times, Aave 4.9 times No
Derived Olympus unit, Jan 2023 to Jan 2024, $5.163M (V11) B reaches 10 units, but Olympus r is about 25 and C2 is 1 of 5 No
Price matching and recipient spot checks (21 addresses) Prices at most 1 day off; no misclassification or decimal errors No

No tested correction brought either family close to passing.

Limitations

  • The benchmark is uneven. Aave's rows have no published methodology, Sky's 2023 and 2024 to 2025 figures come from different firms, Lido 2023 covers eight months of the Contributors Group only, and Uniswap excludes staff pay in UNI.
  • Family P covers Ethereum only. The non-Ethereum share of the DefiLlama treasury (yearly mean of daily shares) was 16.6, 10.9 and 10.4 percent for Aave in 2023 to 2025, 0.1 to 0.8 percent for Lido, and zero for Sky and Uniswap.
  • These benchmark and coverage inaccuracies move figures by tens of percent, while the gaps are factors of two or more, and the reviewer found none that changes the verdict.
  • The sample is 12 protocol-years of 4 unusually transparent DAOs. The result shows that this proxy did not track reported spending here, not that no future on-chain method could work.

What this means for DAOs

A treasury outflow mixes funding of intermediaries (foundations, committees, contractor multisigs), payments to users and stakers, and treasury operations. No rule that works without manual labelling separates them, and in some protocols spending never passes through the treasury.

DAO spending therefore cannot currently be measured from on-chain data across a large sample. The reliable source is a DAO's own financial report, and few DAOs publish one, so regular realised spending reports with a stated scope are what make spending assessable. This is not investment advice.

Frequently asked questions

Can on-chain treasury outflows be used to measure DAO spending?

Not on this evidence. In this cp0x validation of Lido, Aave, Sky and Uniswap for 2023 to 2025, the best transfer-based proxy missed reported spending by a median factor of 2.21, against a limit of 1.4, and the balance-based proxy by 2.12.

Why does the proxy overstate Uniswap spending?

Uniswap DAO pays the Uniswap Foundation in large tranches, $42.7M of UNI in October 2023 and about $138M of UNI in March 2025, while the Foundation spends $6.7M to $20.7M per year. The proxy measures the DAO's funding of the Foundation, not the Foundation's spending, giving ratios of 6.36 and 7.55.

Why does the proxy understate Sky spending?

Sky executive spells mint DAI or USDS directly to payment recipients, so payments never leave the treasury address DefiLlama tracks. Only MKR and SKY transfers are visible, and P1 captured 0.06 to 0.52 of Sky's reported spending in 2023 to 2025.

Was the test pre-registered?

The test was pre-registered, with the method and criteria frozen on 2026-10-07 with sha256 4dfa38a8…0815 before any proxy was computed, and the benchmark separately with sha256 16882766…e9f6.

Did manual cleaning fix the problem?

Manual cleaning did not fix it, since a manually cleaned transfer proxy still had a median error of about 2.0 times (0.714 log points). For Sky the manual rules picked up treasury moves, such as $663.7M of USDC in 2024, instead of payments.

Did the independent review change the result?

The independent review did not change the result. The reviewer found one bug, wrong explanations for Sky and Aave, and missing disclosures, all fixed or logged. The bug fix moved the P1 median absolute log ratio from 0.797 to 0.792, and the planned study of DAO resource allocation still proceeds as case studies under the pre-registered rule.

Data and code

All data, code, the frozen method and the review for this study are on GitHub.

Repo path Description Rows Key columns
data/reported_spending.csv Frozen benchmark 12 protocol, period_start, period_end, amount_usd, source
data/comparison.csv Benchmark joined with all variants 12 amount_usd, P0, P1, P1c, B1, B0, covered
data/proxy_P.csv, data/proxy_B.csv Proxy totals per unit 12 each P0, P1, P1c / B1, B0, covered
data/proxy_P_manual.csv Manual diagnostic variant 12 P_manual, r
data/verdict.json Criteria for all variants 6 variants median_abs_ln_r, C1, C2, C3, PASS
data/P_outflows_<protocol>.csv.gz Every treasury outflow, 4 files 759 to 112,850 hash, day, token, usd, swap_tx, rclass, p1
data/B_steps_<protocol>.csv.gz Daily token value changes, 5 files 116 to 182,499 day, chain, token, dv
data/raw/, method/, code/ Raw DefiLlama files and hashes; frozen method, changes, review; scripts n/a n/a

To reproduce the verdict, run python code/compare.py from the study folder; code/README.md gives the full pipeline.

Version history

Version Date Change
Internal first computation 2026-10-07 Method and benchmark frozen, V1 to V4 logged before any proxy total; P1 median |ln r| 0.797, both families fail
Internal corrected version 2026-10-07 V5 to V13 after review (bug fix to 0.792, corrected explanations, disclosures); verdict unchanged
1.0 2026-10-08 First public English version