Back to Projects

SpaceSeven NFT Marketplace

Multi-Chain NFT Marketplace with Go Backend

Overview

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

Go 1.18Fiber v2GORMPostgreSQLProtocol BuffersJWT

Blockchain

ConcordiumEthereumWeb3.jsWalletConnectMetaMaskIPFS

Infra

DockerGitLab CI/CDUber ZapPinata

Frontend

Next.js 11React 17TypeScriptRedux ToolkitSTOMP WebSocket

Challenges & Solutions

Multi-Chain Transaction Abstraction

Problem

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.

Solution

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

Problem

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.

Solution

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

Problem

Multiple brands wanted their own NFT marketplace with custom branding, collections, and fee structures — but sharing the same backend infrastructure and smart contracts.

Solution

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.

Key Achievements

Go Fiber v2
Fasthttp performance with Express-like DX
37 Entities
GORM models with Protocol Buffer integration
STOMP WS
Real-time auction bidding with atomic validation
Multi-Chain
Concordium Protobuf + Ethereum ABI abstraction