Caprazli Priority Provenance for Independent Researchers
Cryptographic priority claims for independent researchers.
The Problem
Independent researchers lack institutional infrastructure for establishing priority. Universities provide witnesses, timestamps, and social proof. Without affiliation, you have none of these.
The Solution
Dual-Layer Provenance combines two complementary mechanisms:
| Layer | Purpose | Mechanism |
|---|---|---|
| Continuous | Daily work timestamping | Bitcoin blockchain via OpenTimestamps |
| Formal | Publication registration | DOI via Zenodo |
Quick Start
# Install dependencies
pip install opentimestamps-client
# Timestamp a file
python caprazli_provenance.py stamp myfile.pdf
# Creates: myfile.pdf.ots
# Verify a timestamp (after Bitcoin confirmation)
python caprazli_provenance.py verify myfile.pdf.ots
# Install git hook for automatic timestamping
python caprazli_provenance.py install-hook
How It Works
Your file
│
▼
SHA-256 hash
│
▼
OpenTimestamps aggregates with others
│
▼
Merkle root anchored in Bitcoin block
│
▼
Proof stored in .ots file
│
▼
Anyone can verify, forever
Why Bitcoin?
| Property | Benefit |
|---|---|
| Most secure blockchain | 15+ years, never compromised |
| Most decentralized | No single point of failure |
| Most likely to exist in 2050 | Long-term proof durability |
| Free via OpenTimestamps | No transaction fees |
Architecture
See ARCHITECTURE.md for the formal specification (T-003).
Citation
APA 7th:
Caprazli, K. M. (2026). Caprazli Priority Provenance for Independent Researchers (Version 1.0.0) [Software]. Zenodo. https://doi.org/10.5281/zenodo.18115235
Chicago (Author-Date):
Caprazli, Kafkas M. 2026. "Caprazli Priority Provenance for Independent Researchers." Software, version 1.0.0. Zenodo. https://doi.org/10.5281/zenodo.18115235.
MLA 9th:
Caprazli, Kafkas M. Caprazli Priority Provenance for Independent Researchers. Version 1.0.0, Zenodo, 2026, doi:10.5281/zenodo.18115235.
IEEE:
K. M. Caprazli, "Caprazli Priority Provenance for Independent Researchers," version 1.0.0, 2026. [Online]. Available: https://doi.org/10.5281/zenodo.18115235
BibTeX:
@software{caprazli_provenance_2026,
author = {Caprazli, Kafkas M.},
title = {Caprazli Priority Provenance for Independent Researchers},
year = 2026,
version = {1.0.0},
publisher = {Zenodo},
doi = {10.5281/zenodo.18115235},
url = {https://doi.org/10.5281/zenodo.18115235}
}
See CITATION.cff for machine-readable metadata (Zotero, GitHub, etc.).
Author
Kafkas M. Caprazli ORCID: 0000-0002-5744-8944
License
CC-BY-4.0 — Use freely, attribution required. See LICENSE.
Release files for caprazli-provenance 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| caprazli_provenance-1.0.0.tar.gz | 11.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| caprazli_provenance-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 24.4 kB
Release files / caprazli_provenance-1.0.0.tar.gz
| Download URL | caprazli_provenance-1.0.0.tar.gz |
|---|---|
| Size | 11.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
25f0e3b9d12459451e34d882ad06ef7d9e93cc774cc49b777f4c69d88d0c1781
|
|
BLAKE2b-256 checksum How to use checksums |
e4b353ee0a377193736aa431aa825c93254427c82dbd769e0185cc2b148e58c6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Release files / caprazli_provenance-1.0.0-py3-none-any.whl
| Download URL | caprazli_provenance-1.0.0-py3-none-any.whl |
|---|---|
| Size | 12.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2cfa75d6b4f89dde39408a4ec7cb38c5f1a6de4af8d965acb6724a40c71d3bdd
|
|
BLAKE2b-256 checksum How to use checksums |
2b5239fb4ba52d21dfae0ef949338583505e9195c861b0c1f191c1c803b25669
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|