XBid

XBid: Cross-chain NFT auctions. Sell on any chain, accept bids from all chains. Liquidity unified.

XBid

Created At

ETHOnline 2025

Project Description

XBid: Cross-Chain NFT Auction Platform

==================================

What XBid Is ?

XBid is a decentralized NFT auction marketplace that eliminates blockchain boundaries. It allows NFT sellers to accept bids from buyers on any supported blockchain, using different tokens, while automatically handling all cross-chain complexities behind the scenes.

The Problem It Solves


Current NFT marketplaces suffer from severe liquidity fragmentation. If you own an NFT on Ethereum, you can only sell to buyers who also have funds on Ethereum in the specific token you accept. A potential buyer on Arbitrum with ample USDT simply cannot participate, even if they'd pay more than anyone on Ethereum. This artificial limitation:

  • Reduces seller revenue by artificially limiting the buyer pool
  • Excludes willing buyers based purely on where their assets are located
  • Fragments liquidity across chains instead of unifying it
  • Creates friction requiring manual bridging, swapping, and multiple transactions

Real-world impact: Sellers miss higher bids, buyers miss opportunities, and the NFT market operates far below its potential efficiency.

How XBid Works


Core Innovation: Intent-Based Cross-Chain Auctions

XBid uses an intent-based architecture that separates what users want from how it's executed:

Sellers express intent:

  • "I want to sell this NFT"
  • "I prefer payment in USDC on Arbitrum"
  • "I'll accept bids with highest of 100 USDC, with a minimum reserve of 80 USDC"

Buyers express intent:

  • "I'll bid 90 USDT from my Optimism wallet"
  • System automatically bridges funds to the BidManager contract on Optimism Sepolia

System handles execution:

  • Monitors all chains for bids
  • Determines winners fairly
  • Automatically refund to loosers
  • Automatically delivers NFT to Winners wallet address

The Complete User Flow


Creating an Auction (Seller Side):

