No Cash Flows, New Owners: Spot Bitcoin ETFs and the Origins of Co-movement
How this study was produced: every step of the run with the file it wrote, and everything the run used, pinned to the exact version. The address of this page is derived from its content: if anything below changed, the address would change.
Study package
Everything a reader needs to check and rerun the study on their own computer, in one file kept by the authors on GitHub, as a file of a release (version 4). e2er.org records where it is and its fingerprint; it does not keep the file.
Download the study package (.e2er)spot-bitcoin-etf-comovement-v4.e2er · 1.3 MB
- SHA-256
- 9dd4d53fc50a36b5c5bc3189efb6a31b5a622d771e2ddb806c69a6adfa553bac
- Fingerprint
- sha256:06820857210c2e140c3c9b0b785aaa8dd8d23a1cbba9912d5e5f356bbab3ead4
over the list of every file in the package with its SHA-256; e2er verify compares it with this page - Added
- on 2026-11-01, after this version was published; e2er.org checked the file against the version first
With e2er installed (install; the review guide explains each step on Linux, macOS and Windows):
e2er fetch https://e2er.org/d/1606581708e0909b e2er inspect spot-bitcoin-etf-comovement-v4.e2er e2er verify spot-bitcoin-etf-comovement-v4.e2er --against https://e2er.org/d/1606581708e0909b e2er reproduce spot-bitcoin-etf-comovement-v4.e2er
- e2er fetch downloads the file and checks its size and SHA-256 against this page; it runs nothing.
- e2er inspect shows what the file holds: title, authors, data, size and fingerprint.
- e2er verify checks every file, the numbers and the tables, and compares the package with this page.
- e2er reproduce runs the study’s code again and compares the results; it runs the code in a Docker container, with no network and no folder of yours.
Paper, data and code of the study
- PaperPublic · Read the paper (PDF)
- DataNot public.
The data come from Yahoo Finance. Its terms allow personal use only, so the data stay with the source.Get the data from the source (its terms), or load them yourself with
e2er-data yfinance.The study's code reloads them:
code/get_data.py. - CodePublic · Get the code
Run settings
- e2er
- version 0.8.2 · code at f59c79fda8bf
- Template
- empirical · single pass
- Governance
- full
- AI backend
- claude_code
- Models
- claude_code/claude-sonnet-4-5
- Exported
- 20261005
- Sessions
- one session, on one e2er commit · listed with the workflow
- Outcome
- Completed · 2026-09-11 10:55 UTCe2er's internal quality review: 6.1 of 10
- e2er code
- no local changes at run time
Input data
SHA-256 of the data files, as recorded in the study's provenance.
- ·data/data_dictionary.json 3b54e0ba6277
- ·data/data_sources.json 57a6bb75a18c
- ·data/data_summary.md 285377de56fb
Data used
Yahoo Finance (through yfinance) · 37 loads · read 2026-10-05 · personal use only
e2er's connector for it · about this data source
Terms Yahoo's terms of use apply. The yfinance project notes that Yahoo's finance data are intended for personal use only; yfinance is not affiliated with Yahoo. Full terms
The source publishes no citation format; e2er records this one.
e2er's internal quality review
Six reviewer specialists each score the draft from one angle, on a scale of 0 to 10. The score in the middle is the weighted average of these scores, with the weights in the table.
6.1 of 10
| Reviewer | Score | Weight |
|---|---|---|
| data | 6.0 | 1.25 |
| identification | 6.0 | 1.5 |
| literature | 5.9 | 1 |
| mechanism | 5.6 | 1 |
| technical | 6.5 | 1.5 |
| writing | 7.0 | 0.75 |
Workflow (24 steps)
The run in order, from the run's own record. The run was carried out in one session on one e2er commit. How to read it
A session is one e2er process, from a start or a resume to the next stop, and each session names the e2er version and commit its steps ran on. Each specialist step shows the model, the file it wrote and the file's hash value (SHA-256). Where the run did not record the hash value, the step says so: the last step that wrote a file shows the hash value of the file at export, and earlier steps that wrote the same file are marked as superseded. Checks that stopped a step are listed where they happened: 1 here. Steps taken by the researcher (4 here) are marked with a grey dot.
5 researcher decisions and stops · 4 actions · 1 stop · 0 approved deviations · 0 failures
Session 1 of 1 2026-09-11 09:47 to 2026-10-05 07:58 UTC · e2er 0.8.2, commit f59c79fda8bf · 24 steps · idea developer, literature scanner, identification strategist and 13 more · 4 researcher actions · 1 check failed
Initial 10 steps · idea developer, literature scanner, identification strategist and 5 more · 09:48–10:29 · 1 check failed
- idea developer · claude-sonnet-4-5 · 09:48–09:50 design/paper_plan.md a480534a2cc7 (not recorded during the run; hash of the file at export)
- literature scanner · claude-sonnet-4-5 · 09:50–09:55 design/literature_review.md e519715654e6 (not recorded during the run; hash of the file at export)
- identification strategist · claude-sonnet-4-5 · 09:55–09:58 design/identification_strategy.md 42aa7aa611a4 (not recorded during the run; hash of the file at export)
- data architect · claude-sonnet-4-5 · 09:58–10:02 data/data_dictionary.json 3b54e0ba6277 (not recorded during the run; hash of the file at export)
- data analyst · claude-sonnet-4-5 · 10:02–10:08 data/data_summary.md 285377de56fb (not recorded during the run; hash of the file at export)
- econometrics specialist · claude-sonnet-4-5 · 10:08–10:18 design/econometric_spec.md ae90ccb7350c (not recorded during the run; hash of the file at export)
- Check: contracts failed, step stopped and ran again
What the check found
paper_draft.tex: 2 inline tabular environment(s) in the draft (14 \input reference(s)) — tables must come from tables/*.tex via \input so their numbers trace to result files, not from the draft itself - paper drafter · claude-sonnet-4-5 · 10:18–10:27 paper/paper.tex (stopped by the check above; the step ran again)
- abstract writer · claude-sonnet-4-5 · 10:27–10:28 paper/abstract.tex 4e6faf86b4dd (not recorded during the run; hash of the file at export)
- paper drafter · claude-sonnet-4-5 · 10:28–10:29 paper/paper.tex c4c3aa51a178 (not recorded during the run; hash of the file at export)
Review 8 steps · mechanism reviewer, technical reviewer, literature reviewer and 3 more · 10:29–10:48
- Check: numbers passed
- Check: citations passed
- mechanism reviewer · claude-sonnet-4-5 · 10:29–10:31 reviews/review_mechanism.md 98dc62fc705b (not recorded during the run; hash of the file at export)
- technical reviewer · claude-sonnet-4-5 · 10:31–10:35 reviews/review_technical.md c62e143a76fd (not recorded during the run; hash of the file at export)
- literature reviewer · claude-sonnet-4-5 · 10:35–10:37 reviews/review_literature.md 74b218dd4397 (not recorded during the run; hash of the file at export)
- writing reviewer · claude-sonnet-4-5 · 10:37–10:41 reviews/review_writing.md 0dda5ad6e677 (not recorded during the run; hash of the file at export)
- data reviewer · claude-sonnet-4-5 · 10:41–10:44 reviews/review_data.md db8ed1e8bca1 (not recorded during the run; hash of the file at export)
- identification reviewer · claude-sonnet-4-5 · 10:44–10:48 reviews/review_identification.md 6a89ce902828 (not recorded during the run; hash of the file at export)
Revision 1 step · patch revisor · 10:48–10:51
- patch revisor · claude-sonnet-4-5 · 10:48–10:51 misc/paper_draft.tex.edits.json ec4f6503f012 (not recorded during the run; hash of the file at export)
Replication 5 steps · replication packager · 09-11 10:51 to 10-05 07:58 · 4 researcher actions
- replication packager · claude-sonnet-4-5 · 10:51–10:55 replication/estimation.py 4e1399297fee (not recorded during the run; hash of the file at export)
- Researcher supplied code/get_data.py · 07:58 hash value c705f8cb89d3
- Researcher supplied code/requirements.txt · 07:58 hash value 6a0419ca6274
- Researcher supplied reproduce.json · 07:58 hash value 842633d4f362
- Researcher supplied data/data_sources.json · 07:58 hash value 57a6bb75a18c
The run ended: completed · 2026-09-11 10:55 UTC
Changes made when the study was published
Files that were changed after the run, when the study was published, with the hash value (SHA-256) before and after the change and the reason recorded for it.
9 files changed
- paper/refs.bib · 2026-10-05 08:01 UTC
- Hash value before
- d89feb69a8af
- Hash value after
- ac1a3e8e7085
- Reason
- escaped & % # so the paper compiles
- paper/abstract.tex · 2026-10-21 23:15 UTC
- Hash value before
- 4e6faf86b4dd
- Hash value after
- 7d2d0db05353
- Reason
- abstract rewritten by e2er's abstract step after the abstract fix; the paper's text and results are unchanged
- paper/paper.tex · 2026-10-21 23:15 UTC
- Hash value before
- 178f3309267e
- Hash value after
- ce2b2a9f45ca
- Reason
- abstract rewritten by e2er's abstract step after the abstract fix; the paper's text and results are unchanged
- paper/paper.pdf · 2026-10-21 23:15 UTC
- Hash value before
- 1be5f26889cf
- Hash value after
- 4408627fc88b
- Reason
- abstract rewritten by e2er's abstract step after the abstract fix; the paper's text and results are unchanged
- report.html · 2026-10-21 23:15 UTC
- Hash value before
- ae00d808dabb
- Hash value after
- 8610e215305d
- Reason
- abstract rewritten by e2er's abstract step after the abstract fix; the paper's text and results are unchanged
- paper/abstract.tex · 2026-10-22 08:02 UTC
- Hash value before
- 7d2d0db05353
- Hash value after
- 66dd3dbd3d55
- Reason
- abstract rewritten by e2er's abstract step after the abstract fix; the paper's text and results are unchanged
- paper/paper.tex · 2026-10-22 08:02 UTC
- Hash value before
- ea54604a5083
- Hash value after
- 1adfa4f55f3c
- Reason
- abstract rewritten by e2er's abstract step after the abstract fix; the paper's text and results are unchanged
- paper/paper.pdf · 2026-10-22 08:02 UTC
- Hash value before
- 5e052f65cf49
- Hash value after
- 5d0ef481ca4a
- Reason
- abstract rewritten by e2er's abstract step after the abstract fix; the paper's text and results are unchanged
- report.html · 2026-10-22 08:02 UTC
- Hash value before
- 8610e215305d
- Hash value after
- 5546b4ff4c8b
- Reason
- abstract rewritten by e2er's abstract step after the abstract fix; the paper's text and results are unchanged
What it was built with (57)
Each part with its authors and the version used. e2er parts are pinned by git's content hash of their file at the commit above; follow a link to read that exact version.
Templates (1)
· by e2er authors · pinned at e2er f59c79fda8bf
| Template | By | Pinned version |
|---|---|---|
| empirical | e2er authors | unresolved: pipelines/empirical.toml at f59c79fda8bf is not in the E2ER checkout this dossier was built from |
Specialists (16)
· by e2er authors · pinned at e2er f59c79fda8bf
Skills (39)
· by e2er authors · pinned at e2er f59c79fda8bf
Connectors (1)
· by e2er authors · pinned at e2er f59c79fda8bf
| Connector | By | Pinned version |
|---|---|---|
| claude-code | e2er authors | src/modules/llm/claude_code.py blob 7af2fb88bea1 |
Cite e2er with this dossier
A paper produced with e2er gives one reference for e2er: this dossier. It credits everyone listed above.
@misc{e2er-1606581708e0909b,
title = {e2er dossier for "No Cash Flows, New Owners: Spot Bitcoin ETFs and the Origins of Co-movement"},
author = {{e2er}},
year = {2026},
howpublished = {\url{https://e2er.org/d/1606581708e0909b}},
note = {Workflow, templates, specialists, skills, connectors and models used, pinned by content hash. Dossier sha256:1606581708e0909b6f58c50a9161638e36153177bf95bc46a6f3c3d3f5f6fa62}
}