Blockchain-powered traceability for the world's most exploited supply chain.
Vanilla is broken.
It's the second most expensive spice on the planet. Madagascar grows 80% of it. And the farmers who wake up at dawn to hand-pollinate every single flower? They take home $2–3 per kilogram. That same kilogram sells for over $500 at retail. A 250x markup — and nobody along the way has to explain themselves.
It gets worse. Up to 80% of "pure vanilla" products on store shelves are adulterated or completely synthetic. Consumers pay premium prices for something they can't verify. Farmers get crushed by middlemen they can't hold accountable. And every transaction in between is recorded on paper, controlled by whoever holds the pen.
The entire system runs on trust. And trust, without transparency, is just a word.
We wanted to fix that.
Extract makes every handoff in the vanilla supply chain verifiable, tamper-proof, and publicly auditable — from the farm gate to the store shelf.
Every time vanilla beans change hands, both parties sign the transaction on Solana. A farmer can't fabricate a delivery. A middleman can't bury a price gouge. A retailer can't slap "pure" on a label they didn't earn.
Consumers get a QR code on their packaging. One scan shows the full journey — GPS coordinates, quality grades, lab results, every organization that touched the product, and how much they paid.
No single party controls the ledger. No one edits their own reputation.
On-chain (Solana + Anchor) — An Anchor program handles everything that matters: org registration, harvest creation, two-party handoff signing, lab verification, and trust score computation. Every event is cryptographically signed and permanently recorded.
Indexer + API (Node.js + Express + PostgreSQL) — A backend service listens for on-chain events, decodes them with Anchor's EventParser, and stores the full supply chain history in Postgres. A REST API serves it all to the frontend.
Web App (Next.js + TypeScript) — Three interfaces, three audiences. Farmers create harvest batches and generate QR codes. Organizations initiate and confirm handoffs, building on-chain reputation. Consumers trace any batch from origin to shelf.
Trust Scores — Derived directly from on-chain data. Confirmation rates, price fairness, weight consistency, and lab authenticity results feed into a live, replayable score. No black boxes.
Anomaly Detection — Automated flagging for suspicious patterns: abnormal weight loss between handoffs, price markups outside regional norms, repeated authenticity failures. Runs on cron, trusts no one.
None of us had touched Solana before this weekend. We learned Anchor, PDAs, and event-driven architecture from scratch — while simultaneously building a full-stack app around it. Sleep was theoretical.
Solana · Anchor · TypeScript · Next.js · Express · PostgreSQL · Phantom Wallet · node-cron
- Node.js 18+
- PostgreSQL running locally (database:
vanillatrail) - Phantom Wallet browser extension
npm installnpx ts-node scripts/src/seed-db.tsnpm run indexerStarts the Express API on http://localhost:3001 and listens for on-chain events.
npm run appOpens the Next.js frontend at http://localhost:3000.
Consumer journey — scan or visit:
http://localhost:3000/journey/c9f00d007286304b
Generate a QR code — go to /org/qr, enter a batch ID, print and stick on packaging.
Org dashboard — connect Phantom wallet at /org to register, initiate handoffs, and confirm incoming shipments.