A decentralized comic book publishing and NFT marketplace platform built on Hedera Hashgraph, featuring native HTS NFTs, IPFS storage, and an interactive comic reader.
- Quick Start Guide - Get running in 5 minutes
- Complete Setup Guide - Detailed installation and configuration
- Implementation Summary - What was built and how it works
- API Reference - Complete endpoint documentation
- Native HTS NFTs: Leverage Hedera Token Service for efficient, low-cost NFT creation
- IPFS Storage: Decentralized storage for comic images and metadata
- Interactive Comic Reader: Full-featured reader with multiple view modes, zoom, bookmarks
- Marketplace: Buy, sell, and auction comic NFTs
- Creator Studio: Upload, configure, and publish comic collections
- Wallet Integration: HashPack wallet support for Hedera accounts
- Fast & Cheap: Hedera's 3-5 second finality and ~$0.001 transaction costs
- Carbon Negative: Environmentally sustainable blockchain
- Scalable: Handle thousands of comics and transactions
- User-Friendly: Intuitive interface for creators and collectors
comic-pad/
βββ backend/ # Node.js API server
β βββ src/
β β βββ services/ # Hedera, IPFS, Comic services
β β βββ routes/ # API endpoints
β β βββ server.js # Main server file
β βββ package.json
β βββ env.example
βββ frontend/ # React frontend
β βββ src/
β β βββ components/ # React components
β β βββ contexts/ # React contexts
β β βββ pages/ # Page components
β β βββ styles/ # Styled components
β βββ package.json
β βββ vite.config.ts
βββ src/ # Solidity contracts (legacy)
βββ README.md
- Node.js 18+
- npm or yarn
- Hedera testnet account
- IPFS service (Pinata or Web3.Storage)
-
Install dependencies
cd backend npm install -
Configure environment
cp env.example .env
Update
.envwith your credentials:# Hedera Configuration HEDERA_NETWORK=testnet HEDERA_ACCOUNT_ID=0.0.123456 HEDERA_PRIVATE_KEY=302e020100300506032b657004220420... # IPFS Configuration PINATA_API_KEY=your_pinata_api_key PINATA_SECRET_KEY=your_pinata_secret_key # Server Configuration PORT=3001 JWT_SECRET=your_jwt_secret_key
-
Start the server
npm run dev
-
Install dependencies
cd frontend npm install -
Start development server
npm run dev
-
Build for production
npm run build
-
Create Hedera Account
- Visit Hedera Portal
- Create a testnet account
- Fund with test HBAR from faucet
-
Get Account Credentials
- Account ID:
0.0.123456 - Private Key: Export from wallet
- Public Key: Derived from private key
- Account ID:
Option 1: Pinata
- Sign up at Pinata
- Get API key and secret
- Configure in backend
.env
Option 2: Web3.Storage
- Sign up at Web3.Storage
- Get access token
- Configure in backend
.env
POST /api/auth/register- Register new userPOST /api/auth/login- Login userPOST /api/auth/connect-wallet- Connect Hedera walletGET /api/auth/profile- Get user profilePUT /api/auth/profile- Update user profile
POST /api/comics/collections- Create NFT collectionPOST /api/comics- Create comic issueGET /api/comics/:id- Get comic detailsGET /api/comics/search- Search comicsPOST /api/comics/:id/mint- Batch mint copies
POST /api/marketplace/list- List comic for salePOST /api/marketplace/buy- Buy comicPOST /api/marketplace/bid- Place auction bidGET /api/marketplace/listings- Get active listings
GET /api/reader/comic/:id- Get comic contentGET /api/reader/page/:id/:page- Get specific pagePOST /api/reader/progress- Save reading progressPOST /api/reader/bookmark- Add bookmark
-
Connect Wallet
- Install HashPack wallet
- Connect to Hedera testnet
- Fund account with test HBAR
-
Create Collection
- Go to Creator Studio
- Upload collection artwork
- Set collection metadata
- Configure royalty percentage
-
Publish Comic
- Upload comic pages (JPG/PNG)
- Set pricing and supply
- Configure minting rules
- Go live!
-
Browse Marketplace
- Search by genre, creator, series
- Filter by price, rarity, availability
- View comic previews
-
Purchase Comics
- Connect wallet
- Buy with HBAR
- Receive NFT instantly
-
Read Comics
- Access via NFT ownership
- Multiple view modes
- Bookmark favorite pages
- Download for offline reading
- Wallet Integration: Secure transaction signing
- Ownership Verification: NFT ownership required for access
- Rate Limiting: API protection against abuse
- Input Validation: Comprehensive request validation
- Error Handling: Graceful error responses
Using Docker:
cd backend
docker build -t comic-pad-backend .
docker run -p 3001:3001 --env-file .env comic-pad-backendUsing PM2:
npm install -g pm2
pm2 start src/server.js --name comic-pad-api
pm2 save
pm2 startupUsing Vercel:
cd frontend
npm run build
vercel --prodUsing Netlify:
cd frontend
npm run build
# Upload dist/ folder to NetlifyProduction Backend:
NODE_ENV=production
HEDERA_NETWORK=mainnet
HEDERA_ACCOUNT_ID=0.0.123456
HEDERA_PRIVATE_KEY=your_production_private_key
PINATA_API_KEY=your_production_pinata_key
PINATA_SECRET_KEY=your_production_pinata_secret
JWT_SECRET=your_production_jwt_secret
MONGODB_URI=your_production_mongodb_uriProduction Frontend:
VITE_API_URL=https://api.comicpad.app
VITE_HEDERA_NETWORK=mainnet
VITE_PINATA_GATEWAY=https://gateway.pinata.cloud/ipfs/cd backend
npm testcd frontend
npm test# Test Hedera connection
npm run test:hedera
# Test IPFS upload
npm run test:ipfs
# Test full workflow
npm run test:integrationGET /health- API health statusGET /api/comics/stats/overview- Platform statisticsGET /api/marketplace/stats- Marketplace metrics
- Structured JSON logs
- Error tracking with stack traces
- Performance metrics
- User activity logs
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open Pull Request
- Follow TypeScript best practices
- Write comprehensive tests
- Update documentation
- Follow commit message conventions
- Ensure all tests pass
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: Comic Pad Docs
- Discord: Comic Pad Community
- Email: support@comicpad.app
- Issues: GitHub Issues
- Hedera Hashgraph - For the fast, sustainable blockchain infrastructure
- IPFS - For decentralized storage solutions
- Pinata - For reliable IPFS pinning services
- HashPack - For Hedera wallet integration
- OpenZeppelin - For secure smart contract libraries