Back to Projects

SpaceSeven NFT Marketplace

Multi-Chain NFT Marketplace with Go Backend

Overview

Full-stack multi-chain NFT marketplace with Go Fiber backend (37 entities, Protocol Buffers) and Next.js 11 + React 17 monorepo frontend (3 apps sharing common libraries). Wallet abstraction layer unifies Concordium native wallet and Ethereum MetaMask/WalletConnect behind a common interface. Universe system enables white-label marketplace instances.

Key Features

  • Go Fiber backend with 37 entities + Next.js 11 monorepo with 3 frontend apps
  • Multi-chain wallet abstraction: connect(), signTransaction(), getBalance() unified interface
  • shared-marketplace-layer NPM package — reusable Redux modules and API clients
  • STOMP WebSocket auctions with real-time bidding and notification system
  • Universe white-label system for branded marketplace instances
  • IPFS metadata storage via Pinata for decentralized NFT assets

Tech Stack

Backend

Go 1.18Fiber v2GORMPostgreSQLProtocol BuffersJWT

Frontend

Next.js 11React 17TypeScriptRedux ToolkitSTOMP WebSocket

Blockchain

ConcordiumEthereumWeb3.jsWalletConnectMetaMaskIPFS

Infra

DockerGitLab CI/CDUber ZapPinata

Challenges & Solutions

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.

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.

Key Achievements

2 Blockchains
Unified wallet abstraction for Concordium + Ethereum
3 Apps
Next.js monorepo sharing Redux modules via NPM
37 Entities
Go Fiber backend with clean layered architecture
White-Label
Universe system for custom marketplace instances