DOCUMENTATION

The mechanic, in full.

$GG taxes trading, hands a random holder the pot as a USDG voucher every ~5 minutes, and lets them spend that voucher on real-world goods through Bitrefill. This page explains each moving part.

1 · The tax

Every buy and every sell of $GG pays a flat 2.49% tax, taken in-token and swapped to USDG. ~2% pools inside the gacha contract as round collateral; ~0.49% is skimmed to a treasury wallet at the ownerʼs discretion. Every treasury withdraw is a public onchain event, and the skim is bounded so it can never touch voucher balances.

TAX
2.49%
CADENCE
~5m
MIN POT
10 USDG
WINNERS / ROUND
1

2 · The round

A round is a ~5-minute cycle. Four steps:

01
Fund. Tax flows into the pons fee escrow, gets pulled by the keeper, swapped to USDG on 0x Settler and lands in the gacha contract.
02
Draw. The keeper computes a weighted holder snapshot (balance × seconds held) and publishes the seed. Adaptive skip if the pot is below 10 USDG.
03
Credit. The pot amount is added to the winner's voucher balance onchain. A WinCredited event fires.
04
Spend. Winner connects at ggacha.fun/spend and either burns the voucher to USDG in their wallet or routes it through Bitrefill's checkout.

3 · Weighting

Weight is balance multiplied by holding time, so a fresh buy does not get the same odds as a long-held bag of the same size. Selling resets the clock on the tokens sold. Weighting is off-chain in the keeper. The published seed makes each round reproducible against public Transfer events.

Excluded from the draw: liquidity pools, the gacha contract itself, and burn addresses.

4 · Spending your voucher

Redeem to wallet. Call redeem(amount) from your wallet (or the site button) to pull USDG straight to your address. Zero trust required.

Spend at Bitrefill. The /spend page redirects you into Bitrefill's checkout with the amount prefilled. You pick your card (Amazon, Uber, Steam, groceries, or ~2,000 others in ~180 countries), Bitrefill delivers the code. USDG never leaves your control until you sign the transfer.

Reclaim after 90 days. Anyone can call reclaim(winner) after 90 days of no fresh credits to that address. The voucher rolls back into the pot. A single new credit resets the timer.

5 · Trust

Keeper. Trusted for fair RNG and settlement. Compromise ⇒ attacker can pick winners, but pot value stays inside the contract and vouchers already credited are untouchable. Keeper key rotation is a single owner tx.

Owner. Has emergency withdraw and treasury skim. Skim is bounded by availablePot(), so vouchers are safe against a malicious owner. Emergency withdraw is a social-trust escape hatch. Public balance snapshots make any voucher-drain visible.

Bitrefill. Not a smart contract dependency. The site links to their normal checkout; if Bitrefill goes down or your region is unsupported, redeem to USDG and use them elsewhere.

6 · Contracts

GGACHA CONTRACT0x0000000000000000000000000000000000000000$GG TOKEN0x0000000000000000000000000000000000000000USDG0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168

7 · FAQ

Do I have to do anything to win?
Almost nothing. Hold $GG in a wallet you control. If you win, your USDG voucher is credited to your address onchain. No signature, no site visit needed to earn it. To spend it (either redeem to USDG or into a Bitrefill card), you connect and sign a message.
Where does the pot go if the pot is under 10 USDG?
The round is skipped. Bitrefill's smallest cards start around $5, so a tiny pot is worse than a slightly bigger one. The pot rolls into the next 5-minute window automatically.
What is a "voucher"?
An onchain USDG credit. It lives in the gacha contract's ledger, keyed to your address. You can burn it back to USDG in your wallet at any time, or route it through the /spend page into a Bitrefill gift card.
Can I use my voucher for anything besides Bitrefill?
Yes. `redeem(amount)` pulls the whole thing to your wallet as USDG. Bitrefill is the marquee use case, but the voucher is not scoped. Treat it like cash the gacha owes you.
What if I never claim my voucher?
After 90 days of inactivity (no fresh credit) anyone can call `reclaim(winner)` and the voucher rolls back into the pot for the next round. Just log in once every 90 days to keep it alive; a fresh credit resets the timer.
Are contracts excluded from the draw?
Liquidity pools, the distributor itself and burn addresses are excluded from weighting, so pot value cannot be paid back into a pool.
Does selling cost me my odds?
Selling reduces balance and resets the holding-time clock on the tokens sold, which lowers weight for future rounds.
Is there a wallet connect required to hold?
No. You only ever connect a wallet if you want to spend a voucher you already earned. Nothing about earning depends on interacting with the site.
What is the treasury for?
0.49% of the 2.49% tax funds ongoing development (X posts, hosting, keeper gas, brand, occasional pot boosts). Every skim is a public event; the destination is set at deploy and can be locked one-way.