Peer review is broken.
It’s slow, opaque, and mostly thankless. Journals gatekeep knowledge. Reviewers work for free. Authors wait months—or longer—just to hear nothing. After watching too many promising papers stall in limbo, I decided to build something better: a peer-to-peer review marketplace.
The concept? Authors post papers. Reviewers earn tokens for quality feedback. No middlemen. Transparent, fast, fair. Built it using Cardano for smart contracts and Next.js for the frontend.
Not trying to reinvent academia. Just fixing its worst part.
Environment Setup
Here’s what the tech stack looked like:
Backend:
- Cardano Testnet via Blockfrost
- Plutus Lite scripts for token escrow logic
- Lucid.js for smart contract interactions
- IPFS for document and metadata storage
Frontend:
- Next.js 14 App Router
- TailwindCSS for fast UI styling
- Lucid wallet integration via Wagmi + Nami Wallet
- Node.js backend proxy for timestamping and CORS handling
Hosted on Vercel, tested on both MacOS and Ubuntu, and used a dummy “reviewToken” on Cardano testnet for simulations.
Core Workflow
Author Flow:
- Upload a paper → stored as IPFS CID
- Set a review bounty (e.g., 100 reviewTokens)
- Post bounty to the dashboard
- Track claimed reviews and confirm payouts
Reviewer Flow:
- Claim an open review (locks bounty for 7 days)
- Write feedback in a markdown editor
- Submit review (CID + wallet signature)
- Get payout upon author confirmation
Smart Contract Logic:
- Escrows tokens until review is confirmed
- Author confirmation triggers payout
- 7-day auto-cancel if no submission
- Manual dispute flag available in v1
Frontend Features
The Next.js dashboard supports:
- Listing open review bounties with filters (topic, token amount, deadline)
- Wallet connection with status persistence
- Upload form for title, abstract, and IPFS CID
- Markdown editor with live preview for review submissions
- Earnings history + review reputation display
All blockchain transactions (minting, locking, payouts, cancellations) use Lucid.js.
User Experience Highlights

Reviewer UX:
- “Claim Review” locks a bounty exclusively
- Built-in markdown editor with preview
- Submit review as CID + signed proof
- Instant payout after author approval
Author UX:
- Track each review’s status in real time
- Accept or reject reviews manually
- View reviewer history + reputation score
Extras and Safeguards
- Reputation score is wallet-linked, based on average rating from last 10 reviews
- Token faucet available for testnet reviewers
- One active review per reviewer to reduce spam
- Sanitized markdown stored off-chain—CID only
- Auto-rotation of CIDs when reviews are updated
- Toast notifications for user actions (connected, claimed, paid out)
- Email alerts planned but not yet implemented
- Audit trail with timestamps and tx hashes
- Dispute system: Manual flag with cooldown before payout
- Token floor enforced (no micro bounties like 1 token)
Real-World Testing
Simulated Tests:
- 3 paper submissions
- 5 review claims
- Payouts occurred within 15 seconds post-confirmation
- 1 missed deadline auto-canceled and refunded
- No wallet bugs or contract errors encountered
Best Practices Learned
- Store only CIDs, not review content, on-chain to keep costs low
- Use clear retention policies and limit token spamming
- Keep wallet sessions alive through refresh
- Dispute flow should delay payout to avoid abuse
- Sanitize markdown before upload (XSS protection, file size control)
- Timestamp every action for long-term traceability
Conclusion
The decentralized peer review marketplace ran smoother than expected. Reviewers finally got rewarded. Authors didn’t wait months. And no one had to trust a centralized journal system.
With Cardano for tokens and Next.js for the UI, it’s lightweight, transparent, and cheap. No gas wars, no vendor lock-in, and no ivory tower gatekeeping.
Next version ideas:
- DAO-based curation
- Reviewer badges + streaks
- Group review mode for large papers
Academia may resist—but the open research community won’t.
Read more posts:- Building a Real-Time Supply Chain Analytics Dashboard with Apache Airflow and Superset
Pingback: Your Server’s Screaming. Can You Hear It? | Internboot