A Cryptographic Evidence Vault for Whistleblowers, Journalists, Activists, Employees, and Individuals.
Preserve • Verify • Prove
Chronicle is an open-source evidence preservation platform designed to help individuals securely preserve digital evidence and establish verifiable proof of existence.
Whether you're a journalist safeguarding source material, an employee documenting workplace misconduct, an activist preserving critical information, or simply someone who wants to protect important digital records, Chronicle provides a secure and transparent way to preserve evidence while enabling independent integrity verification.
Built around modern cryptographic principles, Chronicle ensures that evidence remains trustworthy without exposing sensitive file contents on the blockchain.
- 📂 Secure evidence upload
- 🔐 Cryptographic integrity protection
- ⛓ Immutable blockchain proof of existence
- 📑 Evidence metadata management
- 🔎 Independent verification
- 🏷 Evidence organization with tags and descriptions
- 📊 Evidence timeline and transaction history
- ⚡ Fast and intuitive user experience
Browser
│
▼
Evidence Upload Portal
│
▼
Next.js Application
│
┌──────────────┼──────────────┐
▼ ▼ ▼
Supabase PostgreSQL Blockchain
Storage Metadata Network
│ │ │
└──────────────┴──────────────┘
│
▼
Evidence Verification
Chronicle follows a layered security approach focused on preserving the integrity of digital evidence.
- Files remain securely stored off-chain.
- Sensitive information is never written to the blockchain.
- Cryptographic techniques provide evidence integrity.
- Blockchain is used solely to establish immutable proof of existence.
- Verification can be performed independently without relying on a trusted central authority.
| Category | Technologies |
|---|---|
| Frontend | Next.js 15, React, TypeScript, Tailwind CSS |
| Backend | Next.js API Routes (Serverless) |
| Monorepo | TurboRepo, Yarn Workspaces |
| Storage | Supabase Storage |
| Database | Supabase PostgreSQL |
| Blockchain | Solidity, Hardhat, Viem, Wagmi, RainbowKit |
| Development | ESLint, Prettier |
Chronicle/
│
├── apps/
│ └── web/ # Next.js application
│
├── packages/
│ └── shared/ # Shared utilities, types and business logic
│
├── contracts/ # Smart contracts and deployment scripts
│
├── supabase/ # Database configuration and migrations
│
├── turbo.json
├── package.json
└── yarn.lock
git clone https://github.com/<your-username>/chronicle.git
cd chronicleyarn installCreate the following file:
apps/web/.env.local
Example:
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
SUPABASE_SERVICE_ROLE_KEY=
RPC_URL=
BLOCKCHAIN_PRIVATE_KEY=
NEXT_PUBLIC_CHRONICLE_CONTRACT_ADDRESS=yarn devVisit:
http://localhost:3000
Navigate to the contracts workspace:
cd contractsInstall dependencies:
yarn installDeploy:
yarn deployAfter deployment, update your environment variables with the deployed contract address.
Contributions are welcome!
If you'd like to improve Chronicle, feel free to:
- Fork the repository
- Create a feature branch
- Submit a pull request
- Open an issue for bugs or feature requests
Please ensure your code follows the existing style and includes appropriate documentation where necessary.
Built with 🔮 by lbyarinth.
Chronicle — Preserve • Verify • Prove