Product Tagging & Blockchain Stamping Platform - Manage brands, products, and tags with blockchain transaction tracking for authentication and product verification.
| Demo | https://tags.cylink.site/ |
| Hackathon | IMPHEN 2025 |
| Team | Pemuja Deadline Anti Refund |
| Category | Technology |
|---|---|
| Framework | Next.js 16 (App Router), React 19, TypeScript |
| Database | MySQL + Prisma ORM |
| Auth | NextAuth v5 |
| Blockchain | ethers.js, ERC721 NFT (Base Sepolia) |
| Storage | Cloudflare R2 |
| AI | Kolosal AI (Fraud Detection), Gemini AI (NFT Art) |
| CMS | Ghost CMS (Blog) |
| Styling | Tailwind CSS v4, shadcn/ui, Framer Motion |
| Testing | Vitest |
- Brand/Product/Tag Management - Full CRUD with metadata support
- Blockchain Stamping - Verify authenticity on-chain
- QR Code Scanning - Public verification endpoint
- Tag Lifecycle - Created → Distributed → Claimed → Transferred → Flagged → Revoked
- NFT Collectible - Gas-free minting for first-hand owners with AI-generated artwork (Gemini)
- AI Agent Dashboard - Data analysis assistant for admin & brands
- Fraud Detection - AI-powered scan pattern analysis
- Web3 Support Tickets - NFT holders can submit complaints via wallet connection
- Auto Product Detection - System detects owned products from NFT
- Brand/Admin Routing - Tickets route to brand, fallback to admin
- Landing & Marketing - About, Features, Pricing, Showcase pages
- Company - Careers, Contact pages with form integration
- Legal - Privacy Policy, Terms & Conditions, Security documentation
- Blog - Ghost CMS integration with pagination support
- Resources - FAQ, API Documentation (Swagger)
# Clone & install
git clone https://github.com/cds-id/etags.git && cd etags && npm install
# Configure
cp .env.example .env # Edit with your settings
# Database setup
npm run db:push && npm run db:create-admin
# Run
npm run dev
Default login: [email protected] / admin123
# Required
DATABASE_URL="mysql://user:pass@localhost:3306/etags"
AUTH_SECRET="your_secret" # openssl rand -base64 32
# Optional - R2 Storage
R2_ACCOUNT_ID, R2_ACCESS_KEY_ID, R2_SECRET_ACCESS_KEY, R2_BUCKET
# Optional - Blockchain
BLOCKCHAIN_RPC_URL, CONTRACT_ADDRESS, CHAIN_ID, ADMIN_WALLET
# Optional - NFT
NFT_CONTRACT_ADDRESS, NEXT_PUBLIC_NFT_CONTRACT_ADDRESS, GEMINI_API_KEY
# Optional - AI
KOLOSAL_API_KEY
# Optional - Blog
NEXT_PUBLIC_TOKEN="ghost_content_api_key" # Ghost CMS Content API Key
| Route | Description |
|---|---|
/ |
Landing page |
/about |
About company & team |
/features |
Features showcase |
/pricing |
Pricing plans |
/showcase |
Success stories |
/careers |
Job openings |
/contact |
Contact form |
/blog |
Blog articles (Ghost CMS) |
/privacy |
Privacy policy |
/terms |
Terms & conditions |
/security |
Security practices |
/faqs |
FAQ page |
/login |
Authentication |
/register |
User registration |
/scan |
QR scanner |
/verify/[code] |
Tag verification |
/support |
Web3 support tickets |
/explorer |
Blockchain explorer |
/docs |
Swagger API docs |
| Route | Description |
|---|---|
/manage |
Dashboard home |
/manage/brands |
Brand management |
/manage/products |
Product CRUD |
/manage/tags |
Tag management |
/manage/nfts |
NFT monitoring |
/manage/tickets |
Support tickets |
/manage/users |
User management (admin) |
/manage/profile |
Profile settings |
| Command | Description |
|---|---|
npm run dev |
Development server |
npm run build |
Production build |
npm run test |
Run tests |
npm run test -- --coverage |
Tests with coverage |
npm run lint |
ESLint |
npm run typecheck |
TypeScript check |
npm run db:push |
Push schema |
npm run db:studio |
Prisma Studio |
npm run db:create-admin |
Create admin user |
docker build -t etags .
docker run -p 3000:3000 -e DATABASE_URL="..." -e AUTH_SECRET="..." etags
src/
├── app/ # Next.js App Router
│ ├── api/ # API Routes
│ ├── manage/ # Admin Dashboard
│ ├── about/ # Public pages (about, features, pricing, etc.)
│ ├── blog/ # Blog with Ghost CMS
│ └── support/ # Web3 Support
├── lib/
│ ├── actions/ # Server Actions
│ └── *.ts # Utilities (db, auth, r2, blockchain)
├── components/
│ ├── ui/ # shadcn/ui components
│ ├── landing/ # Landing page components
│ ├── blog/ # Blog components (Grid, Pagination)
│ └── faq/ # FAQ components
└── tests/ # Test setup & mocks
1. Scan QR → 2. Claim first-hand → 3. Connect wallet → 4. AI generates art → 5. Mint NFT → 6. Transfer to user
Smart Contract: ETagCollectible (ERC721) - One NFT per tag, gas-free minting
| Phase | Status | Features |
|---|---|---|
| MVP | ✅ | Brand/Product/Tag, Blockchain Stamping, NFT, AI Agent, Fraud Detection |
| Phase 2 | 🔜 | Wallet Authentication, Multi-sig Stamping |
| Phase 3 | 🔜 | Distribution Tracking, Supply Chain |
| Phase 4 | 🔜 | Blockchain Warranty |
| Phase 5 | ✅ | Web3 Support Tickets |
| Phase 6 | ✅ | Public Pages & Blog (Ghost CMS) |
See ROADMAP.md for details.
See CONTRIBUTING.md for contribution guidelines.
MIT