Most marketplaces live on the web. Mine lives inside Discord. 2K Service Plug is a marketplace where NBA 2K players buy and sell services — account grinding, build creation, rec partners, Pro-Am coaching — and every single transaction flows through Discord bots. No website. No app store listing. Just a Discord server with 2,000+ members, 150+ completed orders, and $10K in revenue in the first quarter.
Here's the full architecture behind it and why Discord turned out to be the right platform for this kind of marketplace.
The Ticket-Based Order System
Every order starts the same way. A buyer opens the server, scrolls to the service category they want, and clicks a button on an embed panel. That button triggers a bot that creates a private ticket channel — visible only to the buyer, available grinders for that service type, and moderators.
Inside the ticket, the bot posts a structured form: what service do you need, what's your platform (PS5, Xbox, PC), what's your budget, what's your timeline. The buyer fills it out. The bot pings available grinders who match the criteria. A grinder claims the ticket. Price gets negotiated in the channel. Once both sides agree, the bot locks the ticket to just those two parties plus a moderator, and the order begins.
Why tickets instead of a web checkout flow? Because 2K services are inherently conversational. A buyer doesn't know exactly what they need — they know their player is 85 overall and they want to hit 99, but the path to get there depends on their build, their badges, their playstyle. That conversation has to happen before a price can be set. Discord tickets are the natural container for it.
The 13-Role Hierarchy
Running a marketplace with real money changing hands requires trust infrastructure. I built that through a 13-role permission system:
- Owner / Admin: Full server control, bot configuration, financial oversight, dispute resolution with final authority
- Head Moderator / Moderator: Ticket oversight, strike issuance, escalation handling. Head mods can override standard mod decisions.
- Senior Grinder / Grinder / Trial Grinder: Three tiers of service providers. Senior grinders get priority on high-value tickets and can mentor trials. Trial grinders have a 5-order probation period with mandatory mod review on every ticket.
- Middleman: Escrow handlers for trades over $50. Trained and vetted separately from grinders. They hold items or currency during the transaction and release on confirmation from both parties.
- VIP / Member / Verified: Buyer tiers. VIP members get priority support and early access to new services. Verified members have completed phone verification through Discord.
- Vouch Verified: Members who have received 5+ verified vouches from completed transactions. Acts as a trust signal in the community.
- Muted / Suspended: Restriction roles. Muted members can read but not post. Suspended members lose access to all service channels.
Every role maps to specific Discord permissions. Grinders can see service channels. Middlemen can see escrow channels. Moderators can see everything. The bot enforces these boundaries — no human has to manually assign channel visibility.
The Strike System
Trust in a marketplace comes down to accountability. The strike system is how I enforce it:
- MINOR (1 point): Late delivery, poor communication, failing to update ticket status. The kind of things that frustrate buyers but don't indicate bad faith.
- MAJOR (2 points): Delivering incorrect services, refusing a reasonable refund request, using a buyer's account for unauthorized purposes. These indicate negligence or carelessness.
- CRITICAL (3 points): Scamming, account theft, selling buyer information, chargebacks. Instant suspension regardless of prior history.
At 3 cumulative points, a grinder is automatically suspended. The bot removes their grinder role, closes their active tickets with buyer notification, and logs the suspension in the mod channel. Points decay at 1 per month for minors, but majors are permanent. A grinder with two minor strikes can recover in two months. A grinder with one major strike carries it forever.
This system did more for marketplace quality than any other feature I built. Grinders self-police because the consequences are transparent and automatic. The bot tracks everything — there's no arguing about what happened because the ticket history is the record.
The Middleman Escrow Flow
For any transaction over $50 or any trade involving high-value items, a middleman is required. The flow works like this:
The buyer and seller agree on terms in the ticket. Either party (or the bot, for transactions over the threshold) requests a middleman. The bot pings available middlemen. One claims the escrow. A new private channel is created with just the buyer, seller, middleman, and a mod observer.
The buyer sends payment or items to the middleman. The middleman confirms receipt. The seller delivers the service or items. The buyer confirms delivery. The middleman releases payment to the seller. The bot logs the entire flow with timestamps.
If there's a dispute at any point, the middleman freezes the transaction and escalates to a moderator. The mod reviews the ticket history, the escrow channel logs, and any screenshots, then makes a ruling. Rulings are logged and can be appealed to an admin exactly once.
The AI Moderator
With 2,000+ members, manual moderation doesn't scale. I built an AI moderator that handles the most common moderation task: people trying to sell services outside the ticket system.
It monitors general chat channels for selling language — price mentions, "DM me for," service offers, payment method references. When it detects a potential off-channel sale, it doesn't delete the message or warn the user. Instead, it replies with a friendly redirect: "Looks like you're offering a service. Head to #service-panels to open a ticket — it protects both you and the buyer."
This approach works better than punishment. The user doesn't feel attacked. Other members see the redirect and learn the system. And the ticket system gets the traffic it needs to function as the trust layer. Hard moderation (deletions, mutes) is reserved for repeat offenders and actual rule violations.
The Vouch System
After every completed order, the bot prompts the buyer to leave a vouch in the #vouches channel. The vouch includes the service type, the grinder's name, a 1-5 star rating, and a text review. The bot validates that the vouch corresponds to an actual completed ticket — you can't vouch for someone you never transacted with.
Vouches are public. Every grinder's profile (accessible via a bot command) shows their total vouches, average rating, and recent reviews. Buyers use this to choose grinders. Grinders use this as a reputation asset. The social proof loop drives the entire marketplace — good service leads to good vouches leads to more orders.
The Numbers
- 2,000+ members
- 150+ completed orders
- $10K revenue in the first quarter
- 12 service types (grinding, builds, coaching, trades, rec partners, and more)
- 4.7/5 average vouch rating
- Zero successful scams (3 attempts caught by the escrow system)
The Stack
- Discord.js 14 — bot framework handling all ticket automation, role management, and moderation
- Node.js — runtime for the bot process
- PostgreSQL — stores ticket history, vouch records, strike logs, transaction data, and grinder profiles
The entire marketplace runs on a single bot process. No web server, no CDN, no load balancer. Discord handles the infrastructure — message delivery, file hosting, user authentication, push notifications. I just built the business logic on top of it.
If you're thinking about building a marketplace for a niche community, consider whether your users already live in Discord. If they do, meet them there. The platform gives you real-time communication, identity, permissions, and notifications for free. You just need to build the trust layer. That's what the bots are for.