rules // market_protocol

How LaunchWar Works

This is the competition protocol. It describes how startups enter, compete, and rank on the LaunchWar leaderboard.

$ cat /etc/launchwar/01_submit.md

01 — Submit

Any authenticated user may submit a startup by providing a name, website URL, logo URL (optional), description (optional), and category. Submissions are created with an initial status of pending_review.

  • Users may only have one active product at a time
  • Each website URL must be unique across all products
  • Name must be ≤ 100 characters
  • URL must be a valid http(s) address ≤ 512 characters

$ cat /etc/launchwar/02_moderation.md

02 — Moderation

Every submission is auto-moderated by an AI system (Gemini) that analyzes the name, description, and website URL. The system classifies the submission and returns a quality score (0–100) and optional flags.

The AI can recommend one of three outcomes:

  • Approve — product is listed and visible
  • Review — stays in pending_review until admin action
  • Reject — status set to moderation_rejected

Possible AI flags: spam, phishing, impersonation, illegal, deceptive, offensive.If the AI is unavailable or fails to parse a response, the product is auto-approved by default rather than blocked.

An admin (configured via ADMIN_EMAILS) can manually re-moderate any product at any time.

$ cat /etc/launchwar/03_bidding.md

03 — Bidding

To appear on the leaderboard, a product must have at least one confirmed bid. The bidding flow:

  1. Authenticated user selects an amount (minimum $5 / 500 cents)
  2. A Bid record is created with status: "pending"
  3. A Creem.io checkout session is created for that exact amount
  4. User completes payment on Creem.io
  5. Creem webhook confirms the payment
  6. The bid status changes to "confirmed"

A user can hold only one confirmed bid per product. If a user already has a confirmed bid on a product, they cannot place another. Non-confirmed bids (pending, expired, failed) do not block new bids.

$ cat /etc/launchwar/04_ranking.md

04 — Ranking

Rankings are determined by the cumulative total of all confirmed bids on a product, not by the size of any single bid.

A product's total is calculated as:

SUM(all bids where status = 'confirmed'.amount_cents)

Products are sorted by:

  • Primary: total confirmed bids, descending
  • Tiebreaker: earliest confirmed_at (first to reach that total ranks higher)

Leaderboards exist in two modes: 24h (confirmed bids within the last 24 hours) and all-time.

$ cat /etc/launchwar/05_competition.md

05 — Competition

Rankings are dynamic. As other startups place confirmed bids, relative positions change.

To overtake the current total, a new bid must exceed the existing sum by at least the minimum increment configured per category (default: $1 / 100 cents).

The product owner may place the first bid on their own product. Once other users have confirmed bids, the owner is blocked from placing additional bids (to prevent self-bidding wars).

$ cat /etc/launchwar/06_visibility.md

06 — Visibility

Products that have been approved and have at least one confirmed bid appear on the leaderboards and their dedicated product pages.

Each product page displays:

  • Total confirmed bids and cumulative total
  • Outbound click count (tracked via analytics events)
  • The top 10 most recent confirmed bids (anonymized)

$ cat /etc/launchwar/07_refunds.md

07 — Payments & Refunds

All payments are processed through Creem.io. LaunchWar does not directly process payments or hold funds.

Bid states:

  • Pending — bid created, checkout not yet completed (expires after Creem timeout)
  • Confirmed — payment verified via Creem webhook
  • Expired — checkout session expired without payment
  • Refunded — refund processed by Creem (bid status reverts; does not count toward leaderboard totals)
  • Failed — payment service error

Refunds and disputes are handled entirely by Creem.io. If a bid is refunded, it is excluded from leaderboard calculations going forward.

$ cat /etc/launchwar/08_prohibited.md

08 — Prohibited Content

Submissions that receive any of the following flags are subject to rejection:

  • Spam — generic AI text, gibberish, meaningless content
  • Phishing — requests credentials, fake login pages
  • Impersonation — mimics a known brand or company
  • Illegal — promotes illegal activity
  • Deceptive — unverifiable financial claims (revenue, user counts) without evidence
  • Offensive — hate speech, harassment, explicit content

$ cat /etc/launchwar/09_fairplay.md

09 — Fair Play

Users should not attempt to manipulate rankings through fraudulent means, including but not limited to: automated bid creation, fake accounts, or coordinated artificial bidding. The platform reserves the right to remove products and ban accounts that violate these principles.

$ cat /etc/launchwar/end

Questions about the protocol? Contact: @hafid_bas