Luxury futuristic Web3 lottery vault background in violet, cyan, pink, and gold
Testnet only

Arc Daily LottoPick 5 digits. Win the daily USDC jackpot.

A polished Arc Testnet demo for contract-based 5-digit lotto rounds. Testnet USDC has no real-world value, and this is not real-money gambling.

Glowing crystal jackpot orb with five golden digital digits

Current jackpot

0 USDC

Round closes

Loading...

Ticket price: 0.1 USDC

Live round

Read-only data stays visible before wallet connection.

Testnet only

Current round

Loading...

Round status

Loading...

Time remaining

Loading...

Tickets sold

Loading...

Current jackpot

Loading...

Last winner

Loading...

Tier winners

Loading...

Holographic five digit lottery ticket made of translucent glass

Bulk ticket total

Loading

1 testnet ticket paid through one ERC-20 approval and one buyTickets call.

Bulk ticket builder

Choose ticket numbers

Selected

1 ticket

Total price

0 USDC

Remaining

10

Tickets this purchase

Up to 10 tickets per wallet per round. Testnet USDC has no real-world value.

Remaining: 10
Get testnet USDC

Connect a wallet to buy tickets.

Preparing
Approving USDC
Waiting for approval confirmation
Buying tickets
Waiting for purchase confirmation
Confirmed
Futuristic crypto wallet dashboard with floating glass cards
Wallet not connected

Wallet dashboard

Arc account

Connected address

Not connected

USDC balance

0 USDC

Allowance

0 USDC

Estimated ticket gas

Estimating

Native gas accounting uses 18 decimals; app ticket accounting uses ERC-20 decimals.

Lotto contract

0x04B4...Db13

Ticket price

Loading

Explorer

Arc Testnet

Chain ID 5042002, RPC-backed read/write flow through wagmi and viem.

USDC-aware

Balances and tickets use the ERC-20 decimals returned by the USDC interface.

My tickets

Current round entries

Tickets are read from the lotto contract. Transaction hashes are shown when this browser created the ticket.

Small glowing crystal star lucky charm for an empty ticket state

No tickets yet

Connect on Arc Testnet, pick a valid 5-digit number, approve testnet USDC, and buy a contract-backed ticket. Testnet USDC has no real-world value.

Pick numbers above to enter this round

Jackpot and prize logic

V3 tiered pool mechanics

The contract holds the prize pool in testnet USDC. No real-world value, no investment promise, no real-money gambling.

0.1 testnet USDC per ticket

The contract ticketPrice is 0.1 USDC and bulk purchases use ERC-20 allowance plus buyTickets.

Four position-match tiers

Tickets win by the count of digits matching the winning number in the exact same positions: 2, 3, 4, or all 5 digits.

Tier pool split

The 5-digit tier receives 50% of the round pool, 4 digits 25%, 3 digits 15%, and 2 digits 10%.

Empty tiers roll over

If a tier has no winners, that tier's allocation rolls into the next round instead of being paid elsewhere.

Automatic payout

When the owner or keeper reveals the winning number, V3 calculates tier rewards and pays winning tickets automatically.

10 tickets per wallet

Each wallet can buy at most 10 tickets per round, and each bulk purchase is capped at 10 custom numbers.

Daily round schedule

The testnet contract starts one-day rounds and requires close plus reveal before the next committed round begins.

Round history

Daily V3 reveals and payouts

Past rounds show the committed reveal, tier winner counts, tier pools, rollover, and connected-wallet ticket outcomes when available.

Premium golden crown hovering above a glowing purple lottery ticket

Recent rounds

Newest first from getRecentRounds(limit).

How it works

Four clean steps

The flow is built for clarity: wallet, ticket, contract payment, reveal.

Step 1

Connect wallet on Arc Testnet

RainbowKit opens the wallet flow and the app can request Arc Testnet if it is missing.

Step 2

Pick or generate 5 digits

Choose one to ten numbers from 10000 to 99999. Every ticket can be customized.

Step 3

Buy ticket with testnet USDC

Approve the selected ticket total, then call buyTickets(numbers) once on the lotto contract.

Step 4

Daily reveal and payout

After close, the keeper reveals the committed winner and matching tickets are paid automatically.

Four floating glassmorphism step cards connected by neon purple light trails

Transparency and fairness

Commit before reveal

V3 uses a commitment hash before each round starts. After the round closes, the keeper or owner reveals the winning number and salt, and the contract verifies them against the commitment.

Current commitment

No active commitment yet

Contract: 0x04B4...Db13

Explorer: ArcScan Testnet

Keeper: local commitment storage is testnet-only. It helps automate close, reveal, automatic payout, and next-round start, but production should not rely on a local unrevealed salt file.

App Kit note: Buying lotto tickets requires ERC-20 allowance reads/writes and an arbitrary buyTickets(uint32[]) contract call. The current official Arc/Circle App Kit docs focus on App Kit payment/liquidity primitives, so this DApp uses wagmi + viem for the core contract purchase flow.

This is a testnet demo. Production randomness should use a verified oracle, VRF, or decentralized reveal protocol where available, plus operational controls around reveal custody.

Revealed rounds

No finalized reveals yet.

FAQ

Straight answers

No hype, no real-money promises. Just the mechanics.

What is Arc Testnet?

Arc Testnet is the public test network for building and experimenting with Arc applications before production use.

Why USDC?

Arc uses USDC as the native gas symbol, and the app-level ticket purchase uses the Arc Testnet USDC ERC-20 interface and its decimals result.

Is this real money?

No. This demo uses testnet USDC only. Testnet tokens have no real-world value, and Arc Daily Lotto is not real-money gambling.

How do I get testnet USDC?

Use the official Arc documentation and any current faucet instructions published there. The README links to the official docs so the steps stay source-aligned.

What happens if nobody wins?

V3 allocates the pool by tier. If a tier has no winners, that tier allocation rolls into the next round.

How are winners selected?

The testnet MVP uses commit-reveal: a hash is committed before the round, then the winning number and salt are revealed after close. The contract verifies the hash before settling.

Why can I buy max 10 tickets?

The V3 demo caps each wallet at 10 tickets per round and each bulk purchase at 10 tickets so reveal-time automatic payouts stay practical on testnet.

Why are numbers from 10000 to 99999 only?

V3 uses true 5-digit ticket numbers. The range keeps every entry visually and contractually five digits, with no leading-zero edge cases.

How do tier prizes work?

A ticket wins only its highest position-match tier: 2, 3, 4, or all 5 digits in the exact same slots. The pool split is 10%, 15%, 25%, and 50% respectively.

What happens if no one wins a tier?

That tier's allocation rolls into the next round. It is not reassigned to another tier.

Are rewards paid automatically?

Yes. In V3, reveal calculates matches, pays tier winners from the contract, stores ticket reward data, and finalizes the round.

What happens when the round ends?

Ticket buying stops locally when the countdown reaches zero. The keeper then closes the round, reveals the committed result, and starts the next round after finalization.

Why do I need approval?

USDC is an ERC-20 token. The contract needs an allowance for the selected ticket total before buyTickets can transfer testnet USDC into the prize pool.

Why is this testnet-only?

The app uses Arc Testnet USDC, local testnet keeper commitments, and demo randomness operations. Testnet tokens have no real-world value.