Ageis is a blockchain-integrated agricultural marketplace that tokenizes farm produce as on-chain NFTs to ensure authenticity, provenance, and verifiable ownership.
Unlike a traditional CRUD marketplace, Ageis combines:
- Relational database consistency
- On-chain NFT minting
- Deterministic metadata serving
- Containerized deployment
- Reverse proxy + SSL infrastructure
This project demonstrates production-grade Web2 + Web3 interoperability.
Client (React / Next.js)
↓
NGINX (SSL Termination + Reverse Proxy)
↓
Node.js + Express (TypeScript API)
↓
Prisma ORM
↓
PostgreSQL (Neon Serverless)
↓
Solana Blockchain (NFT Minting + Metadata)
- Node.js
- Express
- TypeScript
- Prisma ORM
- PostgreSQL (Neon)
- Solana
- NFT Minting
- On-chain metadata linking
- Keypair generation per mint
- Docker (multi-stage builds)
- PM2 (process management)
- NGINX (reverse proxy)
- Certbot (SSL automation)
- Ubuntu-based deployment
Ageis bridges off-chain relational state with on-chain NFT ownership.
-
Farmer registers → stored in PostgreSQL
-
Farmer wallet keys stored in
FarmerKeys -
Product creation triggers:
- New mint keypair generation
- Metadata JSON construction
- Metadata served via backend endpoint
- NFT minted on Solana
- Mint address persisted in database
{
"name": "Organic Apples Batch #102",
"description": "Farm fresh apples from Nashik",
"origin": "Nashik, India",
"harvest_date": "2026-02-27",
"farmer_wallet": "...",
"image": "https://..."
}- Synchronizing DB state with blockchain state
- Preventing inconsistent mint states on transaction failure
- Public metadata resolution
- Secure wallet key management
UserFarmerFarmerKeysProductOrder
- NFT mint address stored inside
Product - Wallet isolation using
FarmerKeys - Order creation updates product state deterministically
- Strong relational integrity between farmer → product → order
The ordering layer supports:
- Buyer order placement
- Product status updates
- Persistent order tracking
- Extensible NFT ownership transfer logic
Designed to be upgradeable to:
- Escrow smart contracts
- SPL token payments
- On-chain ownership reassignment
- Base image with build dependencies
- Cached dependency layer
- TypeScript compilation layer
- Optimized production runtime
- Reduced image size
- Reproducible builds
- Prisma compatibility with Alpine
- Secure runtime isolation
- SSL termination
- HTTP → HTTPS redirection
- Proxying to internal API (port 4000)
- Header forwarding & security hardening
- Automated certificate provisioning via Certbot
- Renewable TLS certificates
- Enforced HTTPS in production
- Environment variable isolation
- SSL-enabled database connections
- Docker network isolation
- Controlled wallet key storage
- Prisma migration management
- HTTPS-only API exposure
Ageis addresses:
- Neon serverless PostgreSQL connection pooling
- Prisma initialization inside Docker
- SSL + domain configuration
- PM2 lifecycle management
- Zero-downtime restart after deployment
# Install dependencies
npm install
# Generate Prisma client
npx prisma generate
# Run migrations
npx prisma migrate dev
# Start development server
npm run dev# Build image
docker build -t ageis-api .
# Run container
docker run -p 4000:4000 ageis-api- Deploy Docker container
- Configure NGINX reverse proxy
- Setup SSL via Certbot
- Use PM2 for process management
- Configure
PUBLIC_BASE_URLfor metadata resolution
- On-chain NFT ownership transfer
- Escrow-based payment integration
- SPL token support
- DAO-based dispute resolution
- AI-driven produce grading
- IoT farm sensor integration
- Cross-border certification verification
Ageis demonstrates:
- Full-stack TypeScript architecture
- Web2 + Web3 interoperability
- On-chain asset lifecycle management
- Production-grade infrastructure setup
- Blockchain-backed provenance system
This project is architected as a distributed asset authentication platform — not just a marketplace.
Contact me to build something great like ths : divyamm.xyz