new plugin

Core States (summarized)

  • OPEN – Created, no opponent yet.
  • PENDING OUTCOME – Two players locked in, waiting for outcome.
  • FROZEN – Outcomes conflict, admin intervention needed.
  • FINALIZED (Tie) – Tie, no rep change.
  • FINALIZED & CLOSED – Winner/loser agreed, transfer + fee confirmed, rep awarded.

2. Enhancements to the flow (what’s “missing”)

These are things you’ll almost certainly want once you start building it.

A. Extra Statement States / Timeouts

  1. DRAFT (optional)
    • User starts a statement but doesn’t submit yet.
    • Good for more complex Statements or mobile users.
  2. EXPIRED (no opponent joined in time)
    • If no one clicks “Agree to Statement” before the outcome date (or some time limit), set
      Status = EXPIRED and remove from Open list.
  3. AWAITING OUTCOME SUBMISSION
    • After outcome date, system nags both users to submit outcome.
    • Add timeouts:
      • If one submits, the other doesn’t → after X days, auto-mark as forfeit or send to FROZEN for admin.
  4. AWAITING TRANSFER
    • After winner/loser are agreed:
      • Status = AWAITING TRANSFER until loser confirms transfer.
    • If loser never confirms → possible “non-payment” flag / admin escalation.
  5. AWAITING WINNER CONFIRMATION
    • Once loser clicks “I transferred,” move to AWAITING RECEIPT CONFIRMATION by winner.
  6. AWAITING SITE FEE / ADMIN CONFIRMATION
    • As you already described; formally model this as distinct states so the UI can show progress steps.
  7. Statement Maker must accept each users (application to the statement)

B. Player Reputation System – more detail

Right now, you only give rep points to the losing player after they pay up. That’s a cool twist: rewarding honorable losers.

You might want:

  • Separate stats per user:
    • Total Statements entered
    • Wins / Losses / Ties
    • Total amount risked
    • Total amount paid in losses
    • Number of disputes / FROZEN cases involving them
  • Reputation score formula (examples):
    • Base points per loss paid (scaled by risk amount)
    • Small bonus if they self-report “I lost”
    • Penalty or flag for frozen disputes where admin rules against them
  • Badges or tiers:
    • “Honorable Loser (Bronze/Silver/Gold)”
    • “Never Dodges a Loss”
    • “High Stakes Player”

This gives the platform a “social proof” vibe, not just gambling.


C. Admin Tools / Flows You’ll Need

  1. Admin dashboard for Statements
    • Filters for:
      • OPEN, PENDING OUTCOME, FROZEN, AWAITING FEE CONFIRM, FINALIZED, EXPIRED
    • Ability to:
      • Manually set winner/loser
      • Override outcomes
      • Mark transfers/fees as complete
      • Add internal notes / reasons
  2. Evidence & Disputes for FROZEN Statements
    • Allow each user to:
      • Upload screenshots / links
      • Type their side of the story
    • Admin view showing:
      • Original Statement details (including “Where to find result”)
      • Both users’ claimed outcomes
      • History of actions (timestamps)
  3. Audit log
    • Every action logged: who clicked what, when.
    • Needed if you ever have real money disputes or need to debug.

D. UX / Product Enhancements

  1. Clear “Statement Profile” page
    • Show:
      • Statement text & all variables
      • Status + step progress bar (e.g., 1/6 Created → 2/6 Awaiting Outcome → …)
      • Both players’ avatars / usernames
      • Timeline of events (created, agreed, outcome submitted, etc.)
  2. My Dashboard
    • Tabs:
      • My Open Statements (I created, awaiting opponent)
      • Statements I Joined
      • Pending Actions (where I owe an outcome, transfer, confirmation, etc.)
      • Past Statements (filter by Won/Lost/Tied)
  3. Notifications
    • In-app + email:
      • Someone agreed to your Statement
      • Outcome date reached – “submit outcome”
      • Opponent submitted outcome – “review & submit yours”
      • You’re marked as loser – “please confirm transfer”
      • Admin decision in a frozen dispute
  4. Filters & categories on Open Statements
    • By:
      • Risk currency (USD, points, whatever)
      • Amount range
      • Category (Sports, Personal Bet, Business, Fitness Challenge, etc.)
    • Option for private / invite-only Statements (not visible to everyone).

E. Money Flow & Safety (concept level)

Right now, the model is:

  • Money sent directly between users (off-platform).
  • Site fee also paid manually, then confirmed by admin.

At the very least, you’ll want:

  • UI text clearly saying you don’t escrow funds (unless you decide to).
  • Flags when:
    • Loser never confirms transfer
    • Winner claims they didn’t receive transfer
  • Potential enhancement (later):
    • True escrow flow where funds go through the platform for auto-verified completion.
      (More complex + legal/regulatory implications.)

F. Anti-abuse & Social Layer

  • Ability to block other users from making or joining your Statements.
  • Report user / “Report this Statement” buttons.
  • Rate your opponent afterwards (cooperative, toxic, etc.) – contributes to a “trust score.”
  • Limit maximum risk per new user or per time period to avoid whales abusing or newbies getting wrecked.

3. Slightly Upgraded Overall Lifecycle

If we compress all enhancements into a clean lifecycle, you get:

  1. Create Statement → DRAFT → OPEN
  2. Opponent joins → PENDING OUTCOME
  3. Outcome date hits → AWAITING OUTCOME SUBMISSION
  4. Outcomes:
    • Both agree winner/loser → AWAITING TRANSFER
    • Both say tie → FINALIZED (Tie)
    • Disagree or timeouts → FROZEN (Admin)
  5. Transfer + fee confirmations:
    • Loser confirms transfer → AWAITING WINNER CONFIRM
    • Winner confirms → AWAITING SITE FEE
    • Winner pays fee → AWAITING ADMIN CONFIRMATION
    • Admin confirms → FINALIZED (Closed), rep assigned to loser
  6. Side paths:
    • No opponent in time → EXPIRED
    • Admin can override at several points.

Leave a Reply

Your email address will not be published. Required fields are marked *