Keyword Auctions

The timed auction system allows merchants to sell goods in an eBay-style format. Buyers bid before the deadline; the highest bidder wins. After the seller ships and the buyer confirms receipt, the transaction completes. Platform fee is 5% of the winning bid; sellers must stake a merchant deposit as collateral.

System Components

Auction Flow

Creating Auctions

  1. Seller calls AuctionFactory.createAuction(), setting start price, buy-now price, minimum bid increment, and start/end time
  2. System automatically freezes buyNowPrice / 10 from the seller's merchant deposit (deposit leverage = 10×)
  3. Maximum auction duration: 365 days (MAX_DURATION)

Bidding

  1. Bidder calls bid() and sends USDT; each bid must exceed the current highest bid plus the minimum increment
  2. Previous highest bidder's USDT automatically refunded (CEI pattern)
  3. Anti-snipe extension: if a bid is placed within the last 5 minutes, the auction automatically extends by 10 minutes (stackable — prevents last-second sniping)

Buy-Now Price

If a buyer wants to win immediately, they call buyNow(). The auction ends immediately and any current highest bidder is refunded.

Settlement and Receipt

  1. After the auction ends, the seller calls ship() with a tracking number; status becomes Shipped
  2. Within 15 days of shipping (_MIN_AUTO_RECEIVE), buyer confirms receipt or auto-receive triggers; seller can extend the deadline
  3. Buyer calls confirmReceipt() or waits for triggerAutoReceive()
  4. Settlement: 5% fee distributed via InviteRegistry, remainder transferred to seller, seller's frozen deposit unlocked

No-Ship Refund

If the seller does not ship within 3 days after the auction ends (SHIPPING_DEADLINE), the buyer can call claimNoShipRefund():

Community Arbitration

Once an item is shipped, either party can initiate community arbitration (requestCommunityArbitration()):

Core Parameters

Parameter Value Source
Fee rate 5% PlatformSettings.feeRates[4] = 500
Deposit freeze ratio buyNowPrice ÷ 10 AuctionTemplate.DEPOSIT_LEVERAGE = 10
Max auction duration 365 days AuctionTemplate.MAX_DURATION
Anti-snipe trigger window Last 5 minutes AuctionTemplate.ANTI_SNIPE_WINDOW
Anti-snipe extension +10 minutes per trigger AuctionTemplate.ANTI_SNIPE_EXTENSION
Shipping deadline 3 days after auction ends AuctionTemplate.SHIPPING_DEADLINE
Min auto-receive wait 15 days after shipping AuctionTemplate._MIN_AUTO_RECEIVE