Skip to main content

System Architecture

This document describes the JoyFlick platform architecture as confirmed from the live production site at joyflick.com. All claims are sourced from HTML source inspection, Terms of Service (v1.0.0, 2026-02-12), and Privacy Policy (v1.0.0, 2026-01-01). Items that could not be confirmed from public sources are marked accordingly.

Component Diagram

                         ┌──────────────────────────────────┐
│ joyflick.com │
│ Next.js App (App Router) │
│ Sentry: platform-frontend │
│ Release: 1.15.2 │
└──────┬───────────┬───────────────┘
│ │
┌────────────────┘ └────────────────┐
▼ ▼
┌───────────────────────┐ ┌─────────────────────────┐
│ privy.joyflick.com │ │ hosting-bucket │
│ Auth + Embedded │ │ .elympics.ai │
│ Wallets (Privy) │ │ Unity WebGL builds │
│ │ │ (.data.br, .wasm.br, │
│ App: cmll1ogwd003w │ │ .framework.js.br, │
│ 0cksy6vq9bp2 │ │ .loader.js) │
└───────────────────────┘ └─────────────────────────┘

┌────────────────────────────────────────────┘

┌───────────────────────┐ ┌─────────────────────────┐
│ Game Hosting Domains │ │ Game Server Regions │
│ *.elympics.host │ │ *.elympics.ai │
│ │ │ │
│ Per-game subdomains │ │ warsaw-gs.elympics.ai │
│ (see Game Delivery) │ │ dallas-gs.elympics.ai │
└───────────────────────┘ │ tokyo-gs.elympics.ai │
│ mumbai-gs.elympics.ai │
┌────────────────┐ │ belgium-gs.elympics.ai │
│ Static CDN │ └─────────────────────────┘
│ static. │
│ elympics.cc │ ┌────────────────────┐
│ (OG images, │ │ Image Proxy │
│ assets) │ │ imgproxy. │
└────────────────┘ │ elympics.ai │
└────────────────────┘
┌────────────────┐
│ Analytics │ ┌────────────────────┐
│ Google Tag │ │ Base (Chain 8453) │
│ Manager │ │ USDC Contract: │
│ G-6MFNQR1PJ6 │ │ 0x833589fCD6eDb6 │
└────────────────┘ │ E08f4c7C32D4f71b │
│ 54bdA02913 │
└────────────────────┘

Frontend

PropertyValueSource
FrameworkNext.js (App Router)/_next/static/chunks/app/layout-*.js in HTML
Build toolWebpack/_next/static/chunks/webpack-*.js
Error trackingSentrydata-sentry-element, data-sentry-source-file attributes
Sentry projectplatform-frontendbaggage: sentry-release=platform-frontend@1.15.2-Prod
Sentry environmentProdbaggage header
Sentry org ID4508573670637568baggage header
Sentry public keyb46e7a99e255a3a21790bc54cb079b6bbaggage header
PWAYes — standalone, portrait/manifest.webmanifest
Application nameJoyFlickmanifest + meta tags
AnalyticsGoogle Analytics G-6MFNQR1PJ6GTM script tag
OG image CDNstatic.elympics.ccog:image meta tag

The layout source file is layout.tsx (confirmed via data-sentry-source-file="layout.tsx"), consistent with Next.js App Router conventions.

Authentication

Authentication is handled by Privy, accessed via privy.joyflick.com.

  • Privy App ID: cmll1ogwd003w0cksy6vq9bp2
  • Embedded wallets are created through Privy (confirmed by iframe URL: privy.joyflick.com/apps/.../embedded-wallets)
  • Non-custodial architecture per ToS Section 4.1: "a cryptographic wallet is created for you via Privy"
  • The platform uses "smart contracts, session keys, permissions, or other technical controls" for gameplay transactions (ToS Section 4.4)

See Auth for details.

Game Delivery