Recommendation : USE USDC FOR WHOLE FLOW AS USDT LIQUIDITY IS LOW ON TOKEN CONTRACT ADDRESS PROVIDED BY AVAIL NEXUS.

  1. Connect wallet on any supported chain (Ethereum, Arbitrum, Optimism, or Base Sepolia testnets)
  2. Browse your NFTs through visual gallery (powered by Alchemy NFT API)
  3. Click the NFT you want to sell—contract details auto-populate
  4. Set auction parameters:
    • Highest Price (maximum bid to participate)
    • Reserve price (absolute minimum you'll accept)
    • Duration (2 minutes to 7 days)
    • Preferred settlement token (USDC or USDT)
    • Preferred settlement chain (where you want payment)
  5. Approve NFT contract (one-time per collection)
  6. Create auction—your NFT goes into escrow in the AuctionHub smart contract

Your auction is now live and visible to bidders on ALL chains simultaneously.

Placing Bids (Buyer Side):

  1. Browse live auctions from all chains in unified marketplace
  2. Select an auction and enter your bid amount
  3. Choose which chain to bid from (your native chain where you have gas fees)
  4. Click "Place Bid"—system automatically:
    • Bridges your tokens to the auction chain if needed (using Nexus SDK)
    • Locks your bid in the BidManager contract
    • Shows real-time transaction status (via Blockscout SDK)
  5. Track your bid status in "My Auctions"

You stay on your native chain throughout—no manual bridging required.

Claiming After Auction Ends:

For sellers with winning bids:

  • "Claim Tokens" button appears
  • One click triggers automatic settlement:
    • Winning bid bridges to your preferred chain (if different)
    • Converts to your preferred token (if different)
    • All happens atomically in single transaction
    • You receive exactly what you specified

For winning bidders:

  • NFT automatically transfers to your wallet
  • No action needed

For losing bidders:

  • Automatic refunds to original chains
  • No action needed

Technical Architecture


Smart Contracts

AuctionHub Contract (deployed on all chains):

  • Takes NFT custody during auctions
  • Stores auction parameters and seller preferences
  • Manages auction lifecycle (create, cancel, settle)
  • Transfers NFT to winner on completion
  • Generates unique intent IDs linking bids across chains

BidManager Contract (deployed on all chains):

  • Accepts and locks bids on every chain
  • Validates bid amounts against requirements
  • Releases funds to sellers or refunds bidders
  • Supports bid increases for same bidder
  • Emits events for keeper monitoring

The Keeper Service


A backend Node.js service that acts as the coordination layer:

Functions:

  • Monitors blockchain events across all 4+ chains simultaneously
  • Aggregates bids from different chains for each auction
  • Determines winners when auctions end
  • Analyzes settlement requirements (which chain, which token)
  • Triggers NFT transfers and refund processing

Critical Note: The keeper cannot move funds or manipulate outcomes. It only reads blockchain state and coordinates settlement transactions that smart contracts validate. Users remain in full custody of their assets through smart contracts.

Four Settlement Strategies


The system automatically selects the optimal path based on bid characteristics vs. seller preferences:

Strategy 1: Direct Transfer

  • Winner's token + chain = Seller's preference
  • Simple transfer from BidManager to seller
  • Example: USDC on Arbitrum $\rightarrow$ USDC on Arbitrum

Strategy 2: Same-Chain Swap

  • Same chain, different token
  • Uniswap swap on that chain (testnet uses direct swaps; mainnet ready for Nexus swap)
  • Example: USDT on Arbitrum $\rightarrow$ USDC on Arbitrum

Strategy 3: Cross-Chain Bridge

  • Different chain, same token
  • Nexus SDK bridge to move tokens
  • Example: USDC on Optimism $\rightarrow$ USDC on Ethereum

Strategy 4: Bridge + Swap

  • Different chain AND different token
  • Nexus SDK bridgeAndExecute atomically combines bridging and Uniswap swap
  • Example: USDT on Optimism $\rightarrow$ USDC on Ethereum
  • Single transaction prevents funds getting stuck mid-transfer

Technology Integrations

Avail Nexus SDK (core cross-chain infrastructure):

  • Unified Balance: Shows total token holdings across all chains
  • Transfer: Enables cross-chain bid placement without manual bridging
  • Bridge: Moves winning bids to seller's preferred chain
  • BridgeAndExecute: Atomically bridges and swaps in one transaction

Blockscout SDK (transaction visibility):

  • Tracks every transaction (NFT approvals, bids, claims, cancellations)
  • Displays real-time status: Pending $\rightarrow$ Confirmed $\rightarrow$ Finalized
  • Provides direct explorer links for verification
  • Eliminates need to manually check block explorers
  • Builds user trust through transparency

Alchemy NFT API (user experience):

  • Fetches all NFTs owned by connected wallet
  • Displays visual gallery with images and metadata
  • Auto-populates contract addresses and token IDs
  • Eliminates error-prone manual entry

Uniswap (token conversion):

  • Handles same-chain token swaps
  • Integrated into bridgeAndExecute for cross-chain swaps
  • Provides liquidity for USDC/USDT conversions

Frontend Architecture (Next.js + React)


Home Page:

  • Wallet connection status
  • Unified balance display across all chains
  • Nexus SDK initialization controls

Create Auction Page:

  • Visual NFT selector with gallery
  • Auction parameter forms with validation
  • NFT approval flow with Blockscout tracking
  • Supports flexible durations and chain/token preferences

Auctions Browse Page:

  • Live feed of all active auctions across chains
  • Real-time highest bid display
  • Cross-chain bidding interface
  • "My Bids" tracking section

My Auctions Page:

  • View created auctions with status
  • Cancel auctions (if no bids placed)
  • Claim winning bids with automatic settlement
  • Track all bids you've placed

Supported Networks & Tokens


Current Testnet’s where auctionHub.sol and bidManager.sol is deployed:

  • Ethereum Sepolia (Layer 1 base)
  • Arbitrum Sepolia (Optimistic rollup)
  • Optimism Sepolia (Optimistic rollup)
  • Base Sepolia (Coinbase L2)

Supported Tokens:

  • USDC (preferred—better testnet liquidity)
  • USDT(Not preferred due to low liquidity on testnet’s)

Both AuctionHub and BidManager deployed on all 4 major blockchains, creating full mesh topology where any chain can host auctions and accept bids from any other chain.

Security Model


On-Chain Security:

  • All critical operations (NFT custody, bid locking, transfers) happen via auditable smart contracts
  • NFTs held in escrow by AuctionHub contract, not intermediaries
  • Bid funds locked in BidManager contracts under user control
  • Keeper cannot move funds or manipulate outcomes

Intent-Based Safety:

  • If keeper fails, funds remain locked in contracts
  • Sellers retain NFT custody until valid winner claims
  • No custody or control by centralized parties

Why This Matters


XBid demonstrates that cross-chain applications can be:

  • Simple for users while complex under the hood
  • Secure and decentralized while providing seamless UX
  • Transparent with real-time transaction visibility
  • Efficient by unifying fragmented liquidity

The platform proves that blockchain boundaries are technical limitations, not fundamental constraints. By leveraging Avail Nexus for cross-chain operations, Blockscout for transparency, Alchemy for data, and custom auction logic, XBid creates a marketplace where NFT value is determined by global demand, not chain affiliation.

Sellers access maximum liquidity. Buyers participate from anywhere. The system handles all complexity automatically. This is the future of NFT marketplaces—truly chain-agnostic commerce.

How it's Made

Core Technology & Architecture

We built XBid using a three-layer architecture designed to handle cross-chain complexity seamlessly: Smart Contracts (Solidity): This layer is split into two main contracts.

AuctionHub.sol: Deployed on the seller's chain, this contract acts as the escrow, holding the NFT and the auction's core parameters (like reserve price and deadline). BidManager.sol: Deployed on every supported chain (e.g., Arbitrum, Optimism, Base), this contract accepts and locks bids locally. This is the key: bidders never have to leave their native chain to participate.

Frontend (Next.js 14): The UI uses RainbowKit and Wagmi for simple, multi-chain wallet connections. It fetches a user's NFTs using the Alchemy API for easy auction creation and provides a single interface to bid on any auction from any chain.

Backend Keeper (Node.js/Express): This is the central orchestrator. It's a Node.js service that constantly monitors events (like BidPlaced) from all chains. It aggregates all bids in a MongoDB database to determine the real-time highest bidder across the entire system and coordinates the final settlement and refunds.

Partner Technology Integrations

Partner tech was essential for abstracting the cross-chain complexity away from the user:

Avail Nexus SDK: This was our cross-chain backbone. It allowed us to:

  • Show Unified Balances: Display a user's total USDC balance across all chains combined.
  • Automate Bridging: When a user on Optimism bids on an Arbitrum auction, the Nexus SDK handles the transfer or bridgeAndExecute (bridge + swap) call automatically in the background.
  • Simplify Settlement: It handles all the complex routing for sending the final payment to the seller, even if it needs to bridge and swap tokens.

Blockscout SDK: This was key for transaction transparency. We used it to provide real-time toast notifications in the UI ("Transaction pending..." $\rightarrow$ "Confirmed!") with direct links to the Blockscout explorer, which builds significant user trust.

Notable & Hacky Implementations

To make this system work, we used several notable approaches:

  • Intent-Based Architecture (The Core Innovation): Instead of using expensive, synchronous cross-chain messages, our system is asynchronous. Sellers and bidders simply "express intent" on their native chains. Our backend keeper coordinates these intents "lazily," only executing the complex cross-chain settlement after the auction ends. This is vastly cheaper and creates a much smoother UX.

  • Four-Path Settlement Router: We hid immense complexity behind a single "Claim Tokens" button for the seller. This button automatically runs logic to determine which of the four possible settlement paths is needed (e.g., a simple transfer, a same-chain swap, a cross-chain bridge, or a full bridge-and-swap) and executes the correct one.

  • Hybrid Data Model: We use MongoDB for speed, allowing the frontend to quickly query for active auctions and bid history. However, the blockchain remains the single source of truth. Before any critical action (like settlement), the keeper and frontend verify the data from MongoDB against the on-chain smart contracts to ensure integrity.

  • 40-Second Polling: Instead of relying on WebSockets (which can be unreliable on testnets), our keeper simply polls all chains for new events every 40 seconds. This is a simpler, more robust solution, and the slight delay is perfectly acceptable for an auction format.

background image mobile

Join the mailing list

Get the latest news and updates