SpaceSeven NFT Marketplace
Multi-Chain NFT Marketplace with Go Backend
Go Fiber backend with clean layered architecture (Actions → Services → DB) and 37 GORM entities on PostgreSQL. Protocol Buffer integration for Concordium smart contract calls alongside standard ABI encoding for Ethereum. STOMP WebSocket for real-time auction bidding and notifications. Smart contract versioning system for on-chain upgrade management.
Key Features
- Go Fiber v2 backend — Express-like DX with fasthttp performance and zero-allocation routing
- 37 GORM entities: NFT, Collection, Lot, AuctionBid, Universe, SmartContractConfig, etc.
- Protocol Buffer integration for Concordium smart contract calls alongside standard Ethereum ABI
- STOMP WebSocket real-time auction bidding with concurrent bid validation
- Smart contract versioning system tracking version, revision, and on-chain index
- JWT auth (golang-jwt), go-playground/validator, Uber Zap structured logging
Tech Stack
Backend
Blockchain
Infra
Frontend
Challenges & Solutions
Multi-Chain Transaction Abstraction
Concordium uses Protocol Buffers with contract indexes while Ethereum uses ABI encoding — completely different transaction models, signing mechanisms, and wallet APIs needed to work seamlessly from a single frontend.
Built WalletAdapter interface (connect, signTransaction, getBalance) with ConcordiumWallet and MetaMaskWallet implementations. Frontend code doesn't change when adding new chains. Backend tracks smart contract versions for on-chain upgrades without requiring frontend deploys.
Real-Time Auction Integrity
Timed auctions with concurrent bidders needed instant updates, bid validation, and race condition prevention — a late bid arriving after auction close could cause financial disputes.
STOMP WebSocket for bidirectional real-time communication. Server-side bid validation with atomic PostgreSQL operations ensures no bid is accepted after deadline. All connected clients receive instant bid updates and auction state changes.
White-Label Marketplace System
Multiple brands wanted their own NFT marketplace with custom branding, collections, and fee structures — but sharing the same backend infrastructure and smart contracts.
Universe system: each white-label instance has its own configuration (branding, fees, collections) stored as a GORM entity. Frontend monorepo with 3 apps sharing common Redux modules via NPM package (shared-marketplace-layer) — marketplace logic is identical, presentation layer differs per Universe.