Ticketing
Game Credits Without On-Chain Clutter
Tickets are intentionally off-chain objects to avoid needless splatter of micro-transactions on the ledger:
Purchase Flow
Click Buy Tickets → choose quantity (1–100).
A single SOL transfer (e.g., 5 tickets × 0.1 SOL = 0.5 SOL) is signed in-wallet.
Webhook verifies finality, then the server writes
{user, +5 tickets}to a Postgres row with row-level encryption.
Storage & Security
Tickets are represented as an integer counter, encrypted at rest with a user-specific key.
Every mutation (buy, burn) emits an append-only event to Kafka; we replay the log nightly to guarantee eventual consistency.
Anti-Fraud
Rate limits: max 500 tickets per 24 h.
Unusually large purchases trigger a Stripe-style risk model; suspicious wallets are flagged for manual review.
By off-chaining tickets, we preserve on-chain SOL for real trading, while still maintaining provable integrity via audit logs.
Last updated

