WoWOnchain
Docs

Auction House

The Goblin Market, the server's auction house on the web. Browsing, buying with your game balance or Phantom, listing from a logged-out character, delivery by mail, and the API behind the page.

4 min readUpdated Oct 14, 2026

One auction house, two doors

The Goblin Market is the game's auction house, reachable from a web page. It is not a separate market:

  • Web listings appear at the in-game auctioneers, like any other auction.
  • In-game buyout auctions can be bought on the web.
  • Everything is priced in Mithril. One MITH is one copper, so a [Lionheart Helm] for 365,000 MITH is what vanilla called 36 gold 50 silver.

Browsing

The page is the 1.12 Auction House frame: name search, level range, rarity, slot, house (Alliance, Horde, neutral), "under vendor price", the category list with weapon and armour sub-classes, and sortable columns. Hover any item for its full tooltip. Rows show the buyout and the current bid; stacks show the price each.

Bids are placed at in-game auctioneers. The website sells buyouts.

Buying

  1. Pick a lot and press Buyout (or double-click it). Confirm the price.
  2. Choose how to pay:
    • Game balance: the MITH in your game vault. No popup: the server moves it inside the program's rules.
    • Phantom: MITH from your own wallet. Phantom asks once, to approve a deposit into your vault that covers the price; the server pays the network fee.
  3. The market reserves the lot for five minutes so the website can't sell it twice, and the bridge moves your payment into escrow.
  4. The order processor in the world server checks the auction still exists, removes it, and mails the item to the character you choose. The seller is credited in game. Collect the item from any mailbox.
  5. If the lot disappeared in the meantime (sold in game, cancelled, expired), the order fails and your payment is refunded automatically to your game balance.

Selling

  1. Sign in with Phantom. The market lists the characters on your wallet's account.
  2. Pick a logged-out character, then an item from its bags or bank. Soulbound and quest items can't be listed.
  3. Set a starting price and a buyout, and a duration of 2, 8 or 24 hours.
  4. The order processor moves the item into the auction house exactly as the in-game auctioneer does, charges the deposit, and the listing appears in game and on the web.
  5. When it sells, the proceeds arrive in your character's mail as an "Auction successful" letter, like in the game: sale price, the auction house cut, the transfer fee, the amount received.
ChargeAmount
Depositthe game's own formula, based on the item's vendor price, the stack and the duration; refunded when the item sells
Auction house cut5% at the faction houses, 15% at the neutral house (the game's rates)
Transfer feenone

What the page shows, honestly

ModeWhat you see
SampleReal item templates, invented prices, sellers, sales and trends. A red (Sample) tag on every widget. The default until the market is live.
LiveThe real auction house, refreshed every few seconds, and your real characters and bags. Sales history and price charts start empty and fill from the first recorded sale.
Pre-launchUntil MITH is on mainnet: balances and the token contract show their "at launch" states.

The API

The page talks to the Goblin Market server over JSON. It is set in the site configuration (api.market); when it's empty the page uses its sample file. All amounts are MITH (= copper). Errors look like { "ok": false, "error": "...", "message": "..." }.

MethodPathWhat
GET/api/statusdatabase, live auction count, suggested mode, bridge state
GET/api/listingssearch: q, quality, class, subclass, slot, minLevel, maxLevel, house, buyoutOnly, deals, sort, page, perPage, mode
GET/api/listings/:idone lot
GET/api/items/:entrythe full item template and its spell text, for tooltips
GET/api/items/:entry/historyprice history
GET/api/sales, /api/trendingthe sales log and what's selling
POST/api/auth/nonce, /api/auth/verifySign In With Solana: a single-use nonce, then the signed message; sets a session cookie
GET/api/me/characters, /api/me/characters/:guid/itemsyour characters, their bags and bank, with what can be listed
GET/api/me/balances, /api/me/listings, /api/me/ordersgame balance and Phantom balance, your auctions, your purchases
POST/api/orders/buy{ listingId, paySource: "vault" or "phantom" }
POST/api/listings, DELETE /api/listings/:id{ characterGuid, itemGuid, price, startBid, duration }
POST/api/vault/withdraw, /api/vault/deposit{ amount }

Listing rows look like this:

{ "id": "a1042", "entry": 12640, "count": 1, "buyout": 365000, "currentBid": 0, "startBid": 299000,
  "expiresAt": 1791532092, "seller": "Tinkerwiz", "house": "alliance", "source": "web",
  "item": { "entry": 12640, "name": "Lionheart Helm", "quality": 4, "requiredLevel": 56, "sellPrice": 21894 } }

Sign In With Solana

  1. The page asks for a nonce: 16 random bytes, single use, valid five minutes.
  2. Phantom signs a standard sign-in message with the site's domain, your address, the nonce and the times.
  3. The server checks the domain, the address, the signature, the expiry and the clock, and only then uses up the nonce, so a bad attempt never burns a good one.
  4. The session is an HttpOnly, SameSite=Strict cookie; requests that change something must also come from the site's own origin.

Status

The market server, its sample mode, the search, the tooltips, Sign In With Solana and the buy and list screens are built. Live buying and listing wait for the order processor in the world server and the bridge's escrow moves for orders. Until then, write requests are validated and answered with "not connected yet".

Spotted something wrong or out of date? The docs follow the server, so tell us in game or on our socials and it gets fixed.