WAAOVOU
© 2026 Slava Fomin
Technical Brief · MVP Scope

WAAOVOU

The more we connect, the more we value.

窩宝  ·  We All Are One. Value Of Us.  ·  A Telegram Mini App for the MZ K-POP audience.

Technical brief prepared by Slava Fomin (slava@fomin.io)

Copyright notice

This technical brief — the written specification, feature-complexity matrix, architectural analysis, effort estimates, and page design — is the original work of Slava Fomin, shared with you in confidence to discuss a possible collaboration. Please don’t publish, redistribute, or reuse it to build or commission the described system without my written consent.

Overview

Earning jettons

By completing various missions featured in the app, the users can earn jettons (main WAAO jetton + per-artist jettons). To drastically reduce network fees, jettons are accrued to the in-app accounts first (backed by database).

Each user would be able to see the list of accruals (e.g. “+100 WAAO sign-up reward”) and would be able to withdraw jettons to the real TON wallet connected via TON Connect. On withdrawal, the user’s in-app balances are set to zero and the corresponding amount of jettons is sent to their TON account from the jetton vault (the system would need to keep the private key for the jetton vault).

Transferring jettons

On-chain jettons can be freely moved between TON wallets without any limits.

Spending jettons

On-chain jettons can be spent inside the app to obtain various benefits. In order to do this, the app would generate an invoice with a unique ID and submit a transaction on behalf of the user. The transaction would transfer the required amount of jettons to the vault, specifying the invoice ID. The system would monitor all incoming messages and would automatically fulfill the paid invoices.

Spend Cost Mechanic
Online concert (WAAO Live Stage, real-time streaming) 5,000 WAAO Access to “Video Chat Live” in group @WAAOVOU_Hub; on payment, the bot DMs a private invite link.
Offline concert voucher (physical K-POP ticket) 100,000 WAAO (≈ $100 ticket voucher) Redeemable via the Mini App main banner for real offline concert admission.

The app just handles the payment processing, but not fulfillment. Implementing a live streaming system or ticket processing system is out of the scope of this project.

Sign up

When accessing the TMA for the first time, the user would need to complete a sign-up process by selecting their country from the list, selecting one of the featured artists as their favorite artist, and tapping “Join”.

We can actually detect the user’s language from the TMA authentication and pre-select the country or sort the list of countries so that the user can easily find their country.

Selecting a favorite artist is mandatory. The selected artist determines which per-artist jetton the user earns — whenever artist tokens are accrued, they are always the tokens of the currently selected artist (see Artist rewards). The selection can be changed later on the profile page.

Channel membership verification

In order to use the app, the user must be an active member of the @WAAOVOU_Official Telegram channel. To implement this a Telegram bot must be developed that would join the channel as admin and would monitor all join/leave events happening in the channel, maintaining a list of active members.

If the user is not a member of the channel, they would be presented with a wall screen asking them to join the channel.

Referral system

Each user would have a special unique link (URL) pointing to the WAAOVOU TMA containing a special opaque referral invitation token.

The user would send a link to their friends in order to invite them to the app.

When visiting the TMA by following a referral link and signing up, new invited users would become referrals of the inviting user who would become the referrer for them.

The system would track referrer/referral relationships and would display how many referrals you have.

Missions system

The app would feature various missions that users would be able to complete in order to earn jettons.

Each mission would have the following settings:

In order to start a mission, the user would need to somehow interact with the system, or they can be started automatically.

Missions

🏅 Sign Up

Completion: Open the app and complete the sign-up process.

Reward:

Repeatability: Once.

🏅 Invite a Friend

Completion: Send a link to another user who would need to open the app and complete the sign-up process, becoming your referral.

Reward:

Repeatability: Unlimited.

🏅 Become Invited

Completion: Follow a referral link sent to you by another user, open the app and complete the sign-up process.

Reward: +10 WAAO

Repeatability: Once.

🏅 Daily Check-in

