The platform

One codebase, from the ledger to the lobby

Most iGaming platforms are a core plus a dozen vendors stitched together. Ours is built as a single product: every module below reads the same wallet truth, carries the same brand context and ships from the same repository.

Architecture

Four layers, one event spine

Player-facing apps talk to a single API gateway. Behind it, focused services own their own data and publish what happens to a shared event stream, which the CRM, notifications and reporting consume.

Outlined in orange: the money path. It runs on its own connection pool and is never shared with reporting or analytics.

Modules

What is in the box

Money

Wallet and ledger

The wallet is the single source of truth for money. Every bet, win, deposit, withdrawal and bonus movement is an append-only, double-entry ledger row. Balances are derived from the ledger, never stored beside it and hoped to agree.

  • Integer money in minor units, in every service and every message
  • Real-money and bonus-money balances kept separate, with per-bet settlement across both
  • Idempotent settlement: a duplicate delivery of the same bet or win is a no-op, enforced by the database, not by application code
  • Wagering progress updated on the same settlement path as the balance
Accounts

Players and sessions

Registration, login, sessions and the player record, including identity verification state and self-exclusion. Sessions live outside the application tier, so any instance can serve any player.

  • KYC lifecycle with verified, pending and rejected states and the reason recorded
  • Self-exclusion and account status enforced before any money moves
  • Sensitive identifiers hashed at rest, with retention rules per jurisdiction
Money

Payments

Deposits and withdrawals with an explicit lifecycle. Nothing is marked complete until the payment provider has confirmed it, so an abandoned checkout leaves a pending record, never a phantom balance.

  • Deposit confirmation publishes an event that the bonus engine and notifications consume
  • Withdrawal approval and rejection tracked with operator attribution
  • Payment provider details masked before they reach the back office
Promotions

Bonus engine

Campaigns, triggers and the full lifecycle of a player bonus, from award to wagering to release, forfeit or expiry. Every bonus reaches a terminal state, so exposure is always accountable.

  • Deposit-triggered campaigns evaluated from the payment event stream
  • Wagering requirements tracked against real settlement, not estimates
  • Batch bonus upload for operations teams, with validation before anything is awarded
  • Bonus money movements land in the same ledger as real money
Content

Games and rounds

A catalogue of studios and games, enabled per brand, and a game-round service that settles vendor bets and wins against the wallet with a per-round audit trail.

  • Vendor integrations isolated behind one settlement contract
  • Every round settled through the wallet's idempotent path
  • Lobby, categories and favourites served from the catalogue, cache-friendly by design
Engagement

Native CRM

In development

A player-engagement platform built into the core rather than licensed and bolted on. It reads the same wallet, bonus and session signals as everything else, and every message and offer is gated by consent, exclusion and responsible-gaming rules inside the same trust boundary as the money.

  • Player data platform and event pipeline fed by the existing event stream
  • Segmentation, real-time triggers and journey orchestration
  • Channel delivery, personalised content and experimentation
  • Bonus bridge: offers award through the bonus engine, never around it
Operations

Back office

One operator console for players, payments, bonuses, compliance and reporting, with roles and permissions and an attributed record of who changed what.

  • Player search, account actions and KYC review
  • Withdrawal queue, deposit lookup and manual adjustments with reasons
  • Campaign management and batch bonus tools
  • Financial and regulatory reports, served from replica and rollup tiers, never from the live money path
Tenancy

Multi-brand by design

The platform models operators and brands as first-class data. Every record, event and service call carries its brand, and a new brand is configuration on the same core rather than a fork of the code.

  • Per-brand currencies, languages, theme, payment methods and game providers
  • Policy packs that set the compliance tier for a brand's jurisdiction
  • Brand-scoped domains, comms identities and back-office access
Trust

Compliance and responsible gaming

Controls live next to the wallet, so they are enforced where the money is rather than in a layer that can be bypassed. The policy pack decides how strict they are for a given brand.

  • Identity verification before deposit eligibility
  • Deposit, loss and session limits, and a self-exclusion registry every service checks
  • AML and gross-gaming-revenue reporting from the ledger
  • Data retention and hashing rules set per jurisdiction
Engineering

Built to be run, not just launched

Stateless application tier
No instance holds state another would need. Scaling is adding an instance behind the load balancer, never a re-architecture.
Idempotent by construction
Every money mutation is safe under duplicate delivery, enforced with database constraints rather than check-then-write code.
Deadlines and backpressure everywhere
Every service call and every query carries a timeout. Every event consumer has a bounded in-flight limit.
Read and write paths separated
Reports and dashboards read from replicas and rollups. The primary database serves the money path and nothing heavier.
Sized deliberately
Capacity decisions point at a real load number. No sharding, no service mesh, no pattern justified by hypothetical scale.
Defended at the edge
CDN and web application firewall in front, origin hidden, volumetric attacks absorbed before they reach the platform.
Partners

Running our own brands today. Open to the right partners.

If you operate in iGaming, or plan to, and want to talk about running on the platform, we would like to hear from you.