A complete real-time auction codebase for sale. Everything you need to run a transparently open, real-time bidding marketplace.
TreasureMage is a production-grade real-time auction platform built on ASP.NET WebForms with SQL Server, designed around one core idea: bids are processed in real time on the database itself, not queued on a single application server. That architectural choice creates a completely unique and transparently open bidding process. There is no hidden server-side queue (the kind every other website in this space relies on) deciding the order or fate of bids. Every bid is resolved immediately at the data layer, in the open, and the result is observable by the bidder on the very next request. This is the platform's signature competitive advantage.
What follows is a tour of what is included in the codebase: the bidder-facing experience, the admin tools, the integrations, and the infrastructure pieces. The buyer receives all of it. (User data, the corporation, and other assets are not part of the sale.)
Bids are placed through stored procedures (PlaceBidOnAuction, PlaceBidIfLessThan, BuyItNow) that resolve race conditions at the data layer. No hidden server-side queue, no fragile in-process state, no single bottleneck application server. The database is the source of truth and the arbiter, which makes the entire bidding process transparently open: every bid is observable as soon as it lands.
PlaceBidOnAuction
PlaceBidIfLessThan
BuyItNow
Bids placed inside the final 10 seconds reset the clock to 10 seconds. The timer logic is server-authoritative and cleanly handles multiple near-simultaneous late bids, so the final moments stay competitive without devolving into ties or rollbacks.
Bidders set a maximum and the platform bids on their behalf when they are outbid, all the way down to the database stored procedure. Auto-bids consume tickets in the same atomic flow as manual bids, so no special-case reconciliation is required.
Two bid types are wired in end-to-end: 1-cent bids that move the price and 0-cent bids that simply re-anchor the timer. This gives operators flexibility on how aggressively prices climb, which directly affects unit economics.
Every auction can carry a Buy It Now price that consumes multiple tickets and ends the auction immediately. The buy-it-now path runs through its own stored procedure, so an in-flight bid cannot collide with a closing buyout.
The active auction view is driven by a Web API controller (api/auction/{id}, /bid, /buyitnow) that returns compact JSON. The bidding UI polls the API for updates, keeping the bid path narrow and easy to reason about.
api/auction/{id}
/bid
/buyitnow
The Bidding page lists every active auction with countdowns, current prices, and thumbnails. The All Auctions and View Auction pages provide deep-dive views with full bid histories. Mobile and desktop layouts share one master page.
A separate product line where bidders assemble themed chests of cards, with claim flows, inventory tracking, and a dedicated management surface. Treasure Chests are not games of chance. They are curated bundles, fully visible to the buyer.
Pre-launch auction reservations let bidders queue interest on upcoming items. The Early Bird Lounge gives reserved bidders a tailored view, and admins can convert familiars into live auctions in one click.
A site-wide chat with message reactions, per-user profiles, and admin moderation tools (bans, mutes, message deletion). Chat is a known retention driver in real-time auction operations and is fully built in.
Three guilds (Emberhold, Enclave, Library) compete for points earned through bidding, claims, daily logins, chat, and referrals. A complete guild membership, point-action, point-log, and statistics system is included, ready to rebrand or theme.
Tracked referral codes with tiered rewards, full handler logic (ReferralHandler), and admin tools to inspect signups and adjust attributions. Drop-in growth lever for any new operator.
ReferralHandler
Tickets are the bidding currency. The bucket model tracks where each ticket came from (purchase, refund, promo, referral), which makes accounting auditable and chargeback resolution clean.
From won-auction to shipping label: bidders create shipping requests, admins consolidate them into shipping events, and the platform supports paying for shipping with tickets or cash. Shipping label generation is built in.
The admin surface is the part most auction codebases skimp on. TreasureMage ships a full operator console that an operations team can run a business from on day one.
Create, edit, schedule, pause, resume, and cancel auctions. View live bid streams. Convert staging auctions to live in one click. Bulk operations are available for routine catalog work, including bulk grab bag shipping.
Dedicated screens for managing the MTG card catalog, inventory, full cards, card auctions, and card bids. Inventory and warehouses are tracked separately, so multi-warehouse fulfillment is supported out of the box.
Customer search, profile editing, ticket adjustments, mirror-account login (impersonate for support), ban/unban, account deletion, and per-user reports. Everything support reps need to resolve a ticket in one screen.
Built-in reporting screens cover revenue, ticket flow, payment history, PayPal sale records, and customer lifetime metrics. The reports are SQL-driven and easy to extend with new dimensions.
Issue promo codes with usage caps, expiration, and reward types. View who redeemed what. Promo-driven signups have their own management screen so marketing campaigns can be measured and tuned.
Every PayPal flow is observable. Order intents are recorded before checkout; PayPal completed-sale records are saved on IPN; admins can inspect, reconcile, and manually create or correct ticket payments when needed.
Manage chat messages, manage chat users, and apply bans through dedicated admin pages. Chat ban and chat user state are first-class entities with their own handlers.
Every caught exception flows through ExceptionRecordHandler.CreateExceptionRecord into a queryable table. Admins can browse, drill down, and triage production errors without ever leaving the site.
ExceptionRecordHandler.CreateExceptionRecord
Schedule maintenance windows that surface live banners with countdowns, optionally route the public site to a maintenance page, and extend any active auctions so no one loses a win to a planned outage.
A trigger surface for background jobs (recompute caches, run periodic clean-ups, invoke handler operations) without redeploying. Useful both during operations and during incident recovery.
Generate vendor invoices for fulfillment partners, and export winner-card sheets (JPGs of every won card) for inventory pulls. These are the unglamorous tools an ops team uses every single day.
Per-user SMS preferences, an SMS log, and a worker that processes outgoing notifications on a schedule. Users can opt in or out per category through their account profile.
Server-side order creation, browser-side approval through PayPal's JS SDK, IPN-driven sale completion, and a sandbox simulation path for staging. Currency-aware, with built-in Canadian-customer guidance.
Standard Identity-based registration, login, password reset, two-factor authentication, phone verification, external logins, and account deletion flows. Anti-XSRF and viewstate protection are wired through the master page.
Auctions live in their own data warehouse (MTGDB), isolated from everything else for maximum resilience and availability. Less critical operations such as chat live in a separate database (MessageDB), so a slow query, a long-running migration, or even an outage on the secondary store cannot block the bid path. The auction database is treated as never-blocking by design: nothing non-essential is ever allowed to share its lock space. Both databases ship with init scripts and a test-data populator, and stored procedures back the hot bid path.
A static GlobalCache holds frequently-read configuration and lookup data (guilds, action types, banned users, analytics preferences). It is the place to add a cached value without hitting the database every page load.
GlobalCache
No SessionStorage. No non-essential cookies. The platform was built to keep its compliance surface small. Analytics scripts are gated by a per-user preference and an account-age check.
The Terms of Use and Privacy Policy were drafted after significant legal research by Witten LLP, and green-light the operation in Alberta. That legal foundation is a real asset for any buyer: the structure has already been vetted as a non-gambling, non-lottery model under Alberta law, which is a meaningful starting point for any operator entering this space.
Site-wide banners (staging, maintenance, promotional, closure) are first-class. Authenticated users can dismiss promotional banners with the dismissal stored on their customer record. The banner API surfaces banner state to other clients.
Bootstrap 5 throughout, with a single master page that handles desktop and mobile breakpoints, glyphicon iconography, and a clean modern look. The look-and-feel is easy to rebrand.
Production and staging publish profiles are included. The site has been operated on Azure App Service with separate staging and production databases. Drop in your own credentials and ship.
The codebase sale is strictly the software. The following are not part of the sale:
The new operator is expected to bring their own brand, payment merchant accounts, hosting tenant, and inventory.
Serious inquiries about the codebase sale, walkthroughs, or technical questions are welcome. Reach out and we will set up a call.
mail@treasuremage.com