Introduction
JackPackz is a provably-fair booster-pack platform on Robinhood Chain. Pick a pack, rip it, and a fair on-chain roll drops a real tokenized asset — a stock or a Robinhood-chain meme — straight into your wallet. Non-custodial by design: every asset lives in your wallet, never ours.
Think trading-card booster packs, but every card you pull is a real ERC-20 token. Blue-chip stocks give you the floor; memes give you the moonshot. Rarity, upside and the jackpot are decided by verifiable randomness — no house-controlled outcomes.
One rip, a real asset
Every opening settles a genuine tokenized stock or meme to your wallet.
Non-custodial
Assets go straight to your wallet. JackPackz can't move, freeze or reclaim them.
Provably fair
Published odds + on-chain VRF. Anyone can verify every roll.
Routed on-chain
Best-price swaps across Robinhood Chain liquidity in one atomic transaction.
What ships today
The landing experience, wallet connection on Robinhood Chain, the full pack & collection catalog, and provably-fair reveal previews. On-chain minting via Uniswap v4 and the jackpot vault roll out as liquidity deepens — tracked in Contracts.
Who it's for
Degens who love ripping packs, collectors chasing the set, and anyone who wants exposure to tokenized stocks and Robinhood-chain memes without juggling ten swaps and ten tabs.
How this documentation is organised
Start with Quickstart to rip your first pack. Core concepts explains packs, cards, rarity, $JACKZ and the jackpot. Using JackPackz covers the day-to-day. On-chain documents the contracts and security model.
Quickstart
From zero to your first pull in under a minute.
- Connect a wallet. Click Connect Wallet — Robinhood Wallet, MetaMask or Coinbase. The app adds Robinhood Chain automatically.
- Pick a pack. Browse the catalog — AI, Magnificent 7, CashCat's Meme Fortune and more. Each shows its published odds.
- Rip it. Pay in USDG. A provably-fair VRF roll selects your asset and swaps for it on-chain.
- Own it. A real tokenized asset settles to your wallet. Sell it anytime on any Robinhood Chain DEX.
Every rip also grows the shared jackpot vault — one lucky opening takes the pot.
Connect a wallet
JackPackz uses standard EVM wallet connection (EIP-6963 multi-wallet discovery). Supported out of the box:
- Robinhood Wallet — native to the chain.
- MetaMask — the most common EVM wallet.
- Coinbase Wallet — mobile & extension.
On connect, the app checks your network and, if needed, prompts you to add or switch to Robinhood Chain (chainId 4663) via wallet_addEthereumChain. No seed phrases, no custody — you approve each action in your own wallet.
JackPackz will never ask for your seed phrase or private key. Only ever sign transactions you understand.
What is a pack
A pack is a sealed, themed booster you buy — for example the AI Pack or Magnificent 7. Each pack draws from a curated pool of assets. When you rip it, a provably-fair roll reveals which card(s) you get, and the corresponding real token settles to your wallet.
Packs collapse what used to be ten tabs, ten swaps and ten fees into a single signed transaction: pick a pack → we route your USDG through Robinhood Chain's on-chain aggregator → the revealed asset lands in your wallet as a real ERC-20 token.
Packs vs cards
Two different objects — this trips people up, so it's worth being precise:
Pack
The sealed foil booster you buy. Themed (AI, Mag7, Meme…). Contains cards.
Card
What you pull from a pack. Each card = one real tokenized asset, with a rarity.
You buy packs; you collect cards. Complete a set of cards to earn collection rewards.
Rarity & odds
Every card has a rarity, and every pack publishes its weighted odds. The rarest assets are the hardest to pull — and the ones that flex hardest on the timeline.
Holding & staking $JACKZ tilts these odds in your favour by tier.
The $JACKZ token
$JACKZ is the engine of the platform, not just a ticker. It powers the loop and shares the upside with the community.
- Luck boost — stake to raise your rare-pull odds by tier.
- Vault rake — stakers share pack fees and jackpot rake.
- Pay-in discount — open packs with $JACKZ for a fee discount.
- Exclusive drops — holder-gated limited seasonal boosters.
Contract address: soon — published here on launch.
The jackpot vault
Every pack you rip feeds a shared, non-custodial jackpot vault. It's locked in the smart contract — the team can't withdraw it. Someone has to win it, or it stays locked forever.
- Every opening contributes a small amount to the vault.
- 1 in 25,000 rips wins 90% of the pot.
- The remaining rake is shared with $JACKZ stakers.
The vault balance and every payout are verifiable on-chain.
Opening a pack
- USDG in. Your payment enters the pack contract.
- Verifiable randomness. A provably-fair VRF draw selects your asset.
- Uniswap v4 swap. USDG swaps for the asset on-chain, best-price routed.
- Real ERC-20 minted. A tokenized stock or meme, Chainlink-priced.
- Settles to your wallet. The card is yours — self-custody, always.
The whole flow is one atomic transaction. If any step fails, nothing settles and you keep your USDG.
Amounts & fees
| Item | Detail |
|---|---|
| Pack price | Set per pack, from $7.99 (see Pack themes). |
| House edge | ≈25% of the buy, split across jackpot, liquidity, $JACKZ buyback & burn and treasury — see Return-to-player. |
| Pay in $JACKZ | Discount on the platform fee when paying with $JACKZ. |
| Swap cost | On-chain DEX fee + gas, shown before you sign. |
Exact numbers are always shown in the confirmation before you sign — no hidden fees.
Provably-fair reveals
Outcomes are decided by on-chain verifiable randomness (VRF), not a server the team controls. Each pack's odds are published up-front, and every roll produces an on-chain proof you can inspect.
Because the randomness is committed on-chain, neither the team nor a player can predict or alter the result. This is the trust core of JackPackz: the gamble is on which asset and what rarity — never on whether you receive a real asset at all.
Collections & sets
Cards belong to collections. Complete a portfolio to earn a badge, a bonus asset, and a free pack. Examples:
- AI Collection — NVDA · AMD · INTC · MU → +$5 bonus, 1 free pack.
- Magnificent Seven — the seven titans → +$10 bonus, 2 free packs.
- Meme Legends — WSB · VLAD · ROCKET · CASHCAT · WOJAK → +$6 bonus.
Progress is tracked per wallet and settles rewards on completion.
Selling & redeeming
Because every card is a real ERC-20 token in your own wallet, you're never locked in. Sell any asset anytime — on JackPackz or on any Robinhood Chain DEX. There is no wrapper token, no vault, no manager holding your assets.
What you see in your wallet is what you own. JackPackz can't reclaim it.
Staking & luck boost
Stake $JACKZ to earn a share of platform fees and jackpot rake, and to unlock luck-boost tiers that raise your rare-pull odds. Higher tiers = better odds and bigger rake share. Staking, tiers and reward math are published at token launch.
Pack themes
Six curated boosters at launch — each a themed foil pack drawing from its own pool of assets.
AI Pack
Magnificent 7
CashCat's Meme Fortune
Index Pack
Dividend Kings
Future Tech
Coming soon
Some packs go live as their underlying assets are tokenized / bridged onto Robinhood Chain. For example, Dividend Kings unlocks fully once KO, PG, JNJ and PEP hit the chain. New seasonal and limited packs (Earnings Season, Meme-stock revival, AI-bubble) drop over time — holder-gated for $JACKZ stakers.
Robinhood Chain
JackPackz runs on Robinhood Chain, an Ethereum Layer-2 purpose-built for real-world assets and tokenized stocks. Key parameters:
| Field | Value |
|---|---|
| Chain ID | 4663 (0x1237) |
| Native currency | ETH |
| RPC | https://rpc.mainnet.chain.robinhood.com |
| Explorer | robinhoodchain.blockscout.com |
JackPackz is an independent community project and is not affiliated with, endorsed by or operated by Robinhood Markets, Inc.
Uniswap v4 routing
When you rip a pack, USDG is swapped for the revealed asset through Uniswap v4 pools on Robinhood Chain. Prices are read from live pools and Chainlink oracles. Routing finds the best price across available liquidity and executes atomically in the same transaction as the reveal — no inventory, no IOUs.
Architecture
JackPackz is two small pieces joined by a signed session: a static front-end and a stateless API. There is no monolith and no hidden server logic deciding your luck — the only state that exists is a database of users, openings and login nonces.
Front-end
A single self-contained HTML document — plain HTML, CSS and vanilla JavaScript, with every image inlined as a base64 / WebP data-URI. No framework runtime, no build step. It is served as static files from Vercel's edge network. Wallets are discovered through EIP-6963, the session is established with SIWE, and the resulting token is kept client-side.
Back-end
A Fastify API written in TypeScript (NodeNext ESM), running on Railway, talking to PostgreSQL through the Prisma ORM. Requests are stateless; the provably-fair engine, the catalog and the token model all live here as plain code you can read.
Configuration is entirely environment-driven (SIWE_DOMAIN, CORS_ORIGINS, DATABASE_URL, JWT_SECRET), so the same code runs locally and in production without edits.
Sign-in with your wallet
There are no passwords and no email. You log in by signing an EIP-4361 (Sign-In With Ethereum) message with your wallet — a plain text message, never a transaction.
- The browser lists your installed wallets via EIP-6963.
GET /api/auth/noncereturns a fresh one-time nonce.- The front-end builds the SIWE message: domain, your address, URI, Chain ID 4663, the nonce and an issued-at timestamp.
- Your wallet signs it with
personal_sign. POST /api/auth/verifysends the message + signature back.- The server recovers the signer's address from the signature, checks the domain matches, confirms the nonce is fresh and unused, then burns the nonce so it can never be replayed.
- It issues a 7-day JWT that the front-end stores and sends as
Authorization: Bearer …on later calls.
The provably-fair engine
Today JackPackz decides every drop with a commit-reveal HMAC scheme (described here); the production on-chain design upgrades this to VRF (see Provably-fair reveals). Either way, the property is the same: neither the team nor the player can secretly control the outcome, and every roll is re-checkable after the fact.
Inputs
| Input | Who sets it | When it's known |
|---|---|---|
| serverSeed | Server (32 random bytes) | Secret until after the roll |
| serverSeedHash | Server = SHA-256(serverSeed) | Published before the roll |
| clientSeed | You | Always |
| nonce | Your opening counter | Always |
The roll
Picking the card
Each asset in the pack carries a rarity weight (Legendary 1, Epic 5, Rare 14, Common 80). The roll walks the weighted segments of the pack's pool and lands on exactly one asset:
Verifying it yourself
- After the roll the server reveals
serverSeedatGET /api/verify/:id. - Check
SHA-256(serverSeed) === serverSeedHash— proves the seed wasn't swapped. - Recompute the HMAC with the same clientSeed and nonce — it reproduces the exact same roll and the exact same card.
Odds & probability
Rarity tiers have fixed weights. A card's chance inside a given pack is simply its weight divided by the sum of all weights in that pack's pool — so the same rarity can be rarer or more common depending on what else the pack contains.
| Tier | Weight | Baseline share* |
|---|---|---|
| Legendary | 1 | ≈1% |
| Epic | 5 | ≈5% |
| Rare | 14 | ≈14% |
| Common | 80 | ≈80% |
*Baseline assumes one card per tier; real per-pack odds depend on the pool.
Worked example — AI Pack (NVDA · Legendary 1, AMD · Epic 5, HYP · Common 80; Σ = 86):
Return-to-player (RTP)
RTP is the share of a pack's price that a player receives back, on average, as real asset value. JackPackz targets an RTP of ≈75%. Every pack always settles a real on-chain asset — but the value that lands depends on the rarity you roll: most commons come back under the pack price, while rare pulls pay a multiple. Across many opens the weighted average converges on the target.
Payout multipliers
Each rarity pays a fixed multiple of the pack price. The multipliers are published and fixed in code, so the RTP is fully auditable — anyone can recompute it.
| Tier | Odds | Payout (× pack price) | RTP contribution |
|---|---|---|---|
| Common | ≈80% | ×0.50 | 0.400 |
| Rare | ≈14% | ×1.20 | 0.168 |
| Epic | ≈5% | ×2.50 | 0.125 |
| Legendary | ≈1% | ×6.00 | 0.060 |
| Total RTP | 100% | — | ≈0.753 |
Where the house edge goes
The remaining ≈25% (the "house edge") is not a plain rake — it is recycled back into the ecosystem:
| Destination | Share of edge | Per $1 of pack |
|---|---|---|
| Jackpot vault | 40% | 10.0¢ |
| Liquidity pool | 30% | 7.5¢ |
| $JACKZ buyback & burn | 20% | 5.0¢ |
| Project treasury | 10% | 2.5¢ |
The RTP target, multipliers and edge split shown here are the launch configuration and may be tuned by governance; any change is published before it takes effect.
The opening flow
End to end, from tap to reveal:
- You pick a pack — the preview window opens (a wallet connection is requested first if needed).
POST /api/packs/open { packId }is called with your JWT.- The server loads (or creates) your serverSeed + hash, increments your nonce, computes the roll, picks the drop, and writes an Opening row storing the full proof.
- It returns the card, its rarity, the proof, and a verify link.
- The cinematic plays: charge → the pack rips → the asset flies out spinning → routes "on-chain" → settles into your portfolio.
- The drop appears in the public live feed (
/api/feed) and on your dashboard (/api/me).
API reference
All JSON over HTTPS. CORS is restricted to the site's own origin; authenticated routes require the Authorization: Bearer <jwt> header.
| Method | Path | Auth | Purpose |
|---|---|---|---|
| GET | /health | — | Liveness check |
| GET | /api/packs | — | Pack catalog + published odds |
| GET | /api/auth/nonce | — | Issue a one-time login nonce |
| POST | /api/auth/verify | — | Verify SIWE signature → JWT |
| POST | /api/packs/open | JWT | Open a pack → drop + proof |
| GET | /api/feed | — | Recent public drops |
| GET | /api/verify/:id | — | Full re-checkable proof for one opening |
| GET | /api/me | JWT | Totals, rarity breakdown, collection progress |
| GET | /api/me/openings | JWT | Your opening history |
| GET | /api/token/stats | — | Tier table, XP table, burn & vault totals |
| GET | /api/token/me | JWT | Your tier, XP and level |
Data model
Three PostgreSQL tables (via Prisma). Every opening stores its complete proof, so any past roll stays independently verifiable forever.
| Table | Fields |
|---|---|
| User | id · address (unique, lowercase) · clientSeed? · createdAt |
| Opening | id · userId · packId · packName · cardSym · cardName · rarity · serverSeed · serverSeedHash · clientSeed · nonce · roll · createdAt |
| Nonce | id · value (unique) · used · createdAt — one-time login nonces (replay protection) |
$JACKZ token mechanics
$JACKZ is an optional membership layer. Packs work fully without it, and holding it never changes pack odds — it only unlocks deterministic, pre-funded benefits based on your balance at the moment you open.
| Tier | Min $JACKZ | Discount | Asset bonus | XP | Pack Printer |
|---|---|---|---|---|---|
| Basic | 0 | — | — | 1× | — |
| Bronze | 1,000 | 2% | +$0.05 | 1.1× | 1 / 24h |
| Silver | 10,000 | 3% | +$0.10 | 1.25× | 1 / 12h |
| Gold | 50,000 | 5% | +$0.20 | 1.5× | 1 / 6h |
| Diamond | 250,000 | 7% | +$0.30 | 2× | 1 / 2h |
XP & levels
XP is awarded only after an opening settles — never for failed or refunded openings — and your tier multiplies every award. Base XP: Standard 100 · Premium 250 · Founder 500 · Black 1000. Levels: L2 at 500 XP, then +500 XP per level.
Burns & vaults
Each opening burns roughly $0.05 of $JACKZ for holders, sized live from an oracle rather than a fixed amount. A 1% token trading tax splits 50/50 into two USDG-funded vaults — the pack-rewards vault and the global jackpot.
Settlement
JackPackz targets Robinhood Chain (Chain ID 4663), where the underlying assets are tokenized (ERC-20) stock and meme tokens priced by on-chain oracle feeds.
The production design routes each opening as a real swap through Uniswap v4 straight into your own wallet: no pre-minted inventory, no IOUs — you self-custody the exact asset that dropped. See Uniswap v4 routing.
Threat model
| Threat | Mitigation |
|---|---|
| Server rigs a roll | Commit-reveal: the seed hash is published before, the seed is revealed after, and verifyRoll() re-checks both. |
| Replayed login signature | One-time nonces, burned on use, with a 10-minute TTL. |
| Stolen session token | JWT expires in 7 days and only proves identity — it can never move funds. |
| Cross-site API abuse | CORS allow-list plus SIWE domain binding. |
| Odds tampering via tiers | Tier benefits never touch odds; weights are published and live in code. |
| Wallet-drainer confusion | Login is a message signature, never a transaction; a seed phrase is never requested. |
Roadmap
- Phase 1 — done. Static site, provably-fair demo backend, wallet sign-in, dashboard, live feed.
- Phase 2 — now. Token page & membership model, expanded pack pools, full technical docs.
- Phase 3 — launch. Deploy $JACKZ, on-chain balance→tier, real Uniswap v4 settlement, burns & funded vaults, the Pack Printer.
- Later. Collection NFT badges, staking & luck boost, seasons & prestige.
Contracts
Addresses are published here as they deploy. Until then they read soon.
| Contract | Address |
|---|---|
| $JACKZ token | soon |
| Pack contract | soon |
| Jackpot vault | soon |
| USDG | soon |
Security
- Self-custody — assets settle directly to your wallet; the app never holds keys.
- Non-custodial jackpot — the vault is locked in-contract; the team cannot withdraw it.
- Provably fair — outcomes use on-chain VRF with published odds.
- No secrets in the client — all sensitive config is server/env-side; nothing private is hardcoded.
Always verify the contract address before interacting, and only sign transactions you understand.
FAQ
Do I always get something real?
Yes. Every rip settles a real tokenized asset to your wallet. The randomness decides which asset and what rarity — never whether you receive value at all.
Can the team rug the jackpot?
No. The vault is non-custodial and locked in the smart contract. It can only pay out to winners.
Can I sell what I pull?
Anytime — on JackPackz or any Robinhood Chain DEX. Your cards are standard ERC-20 tokens.
Is $JACKZ live?
Not yet — contract shows soon until launch. Utility (staking, luck boost, rake) ships with the token.
Risk & disclaimers
Opening packs involves chance and financial risk, including loss of principal. Digital assets are volatile and memecoins can go to zero. Nothing in this documentation is financial advice. Provably-fair gaming mechanics may be restricted in some jurisdictions — you are responsible for compliance with your local laws.
JackPackz is an independent, community-built application on Robinhood Chain (chainId 4663). "Robinhood" is a trademark of its respective owner, referenced only to identify the public blockchain network. It is not affiliated with, endorsed by, sponsored by or operated by Robinhood Markets, Inc.