Paste a wallet address to see its tickets, tier, match level, and prize status.
Enter a wallet and click Look up.
Paid Events ● live
On-chain $FOOK → treasury payments, auto-detected via the Helius webhook. Auto-refresh every 2s · —
Time
Source wallet
$FOOK
Tx
Status
waiting for events…
Free Entries
One free entry per week per Discord-linked user. Off-chain — no payment tx.
Recent free entries ● live
auto-refresh every 4s · —
Time
Draw
Wallet
Discord
Digits
Tier
waiting for claims…
Recent Draws
#
Phase
Draw Date
Target Slot
Winning
Tickets
Entrants
Pool USD
loading…
Audit log
Every admin action is recorded with timestamp, IP, path, and status. Export for incident review.
Time
IP
Method
Path
Status
Body
— (click Refresh)
Reconcile & Preview
Treasury balance check and per-draw payout simulation. Run weekly + before each draw.
Treasury reconciliation
Compares the DB's tracked totals against the actual on-chain $FOOK balance of the treasury wallet. Any drift needs investigation.
Not run yet.
Payout simulator
What the active draw would pay if finalized right now. Winner counts are unknown until draw — these are bucket totals (split equally among winners).
Not run yet.
Discord
Preview, edit, and test-post Discord embed announcements for each draw phase.
Discord announcement preview / edit / test
Preview the rendered embed, edit the title / description / footer per kind, or post a one-off test to the public webhook.
— (click Preview)
Edit template · accepting
Only the title, description, and footer prose are editable — structured fields (pool, tickets, timestamps) stay code-owned so layout can't break. Leave a field blank to fall back to the hardcoded default. Placeholders below are replaced at send time.
Max 256 chars (Discord embed limit).
Small grey text at the bottom of the embed.
Main body text. Markdown supported: **bold**, *italic*, `code`, line breaks.
Available placeholders (click to copy)
Settings
Runtime tunables, webhook URLs, prize-configuration snapshot that applies to the next draw.
Runtime Settings
Time values stored as milliseconds under the hood — inputs here are in human units. DexScreener auto-updates the price.
System state (read-only)
$FOOK / USD rate
—
—
Global seed reserve
—
≈ pool safety net
Purchase split
—
pool / seed / burn
Tier thresholds
—
Zombie / Horde / Apex
Discord webhooks
Where 🎟️ Accepting / 🔒 Locked / 📊 Stats / 🏆 Complete draw embeds post. Community channel.
Where 🚨 money-critical failures post (stalled draws, permanent payout failures, burn backlog, pause flips). Private ops channel — keep off community servers.
Discord mentions OPTIONAL
Tip: Discord mentions only fire a notification if the recipient ID is in the message content AND the recipient is allowlisted in the server's auto-mod (e.g. Wick). To turn off mentions entirely, leave the field empty. Both fields accept Discord snowflake IDs (15–25 digits) — get one by typing \@verified or \@yourname in any channel and copying the number, or by enabling Developer Mode and right-clicking the role/user.
Pinged on every public embed (Accepting / Locked / Stats / M3 unlock / M4 unlock / Complete). Empty = no ping. Format: <@&ID> mention syntax.
Pinged on every operator alert (stuck payout, finalize stall, burn backlog, snapshot failure). DM-style ping in your private ops channel. Empty = no ping. Format: <@ID> mention syntax.
Purchase split MUST SUM TO 100
⚠ Changes apply to the NEXT purchase, not past ones. Every on-chain ticket payment is split into three buckets by these percentages: the jackpot pool (that draw's prize pool), the seed reserve (next week's carry-over guarantee), and the burn (supply removed permanently). Rounding dust always flows to burn.
Default 70.
Default 20.
Default 10. Tokens actually sent to the burn address on-chain.
Schedule & operational tuning
Wait this long after a draw completes before auto-paying winners. Gives the tumbler animation time to play.
Close entries this many seconds before the draw locks. Allows tx confirmation headroom — recommended 60.
How many Solana slots ahead to pick the winning block. ~400ms per slot, so 150 ≈ 60s.
How often the 📊 pool-update embed fires in Discord during accepting phase.
Hour of day the draw locks, in America/New_York time. 17 = 5 PM.
Which weekday the draw runs.
Max time to wait for a Solana tx (payout or burn) to confirm. Bump up on congestion days. Default 60.
How long to wait for the target slot to finalize before retrying on the next cron tick. Default 180.
How often to re-check slot finalization during the wait. Default 3.
Cadence of the state-machine loop (phase flips, payouts, announcements). Default 60.
How often to re-fetch $FOOK/USD from DexScreener. Default 60.
Attempts before a failed payout is marked permanent and the operator is alerted. Default 3.
Rotates immediately — your admin session updates to the new value.
Prize Configuration APPLIES TO NEXT DRAW ONLY
Values below are snapshotted into each draw at creation. The active draw uses its locked-in snapshot shown in the row above.
Active draw snapshot (read-only)
Active · Match 3 share
—
split among M3 winners
Active · Match 4 share
—
split among M4 winners
Active · Match 5 (jackpot)
—
rolls over if unwon
Active · Seed release cap
—
post-M5-win transfer limit
Active · M3 unlock
—
tickets required
Active · M4 unlock
—
tickets required
Global seed reserve
—
≈ carry-over safety net
Active · Starting pool
—
—
⚠ Next-draw only. Changes below take effect when the next draw opens — the currently-accepting draw keeps its locked-in snapshot. The prize pool splits into Match 3 / 4 / 5 buckets by the percentages set here; winners in each tier split their bucket equally; empty tiers promote upward. Percentages must sum to exactly 100.
Prize-pool split MUST SUM TO 100
Default 5. Small-win tier — tight percentage keeps casual players happy without draining the jackpot.
Default 15. Mid-tier. Promotes to Match 5 when no M4 hits.
Default 80. The jackpot. Rolls over fully if no M5 winner.
Default $200. After a Match 5 win, up to this much of the global seed is released into the next draw's opening pool.
Volume guardrails
Default 100. Below this volume, the Match-3 share rolls forward to next week's jackpot instead of being paid — prevents low-volume farm wins.
Default 250. Same guardrail for Match 4 — the 15% share rolls forward if volume stays below the threshold.
Global seed reserve right now: — $FOOK
Partners & Advertisers
Banner shown under the menu bar on the public page. Each row is a clickable card with logo, name, blurb, and link. Sort order ascending = leftmost. Toggle active to hide without deleting.
Manage banner
Active partners appear publicly. Inactive ones stay in the list but are hidden.
Short header shown to the left of the chips. Uncheck above to hide it entirely without losing the saved text.
Optional. Paste a URL or click Upload to host on this server. If blank, a single-letter fallback chip is shown.
Pick what looks best behind THIS partner's logo on the public banner.
Lower = further left.
Uploaded images
Files in /opt/fookin-friday/partners/ — every upload from the form above lands here. Click an image to use it as a logo or ad, or to remove it.
Loading…
⚠ Danger Zone
Actions below can interfere with active draws, overwrite pool state, or push a real Discord post. Each prompts for confirmation. Read the card's sub-title before clicking.
Operator Health
Live status of the things that can go wrong on launch day. Auto-refreshes every 30 seconds.
Draw status
—
Treasury
—
Last webhook
—
Recent errors
—
Last 32 KB of the service log
Enabled only when there's no active draw (e.g. if auto-unpause didn't fire).
Show recent error lines from the service log
Loading…
Draw cycle AUTOMATIC
Draws auto-open weekly on the configured day. When paused, the current draw still completes normally but no new draw is created afterward.
When this is set AND draws are paused, the public page shows a countdown banner toward this date/time, and the cron will auto-resume draws at that moment. Leave blank for an indefinite pause.
Treasury top-up / boost
Credit $FOOK sitting in the treasury to either the seed reserve (smooth future jackpots) or the active draw's pool (immediate boost). Optionally verify against an on-chain tx signature for a tighter audit trail.
⚠ This is an accounting credit, not a transfer. The $FOOK must already be in the treasury wallet on-chain (send it first, then record it here). Submitting without a tx signature marks the row unverified — use that only for legacy deposits whose signature is no longer reachable.
Pool target, no active draw? The amount is queued — the next draw the cron opens will include it in its starting pool automatically.
≈ — at current rate
Seed releases are capped per draw; pool credits show on the public page right away.
If present, we fetch the tx and confirm the treasury ATA increased by at least the amount above.
Time
Target
$FOOK
Verified
Tx
Source
Note
— (click Refresh history)
Starting Jackpot Pool
Set the pool as a $FOOK amount — keeps the pool stable as the market moves. The USD display on the public page recomputes live at current rate.
≈ — at current rate (— $FOOK/$)
Actions
Manual overrides. Cron auto-advances phases; these are for testing + recovery.