Completion: Open, fully load the app and keep it open for at least 10 seconds (advertisement banners can be displayed on the main screen during this time).

Reward:

Repeatability: Daily, starting from the second day after sign-up.

🏅 Watch YouTube Video

Completion: Follow a link to a YouTube video.

Reward: +10 WAAO

Repeatability: Daily.

🏅 7-Day Streak Check-in

Completion: Complete check-in missions for 7 consecutive days.

Reward: +50 WAAO

Repeatability: Weekly.

Daily check-in reminder

If a user hasn’t checked in for 23 hours, the bot auto-DMs a reminder: “Don’t lose your 7-day streak bonus (+50 WAAO)! Check-in now and grab today’s jackpot entry.”

Mega Jackpot

Mega Jackpot is drawn daily from all users who have tickets; odds are based on the number of tickets they hold. All three rounds are executed in parallel.

Round Winners WAAO reward
1st 1 +100,000
2nd 3 +10,000 each
3rd 10 +1,000 each

The jackpot is implemented entirely on the back-end — a scheduled daily draw with no on-chain component and no cryptographic / provable-fairness verification. Trust that the draw is run honestly rests on WAAO Entertainment’s operational credibility (its real concert track record), not on math. Acceptable for the MVP; revisit with a commit-reveal / on-chain RNG scheme if the community ever demands verifiable fairness.

Fan World Cup

A country leaderboard is displayed in the app for the current month, showing how individual countries compare to one another based on a rank. The rank is calculated as (Attendance Rate %) + (Referral Score %) weighted against the country’s total user base — so large countries (e.g., India) don’t dominate and smaller passionate countries can win.

Every calendar month, at month’s end, the system generates a snapshot of a country leaderboard that can later be seen in the app as a “previous month”. The country winning the first place receives 10,000 WAAO that are randomly distributed among 100 random users from this country (each receiving 100 WAAO).

A country can participate in the list only if it has at least 1,000 registered users.

Artist rewards

For every whole 100 WAAO tokens ever accrued to a user, one artist token is automatically accrued as well by the system.

The artist token that is accrued is always the token of the user’s currently selected artist (their “favorite coin”, 최애 코인). Every user picks one of the featured artists during sign up and can switch to a different featured artist at any time on the profile page. Changing the selected artist only affects future accruals — artist tokens already earned for a previously selected artist are kept as-is.

Profile page

The app features a profile page where the user can view and manage their account. It displays the user’s key information (selected country, favorite artist, number of referrals, and jackpot tickets) and provides access to account-level actions.

The primary profile action relevant to this brief is changing the selected (favorite) artist: the user can pick a different one of the featured artists at any time. The change takes effect immediately and applies only to artist-token accruals going forward; previously accrued artist tokens are unaffected.

Anti-bot / sybil protection

We should rely on Telegram phone-verification + Cloudflare Turnstile (free, invisible CAPTCHA). Optional IPQualityScore layer for extra safety. No bespoke anti-bot system.

Configuration

All mission settings and reward rates have clear in-code configuration model allowing any changes to be quickly and easily introduced via a single file change + commit.

Implementation

The technical platform is split into several principal systems:

  1. Back-end server application written in Node.js with REST and SSE APIs for client interaction. Responsible for most of the application logic, authentication, sign-up, referral tracking, jetton accrual and withdrawal, missions processing, etc.

  2. Background service (workers). A system responsible for automatic processing of periodic events, payment processing, time-sensitive mission handling, jackpot and leaderboard calculations, etc.

  3. A front-end client TMA SPA application written in Svelte (SvelteKit) with TON Connect integration. It serves as a user-facing UI of the application.

  4. Design system and UI library components. A set of design guidelines, styles, CSS and UI components (buttons, controls, inputs, selectors, etc.) implemented as a reusable library.

  5. Telegram bot server implemented in Node.js using GrammY framework.

  6. Jetton vault (highload wallet smart contract) for jettons distribution.

  7. Dedicated MongoDB database for storing the app’s data (user accounts, in-app jetton accounts, mission completion states, jetton accruals, invoices, leaderboard data, etc.).

  8. Redis store for caching, locking and realtime events.

  9. LGTM+ stack (Loki, Grafana, Tempo, Mimir, Pyroscope) for complete system monitoring and operations.

  10. GitHub and GitHub Actions for storing code, collaborating and implementing autonomous CI/CD pipeline.

  11. An AWS cloud platform for provisioning compute and storage resources.

