Skip to content
PONGITDOCUMENTATIONGitHub ↗Back to arcade ↗
V4 · Testnet
Docs/Technical reference

Technical reference

Architecture & integrations

How the browser, relayer, Envio and Monad work together.

One authoritative game#

PONGIT is a Next.js web application with Solidity contracts, a Node relayer and an Envio indexer. Production runs on a VPS behind Caddy HTTPS. PostgreSQL and internal services are private; the browser does not connect directly to the database.

The rooms path is browser → hosted Solidity engine → published Monad state. The financial path is browser owner signature → persistent relayer → Monad market/vault. These paths have different confirmation guarantees.

The following diagram describes the preserved V4 arcade:

01 / BrowserPasskey · controls · preview
02 / RelayerValidation · journal · receipts
03 / Monad contractsPhysics · results · balances
04 / EnvioHistory · replays · payment discovery
Confirmed data returns to the app. The relayer verifies payment candidates against the contracts.

Responsibilities#

ComponentRole
BrowserPasskey interaction, local input intent, bounded prediction, rendering and audio
Arena contractsEpoch-bound consent, engine clock, collision physics, points and result commitments
Common Monad contractsMatchmaking, rooms, participation lock, published ratings, profiles and encrypted records
RelayerValidate signed requests, persist jobs, submit transactions and track receipts
EnvioIndex all supported deployments for history, replay retention, rankings and payment discovery
Vault and marketsOwner-approved spend, funded market accounting, settlement and native payouts
Tournament contractRegistration, seeding, round attachments, results, prizes and refunds

Mera and Envio#

Mera derives the wallet from PRF-capable passkeys. An independent namespace powers the private notebook. The derived keys have different purposes; an arcade authorization never gains wallet spending rights.

Envio provides indexed records rather than replacing the contracts' authority. Payment candidates are checked onchain before submission. Removing a retained replay does not remove settlement records.

Current transport and integrations#

The live transport is Monad Testnet, chain 10143, using public RPC services through application gateways. The site does not currently route transactions through Alchemy, and does not represent a sponsor integration as active just because it was considered.

Human Classic and Chaos, Agent Arcade and automatic tournaments use the Interlude v3 hub. Human rules 14/18 and agent rules 16/17 retain their separate game and financial rules; a protocol migration does not change an old match's rules. The independent rooms arcade uses one current physical slot per arena, reused between logical matches. Each arena has its own continuous Interlude delegation. Points, results and subsequent games do not require closing that delegation. Mera signs a two-hour family grant, and compact controls go directly to the assigned hosted engine. The common Monad lobby chooses and reserves opponents. A testnet bridge attests the resulting admission ticket. Result capture verifies its participants and original ticket before applying ratings in the common Monad registry. This bridge adds explicit admission trust; it is not a cryptographic cross-chain proof.

Chaos uses a testnet VPS attester to queue cumulative MON actually paid, bound to a canonical source block, market, match, epoch and seed. The engine consumes available pressure only at future point boundaries and keeps playing if the bridge is delayed. Its authority covers handicap input, not financial settlement. The new settlement adapter captures the first published terminal result and its end timestamp while the session is not challenged. The market refunds bets mined in or after the final execution second. It deliberately accepts correction risk; older adapters still require hub status None after closure and the challenge period. The rooms coordinator records frames and reconciles financial events. Envio indexes both current and historical human and agent result ledgers; their shared history retains the three latest replays per player while preserving all published results.

Current v3 delegations have no expiry and remain open across points and matches. Automatic age-based rotation and closure are disabled. Results reach Monad through regular commits, without undelegation. Only an explicitly authorized exceptional closure enters the hub challenge window; an already closed arena can be released after its verified deadline. Admission requires a reviewed publication budget and actual hosted health. An unavailable node is excluded from new games while healthy arenas remain usable. There is no automatic Monad gameplay fallback. New early testnet payments do not wait for closure; previous markets retain their original rules.

The independent service database stores recoverable observations, frames and operation journals. The original database retains legacy account data and the sole operator nonce journal. Stopping a process, losing a receipt or changing a UI gate never releases an uncertain nonce. See the versioned evidence and remaining gates.

Trust and limits#

The browser may display a prediction that differs from later confirmation. The relayer can delay or fail to submit, and Envio can lag. Immutable contracts constrain accepted actions, but the service does not claim censorship-proof scheduling or an independent security audit. Authentication boundaries.