Prove you made it first.
Upload a file. Get an immutable, timestamped proof on the blockchain.
The file never leaves your device. Only the hash goes on-chain.
AI-generated content is getting indistinguishable from the real thing. Deepfakes, synthetic writing, AI art — anyone can produce anything and claim they made it first. There's no reliable way to prove when a piece of original work existed.
Origynl fixes this. SHA-256 hash your file, record it on Polygon, and the blockchain timestamp becomes your evidence. It's not DRM. It's a notary.
|
Certify Upload an image or PDF. Origynl computes a SHA-256 hash and writes it to the OrigynlLedger smart contract on Polygon. The file stays on your device. |
Verify Drop in any document to check if it's been certified. If the hash exists on-chain, you get the timestamp and transaction record. |
Capture Take a live photo with embedded GPS, timestamp, and device metadata. Creates a "witness proof" tied to a blockchain-anchored hash. |
Watermark Certified images receive a visible watermark and embedded metadata proving certification status. |
Live at origynl.vercel.app — certify a file in under 30 seconds.
Or run locally:
git clone https://github.com/foolish-bandit/Origynl.git
cd Origynl
npm install
npm run devBlockchain writes require Vercel serverless functions. Local dev renders the UI but on-chain transactions need deployment. See setup below.
- Artists & photographers — timestamp your original work before publishing
- Journalists — create verifiable witness proofs with embedded location/time
- Researchers — prove when a dataset, paper, or finding was produced
- Legal — establish prior art or document existence at a specific time
- Developers — certify code snapshots, audit trails, or build artifacts
- Anyone — prove "I had this file at this time" with cryptographic certainty
| Layer | Tech |
|---|---|
| Frontend | React 19, TypeScript, Tailwind CSS |
| Build | Vite 6 |
| Blockchain | Polygon Amoy via viem |
| Smart Contract | Solidity — OrigynlLedgerV2.sol |
| Backend | Vercel Serverless Functions |
| Camera/EXIF | react-webcam, piexifjs |
| pdf-lib |
Deployed on Polygon Amoy at 0x894C...9d41
The contract is simple by design: store a SHA-256 hash, record the sender and timestamp, emit an event. Immutable once written. See BLOCKCHAIN_INTEGRATION.md for contract architecture.
- Node.js v18+
- A Polygon wallet with testnet POL (faucet)
- Fork this repo
- Import into Vercel
- Add environment variables:
PRIVATE_KEY— your Polygon wallet private keyCONTRACT_ADDRESS—0x894C98bf09B4e9e4FEd3612803920b7d82C59d41
- Deploy
git clone https://github.com/foolish-bandit/Origynl.git
cd Origynl
npm install
cp .env.example .env.local
# Edit .env.local with your PRIVATE_KEY and CONTRACT_ADDRESS
npm run dev- Polygon mainnet deployment
- Batch certification via Merkle tree (V2 contract)
- WalletConnect self-custody mode (sign with your own wallet)
- C2PA Content Credentials for captured images
- PAdES-signed certificate PDFs
- OpenTimestamps dual anchor (Bitcoin + Polygon)
- Perceptual hash + steganographic watermark
- Public shareable
/proof/:idverification page - IPFS pinning for certified file backup
- PWA / offline capture with queued certification
- Mobile-native capture (Capacitor)
Explicit non-goal: Origynl does not and will not use AI for authenticity scoring. Provenance is established cryptographically, not inferred.
PRs welcome. The codebase is React + TypeScript + Vite — standard setup.
npm install
npm run dev # dev server
npm run test # run tests
npm run build # production buildMIT
Built by Zack Brenner