Scalability

Considering the popularity of the K-POP content and the size of the market, it’s crucial to enable perfect elastic horizontal scalability to support an almost unlimited number of users and unexpected traffic spikes.

In order to do this, all systems mentioned above should be designed and implemented in a completely distributed and scalable format, so we can run 3/10/100 instances of each individual component therefore distributing the load and ensuring perfect performance.

To enable perfect availability and redundancy, all the components should be deployed in at least three availability zones (AZs) across the Asia Pacific (AP) AWS region.

App deployment

All server-side components (back-end server, Telegram bot server, workers, etc.) should be deployed directly to AWS via Kubernetes or Fargate platform using containerization (Docker).

Front-end application should be deployed using Vercel or Cloudflare Pages with full CDN support.

Testing

All critical features of the app are covered with unit and functional tests (jetton accrual, etc.).

Release process

The solution would have two deployment targets: stage and production. The stage deployment should have all the settings 100% equal to the production, but with reduced capacity (fewer instances). New app versions would first be deployed to stage for customer verification and approval; after that, the new version would be deployed to the production environment using a rolling update or blue/green deployment strategy.

Feature complexity matrix

Relative engineering complexity and cost of each feature / component, sorted from the most complex and expensive to the least. Use it to sequence the build, size the quote, and choose what to descope or defer from the MVP. Architectural items (scalability, DevOps platform) are included because they carry real, non-trivial cost.

Scale: Complexity — Low · Med · High · V.High. Cost / effort — S · M · L · XL (relative dev time, not absolute price).

