Skip to content
Herlehy Development

Project 02

LastRound

Real-money skill-based esports tournament platform — full payment lifecycle, KYC, brackets, and dispute resolution.

Client
An esports start-up, pre-launch
Built with
Next.js · Supabase · Authorize.net · Didit

What we built

A real-money tournament platform for competitive gaming (client project, pre-launch). Players deposit funds, enter skill-based tournaments, and withdraw winnings — which means the platform is, underneath, a payments and compliance system with a game attached.

Built end-to-end: deposits through Authorize.net Accept Hosted, a full-page redirect so no card data ever touches the app's origin; idempotent deposit fulfilment with a reconciliation path that recovers missed or failed confirmations; identity verification (KYC) through Didit gating withdrawals; a manual, admin-approved payout queue for launch; tournament brackets with automatic advancement; and a dispute-resolution flow with evidence upload.

Money paths are built to be safe under retries and attack: request handling is idempotent, payment and identity webhooks are protected by replay guards, and the database layer was audited for privilege escalation and insecure direct object references.

The payment and KYC layers are provider-agnostic. The platform previously ran Stripe and PayPal integrations and currently runs on Authorize.net and Didit.

  • Authorize.net Accept Hosted deposits: full-page redirect, no card data on the app's origin
  • Didit identity verification before any withdrawal, with payouts through an admin-approved queue
  • Idempotent request handling, webhook replay guards and a database audited for privilege escalation and IDOR

Players, tournaments and amounts in these screenshots are sample data from pre-launch testing.

LastRound home screen: a featured tournament with prize pool, a payouts ticker, and a tournament browser listing entry fees and prizes.
Tournament browser with entry fees, prize pools and fill counts.
LastRound transactions ledger listing withdrawals, credit purchases, tournament entries and refunds with statuses and amounts.
Player ledger: deposits, entries, refunds and withdrawals.
LastRound How It Works page explaining credits, competing, climbing ranks and cashing out.
How credits, entries and cash prizes fit together.