Your shop stays open. Your hands stay free.
Automated Dark Ages trading, connected to AislingExchange.
Download for Windows · Get started · Contribute · Report an issue
Merchant Mode is now DAMerchant. Same great trading system, new name. Recent updates make SELL exchanges safer, cancel unrelated offers promptly, keep completed sales in History and listing counts, add automatic group titles, improve character portraits, and support the current Dark Ages 7.41 client. Existing settings and trade data stay in place.
DAMerchant is a Windows desktop app for running a shop in Dark Ages. Create sell, buy or trade listings, respond to buyer whispers, and complete exchanges automatically. Manage multiple characters from one window and connect your listings to AislingExchange.
- Sell, buy and barter. Set prices, quantities, stack sizes and wanted items. Listings pause when inventory or funds are unavailable.
- Turn whispers into trades. Match incoming messages to listings, send configurable replies, and fill exchange windows.
- Confirm the visible sale. For SELL listings, place the item after the buyer offers the exact price, then accept only after the server shows the item and the buyer accepts that offer. Changed offers cancel the exchange.
- Keep characters organized. Separate inventory, listings and engine state for each connected character, with automatic reconnect support.
- Reach the wider market. Browse online merchants and sync selected listings with your AislingExchange account.
- See what happened. Review matched whispers and both sides of completed exchanges, then export transaction history to CSV.
- Show what you trade. The in-game group title follows active sell, buy and trade listings automatically. Switch to a custom title and description on the Dashboard when you prefer your own message.
Actual app screens with fictional sample data. Capture them locally.
| Listings | Trade history |
|---|---|
![]() |
![]() |
- Download the Windows installer from GitHub Releases and install DAMerchant.
- Open Settings and select your
Darkages.exeif it is not in the default installation folder. - Click Launch Client, then sign in to your game character. A character tab appears once connected.
- Open Listings to add a sell, buy or trade listing, or click an inventory item on the Dashboard.
- Keep the client connected. Use the Dashboard, Whispers and History screens to follow trading activity.
The built-in launcher supports the verified Dark Ages 7.41 client layouts, including the newer layout with either its original single-instance check or an existing bypass. Version 1.1.10 fixes the launch rejection at 0x57a7d9 (expected 0xeb, got 0x75). Select the installed Darkages.exe in Settings if needed. The newer layout shows the normal intro sequence.
To sync marketplace listings, sign in to AislingExchange in Settings. Use each listing's sync option to control what is published. The All Merchants tab shows the live merchant network.
DAMerchant listens on 127.0.0.1:2615. Point your existing client/proxy chain at that endpoint when using another launcher. The separate port avoids the commonly used 2610–2612 range.
Settings, listings, transaction history and AE authentication remain in merchantmode.db under the existing merchantmode user data directory, including after the DAMerchant rename. They are separate from the source checkout. Back up the app's data before moving installations; keep that database and packet logs private.
Requirements: Windows, Node.js 22+, and npm. Live trading also needs a Dark Ages installation. Compilation and screenshot captures work without a game account.
git clone https://github.com/BuildWithRaymond/DAMerchant.git merchantmode
cd merchantmode
npm ci
npm run electron:dev| Command | Purpose |
|---|---|
npm run dev |
Start the Vite renderer server; no Electron bridge or game connection |
npm run electron:dev |
Build and launch the desktop app |
npm run typecheck |
Check renderer and Electron TypeScript configurations |
npm test |
Run simulated exchange packet tests without a game account |
npm run build |
Check types and build both renderer and Electron code |
npm run dist:local |
Build a Windows installer without publishing |
npm run screenshots |
Capture the renderer with offline sample data |
Native dependencies are rebuilt for Electron during npm ci. See Contributing for setup troubleshooting and validation expectations.
Dark Ages client <--> Local proxy :2615 <--> Game server
|
Per-character engines
|
Electron + SQLite + React UI
|
AislingExchange API
The launcher routes the game client through a local TCP proxy. Per-character engines track inventory, match whispers, coordinate exchanges and record transactions. Electron connects that core to the React interface through a preload bridge.
- Architecture and source map
- Contributing and validation
- Building and publishing releases
- Screenshot workflow
- Changelog
Built with Electron, React, TypeScript, Vite, Tailwind CSS and SQLite.
Project code is available under the ISC license. Dark Ages artwork and third-party dependencies retain their respective owners' rights; see third-party notices. DAMerchant is a community project, not an official Dark Ages client.