# Feature / component Complexity Cost Key complexity / cost drivers Notes / dependencies
1 Jetton vault + on-chain withdrawal (TON Connect, highload wallet, key custody) V.High XL Highload-wallet smart contract; server-side private-key custody + KMS/HSM; TON Connect flow; on-chain tx submission with bounce/retry; accounting invariant (vault balance ≥ sum of all in-app balances); gas management; withdrawal throughput / queueing; full audit trail. Security- and money-critical. Highest single risk. Needs a security review. Blocks any on-chain spend / withdraw.
2 Scalability & distributed architecture (back-end, workers, MongoDB sharding, Redis, 3 AZs, elastic) V.High XL Stateless back-end; MongoDB shard-key design for users / balances / accruals; distributed workers with locking + leader election for scheduled jobs; cache invalidation; multi-AZ HA; autoscaling. Cross-cutting — adds cost to every component. Driven by the “almost unlimited users” ambition. Expensive because it’s everywhere.
3 Fan World Cup (country leaderboard) High L Rank formula across all users per country; aggregation at scale; monthly snapshot integrity; ≥1,000-user (or MAU) gating; randomized distribution to 100 winners. Depends on accrual / attendance data + worker scheduling.
4 Spending (on-chain invoice + blockchain monitoring) High L Invoice generation; on-chain jetton transfer with invoice memo; monitoring TON for incoming transfers to the vault; invoice matching; confirmation / reorg handling; idempotent fulfillment trigger. Fulfillment (streaming / ticketing) is out of scope; the payment pipeline is in scope. Depends on the vault + a TON indexer.
5 Front-end TMA SPA + design system / UI library High L Svelte/SvelteKit TMA; Telegram WebApp SDK (initData, theme, viewport, back / main button, haptics); TON Connect UI; wallet / missions / rank / artist / profile screens; iOS + Android WebView quirks; plus a reusable design-system & component library; polished MZ UX. Largest man-hour line item; the design system is an upfront investment.
6 Channel membership verification Med M Bot-as-admin; join/leave monitoring or on-demand getChatMember + Redis cache (better at scale); wall screen; edge cases (kicked / left / rejoined). Scaling to a large channel is the hard part. Open: live member ledger vs on-demand check (recommended).
7 Missions system (generic engine) Med M Configurable engine: completion / failure criteria, repeatability, reward; per-mission logic hooks; idempotent completion; scheduling. Provides the shared skeleton — but each mission’s completion detection is bespoke (see next row). Foundation for all missions.
8 Individual missions (Sign Up, Invite a Friend, Become Invited, Daily Check-in, Watch YouTube, 7-Day Streak) Med M Engine provides the skeleton (settings, repeatability, reward accrual), but each mission’s completion logic is bespoke and cross-feature — not a ready solution. Custom work per mission: sign-up + side effects; referral + channel-verification hooks (Invite / Become Invited); front-end 10s timer + server-side anti-fraud (Check-in); redirect + per-day tracking (YouTube); consecutive-day state machine with timezone / reset edge cases (Streak). Depends on the missions engine, referral, channel verification, and sign-up. Build the engine and these together as one workstream.
9 Sign up + TMA authentication Med M initData HMAC validation; country select + pre-select from TMA locale; mandatory featured-artist selection; account-creation idempotency; first-run flow. Foundational — everything depends on it. Must be correct; auth underpins all features.
10 Referral system Med M Opaque referral tokens; link generation; referrer / referral graph; anti-abuse (self-referral, cycles, multi-account); referral counters / display. Overlaps with anti-bot.
11 Mega Jackpot (daily draw) Med M Back-end-only scheduled draw — no on-chain component, no cryptographic / provable-fairness verification. Remaining work: weighted random selection across all ticket-holders at scale; distributed locking / leader election so exactly one worker runs the daily draw; idempotent winner accrual across 3 tiers; masked-ID display. Trust rests on WAAO Entertainment’s credibility, not on math (acceptable for MVP). Depends on the accrual ledger + worker scheduling.
12 Artist rewards (per-artist accrual + selection + pools) Med M The 1/100 accrual itself is trivial; complexity comes from the mandatory favorite-artist selection at sign-up plus re-selection on the profile page, routing every accrual to the correct per-artist jetton, per-artist 30M jetton pools, and artist-token handling on withdrawal. Selection is now specified (pick at sign-up, change on profile). Depends on the vault; per-artist 30M pool mechanics still open.
13 Platform / DevOps (LGTM+ monitoring, CI/CD, K8s / Fargate, Vercel / CF Pages, stage / prod, blue-green) Med M One-time skilled setup across many components; cross-cutting. Amortized across the whole project.
14 Anti-bot / sybil (Turnstile + IPQualityScore) Low-Med S-M Third-party integration; Turnstile is trivial, IPQualityScore slightly more. Leverages Telegram phone verification. Cheap; reuses existing services.
15 Daily check-in reminder bot Low-Med S-M Per-user 23h scheduled check + DM; rate-limit-aware sending; user must have started the bot. Cheap; mind Telegram bot rate limits.
16 Earning / off-chain accrual ledger Low-Med S-M DB balances + accrual records; transactional consistency. Straightforward but must be exact. Foundation for balances.
17 Testing (unit + functional) Low-Med S-M Coverage of accrual, jackpot, referrals, etc. Cross-cutting. Scales with coverage ambition.
18 Configuration (in-code) Low S A config module + commit. If a runtime admin panel is required (Aaron’s stated requirement), re-rate to High / L. Decision: in-code vs admin panel.

Top cost drivers (summary): the jetton vault + on-chain withdrawal (#1), the distributed / scalable architecture (#2), and the Fan World Cup (#3) are the three most expensive areas. The front-end TMA + design system (#5) is the largest man-hour line item.

Questions