Games are Unity WebGL builds served from Elympics infrastructure. Each game build consists of Brotli-compressed artifacts:

  • Build.data.br — game data
  • Build.wasm.br — WebAssembly binary
  • Build.framework.js.br — Unity framework
  • Build.loader.js — loader (uncompressed)
  • Build.elympicsmeta.json or *_meta.json — metadata

Hosting Layers

DomainPurpose
hosting-bucket.elympics.aiUnity WebGL build artifacts (per-game UUID or slug paths)
hosting-meta.elympics.aiGame marketing assets (hero images, HTP screens, icons, videos, OG images)
*.elympics.hostPer-game hosting subdomains (one per game)
imgproxy.elympics.aiImage transformation/proxy
static.elympics.ccStatic CDN (OG images, platform-level assets)

Some games use UUID-based paths (e.g., hosting-bucket.elympics.ai/{uuid}/{build-number}/), while at least one (Block Buster) uses a named path (block-buster-platform/{build-number}). At least one game ships separate desktop and mobile builds under the same UUID.

Per-Game Hosting Subdomains

Each game has a dedicated subdomain on elympics.host:

GameSubdomainJoyFlick URL
Block Busterblock-buster.elympics.hostjoyflick.com/block-buster
Breaklinebreakline.elympics.hostjoyflick.com/breakline
Fortune Cannonfortune-cannon.elympics.hostjoyflick.com/fortune-cannon
Jack 21jack-21.elympics.hostjoyflick.com/jack-21
Money Stackmoney-stack.elympics.hostjoyflick.com/money-stack
Neon Masterneon-master.elympics.hostjoyflick.com/neon-master
Sky Snatchersky-snatcher.elympics.hostjoyflick.com/sky-snatcher
Solitairesolitaire.elympics.hostjoyflick.com/solitaire
Sushi Hitsushi-hit.elympics.hostjoyflick.com/sushi-hit
Sweet Rushsweet-rush.elympics.hostjoyflick.com/sweet-rush
Top Flighttop-flight.elympics.hostjoyflick.com/top-flight

Game Server Regions

Five game server regions are referenced in the HTML, each exposing a /health endpoint:

RegionDomain
Warsaw (EU)warsaw-gs.elympics.ai
Dallas (US)dallas-gs.elympics.ai
Tokyo (Asia)tokyo-gs.elympics.ai
Mumbai (Asia)mumbai-gs.elympics.ai
Belgium (EU)belgium-gs.elympics.ai

Match Format

Per ToS Section 3.1: JoyFlick offers "skill-based gameplay experiences, including asynchronous player-versus-player formats." Outcomes are determined by player skill and performance as measured by the platform's scoring rules.

Per ToS Section 3.2: "For asynchronous formats, you acknowledge that opponent selection and timing depend on demand and availability."

The primary competitive format is async PvP — players do not compete in real-time. Each player plays independently and scores are compared after completion.

Settlement and Payments

PropertyDetailSource
BlockchainBaseToS Section 4.2
AssetUSDCToS: "currently intended to be USDC on Base"
USDC contract0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913HTML source
Wallet modelNon-custodial via PrivyToS Section 4.1
Platform controlsSmart contracts, session keysToS Section 4.4
Withdrawal methodsCrypto (Base network) or virtual card (Card Partner)ToS Section 8.1
Internal currencyDiamonds (no monetary value, off-chain)ToS Section 6.4
Matching timeout24 hours for async PvP, then refundToS Section 7.3
Settlement contractBattle Wallet (0x6938...6b5e) — non-custodial on-chain settlementOn-chain

Monitoring and Analytics

ServiceIdentifierSource
Google Analytics / GTMG-6MFNQR1PJ6 (GTM container: GTM-WHGCGJCP)Script tag in HTML
Sentryorg 4508573670637568, key b46e7a99e255a3a21790bc54cb079b6bBaggage header
FirebaseConfirmed (no public ID found)Privacy Policy Section 3
HotjarConfirmed (no public ID found)Privacy Policy Section 3

Corporate Entity

Elympics, Inc. — registered in Kingstown, Saint Vincent and the Grenadines. JoyFlick is a product of Elympics (ToS Section 1.1).