# NASDAFUQ — brief for rebuilding the marketing site

You are rebuilding the public website for a meme coin called NASDAFUQ. This document is
self-contained: it tells you what the product actually does, what the site has to show,
how it should feel, and what you are not allowed to say. You do not need any other file.

Read the whole thing before designing. The mechanic is the point of the site, so the
mechanic section is long on purpose.

---

## 1. The one-sentence version

NASDAFUQ is a loud, joke-forward meme coin with one real mechanic underneath it: a share
of its own trading fees is used to buy a fixed basket of five other assets, and those
assets are pushed directly into holders' wallets on a schedule, with no claim button.

The joke and the mechanic are the same joke. The token is called NASDAFUQ. The last five
letters of that name are **D A F U Q**, and those are the five assets in the basket:

| Letter | Ticker | What it is | Why it's in there |
| --- | --- | --- | --- |
| **D** | DELL | Dell — AI servers | The boxes the models actually run on |
| **A** | AMD | AMD — AI silicon, GPUs | The chips inside those boxes |
| **F** | FLY | Firefly Aerospace — space launch | The degen slot. Rockets. Thin liquidity, bought in small sips |
| **U** | USAR | USA Rare Earth — rare earths | The metals every one of the above depends on |
| **Q** | QQQ | Invesco QQQ — the Nasdaq-100 itself | The punchline: the index is literally in the name |

Each slot gets exactly 20% of the reward budget. Five slots, 20% each, no substitutions.
The basket is fixed and published; it does not rotate weekly.

**The name was the basket the whole time.** That is the creative core of the site. Use it.

---

## 2. Current status — read this before writing a single word of copy

This is a **testnet prototype**. Specifically:

- The contracts are deployed and running on **Robinhood Chain Testnet** (chain ID 46630),
  a public test network. All source code is verified and publicly readable on the block
  explorer.
- The five "assets" on testnet are **mock tokens** — `mDELL`, `mAMD`, `mFLY`, `mUSAR`,
  `mQQQ` — that the project minted itself. They have **no monetary value**, they are not
  real Stock Tokens, and they are not connected to Dell, AMD, Firefly, USA Rare Earth,
  Invesco, Nasdaq, or Robinhood in any way.
- The trading fees are simulated by a mock market. No real trading, no real money.
- **There is no live NASDAFUQ token.** Nothing is for sale. Nobody can buy anything today.
- Two complete reward cycles have actually run on the testnet, and the site shows their
  real, verifiable results (see §5).

The system is designed so that the same machinery *could* one day run against real
tokenized assets, but doing that requires permissions and approvals nobody has obtained.
Treat that as an open question, not a roadmap promise. See §7.

---

## 3. How the reward system works (the detail you need to explain it well)

### The pieces

- **Fee vault.** A contract that receives a published share of trading fees and holds
  them. Nobody can withdraw from it arbitrarily. It is the only thing that buys assets.
- **The basket policy.** A contract holding the five asset addresses and the five 20%
  weights. It is immutable — the weights cannot be edited after deployment. Changing the
  basket means deploying a new one, publicly.
- **Route adapter.** The only way the vault is allowed to buy. It cannot be handed
  arbitrary instructions, arbitrary tokens, or arbitrary recipients.
- **Price oracle.** An independent price reference the vault checks before every purchase,
  so it refuses to buy at a manipulated price.
- **Holder snapshot.** A cryptographic fingerprint (a Merkle root) of every holder's
  balance at a specific block, published on chain. Anyone can recompute it from public
  transfer history and check it matches.
- **Push distributor.** Sends the rewards out. It only pays wallets that can be proven to
  be in the snapshot, and it computes the amounts itself on chain.
- **Keeper.** An operator that triggers the steps on schedule. Critically, the keeper
  cannot choose who gets paid, what gets bought, or how much. It can only press "go" on
  rules already fixed in the contracts.

### One epoch, step by step

An **epoch** is one reward cycle.

1. **Fees accumulate.** Trading activity sends protocol fees into the vault. More volume,
   more fees, bigger rewards. This is the honest answer to "how do rewards grow": they
   track volume, nothing else.
2. **The epoch closes.** The contract takes a snapshot of the numbers: gross fees
   collected, minus a published keeper/gas reserve (capped at 20% and fixed at
   deployment), plus anything carried over from last time. That total is the **net
   budget**, and it is split into five equal 20% allocations.
3. **A holder snapshot is taken.** The system reads every NASDAFUQ transfer up to the
   closing block, computes every holder's balance, publishes the Merkle root and a
   dataset hash on chain. Deterministic: run it twice, get the same answer.
4. **The vault buys.** For each of the five slots it buys that asset with its allocation.
   Before every purchase it checks the price against the oracle, checks there is enough
   liquidity, sets a minimum acceptable output, and sets a deadline. If any check fails,
   it **does not buy** — the money stays in the vault and rolls into the next epoch,
   recorded publicly as a rollover. It never silently substitutes a different asset.
5. **Rewards are pushed.** The distributor sends each holder their pro-rata share of each
   of the five assets, in batches. Your share is your balance divided by the total
   eligible balance, times what was bought. **Holders do nothing.** No claim button, no
   transaction to sign, no gas to pay. The tokens simply appear.
6. **Failures are visible and recoverable.** If a transfer to some wallet fails, it is
   recorded as failed and can be retried. A retry cannot pay anyone twice — the contract
   refuses. If it keeps failing, the amount rolls into the next epoch's pot rather than
   vanishing.

### The FLY exception, explained (this is a good story, tell it)

Four of the five assets have deep enough liquidity to buy in one go. **FLY does not.** Its
pool is shallow, so a single large purchase would move the price against itself.

So FLY gets bought in **sips, not gulps**. While the epoch is still open, the system buys
small clips of FLY every few minutes, each capped in size, spaced apart in time so the
pool can recover between them. Each sip is limited to 20% of the fees *already collected*
at that moment — so it never overspends, never guesses, and never needs a correction. At
the close, a final clip tops it up to exactly its 20% share.

On the live testnet this worked in both shapes: in one epoch FLY was filled entirely by
three sips before the epoch even closed; in the next, one sip hit the size cap and a
single top-up clip finished the job. The site shows each sip individually.

### "100% to the community" — say it precisely or not at all

The honest formulation is: **100% of the net distributable fees** go to holders. Net means
after the published keeper/gas reserve (capped at 20%) and after execution costs, both of
which are recorded on chain. It does **not** mean 100% of gross fees. If any copy uses the
short version, the definition must be in the same breath, not in a footnote.

---

## 4. What the site must contain

The existing site is a single static page: plain HTML, CSS, and JavaScript, no build step,
deployed on Vercel. Keep it that way unless you have a strong reason not to. It currently
has five sections, and a rebuild should keep this spine:

| Section | What it is |
| --- | --- |
| **Hero** | The name as the index. `NAS` dimmed, `DAFUQ` glowing, each of the five letters interactive: hover/tap/keyboard-focus a letter and it decodes to its ticker and theme, highlighting the matching card further down. This is the signature interaction — keep it. |
| **00 / THE ACRONYM** | A decoder window: one row per letter with ticker, theme, weight, and a one-line joke. Plus the pipeline in ASCII: `FEES IN → VAULT → 5 × 20% → SNAPSHOT → PUSHED TO HOLDERS. NO CLAIM BUTTON.` |
| **01 / THE TERMINAL** | A fake trading terminal: chart, event log, system chrome. The chart is synthetic decoration today; there is a slot for a real Birdeye chart embed that activates only when a token address is configured, and says plainly that it is empty until then. |
| **02 / THE BASKET** | Five cards, one per slot, each with the ticker, a character name, the theme, a cursed one-liner, and `20.00% / 2000 BPS`. The QQQ card is the featured one. |
| **03 / THE MANIFESTO** | The joke-forward "what is this" section, plus small windows: a receipt, a radio, an X/social placeholder. |
| **04 / THE PAYOUT LEDGER** | The honest part. See §5. |

Also: a sticky Windows-95-style menu bar for navigation, a footer with source and explorer
links, and a control deck (sound on/off, volume, strobe toggle, motion toggle).

**Hard constraints on the site itself:**

- **No wallet connection. No login. No admin panel. No forms.** The site is read-only and
  has zero authority over anything. It cannot move funds, and there must be no UI element
  that implies it could.
- No input that lets a visitor choose an asset, a route, a recipient, or an amount.
- Accessibility basics survive the chaos: keyboard focus works, the motion toggle and
  `prefers-reduced-motion` are respected, the strobe can be turned off, contrast is
  readable, and the page never scrolls horizontally on a phone.

---

## 5. The payout ledger — the section that has to be exactly right

This is the only section backed by real data, and its credibility carries the whole site.
It reads a single JSON file, `data/tracker.json`, produced by an indexer that replays the
contract's public events. The site does no math of its own beyond formatting.

It shows: the active basket and its version hash; a countdown to the next distribution;
gross fees, the keeper reserve, carried-in amounts and the net budget; per-epoch
per-asset allocated/spent/purchased/pushed/failed/rolled-over; the individual clips and
sips for any asset bought in pieces; every reward transfer with its transaction link; top
recipient wallets; and any alerts (failures, rollovers, pauses).

**Every number carries one of exactly five status labels. Do not invent a sixth.**

| Label | Means |
| --- | --- |
| `OBSERVED ONCHAIN` | Backed by an actual event on the blockchain |
| `ESTIMATED` | Derived, not observed — e.g. a wallet's total value converted at a reference rate |
| `PENDING` | Allocated but not yet bought or sent |
| `FAILED` | A transfer that did not go through |
| `ROLLED OVER` | Money that could not be spent this epoch and moved to the next |

**If the data file is missing or malformed, the section must say so and show nothing.**
The current copy is `LEDGER OFFLINE. NO DATA. NOTHING IS BEING SHOWN BECAUSE NOTHING WAS
INDEXED.` Never show demo numbers, placeholder amounts, or an example epoch styled to look
real. An empty honest state is the entire point of this section.

Keep the JSON shape as-is so the indexer keeps working. If you need the schema, read the
current `data/tracker.json` — it holds two real testnet epochs and every field the site
renders.

---

## 6. Voice and visual direction

The site is deliberately, aggressively unserious. It should feel like:

- an old cursed Windows/Linux terminal that has seen things
- an anime nightclub at 2am, Chinese-trap / hyperpop energy
- obnoxious neon on near-black: acid yellow-green, hot pink, cyan, orange, gold
- monospace everything, Impact-style display type for big words
- scanlines, glitch offsets, hard drop shadows, stickers stuck on at angles, fake window
  chrome with `− □ ×` buttons, file names like `dafuq.txt` and `ledger.exe`
- intentionally imperfect. Not a polished SaaS landing page. Not a fintech dashboard.
- funny enough that people scroll, and honest enough that a skeptic can verify it

**The one place the chaos yields: the ledger.** Numbers stay legible, labels stay readable,
links work. The joke is everywhere else. A visitor should be able to laugh at the top of
the page and audit it at the bottom.

Existing assets you can reuse: a generated rave video hero with a poster frame, a looping
audio track with a sound toggle that respects autoplay rules, and a shuriken logo mark.

---

## 7. Copy rules — these are not stylistic preferences

**Always:**

- Say the reward assets are **"Stock Tokens & Tokenized ETFs"** if you must name the asset
  class. Never "tokenized stocks" or "tokenized equities."
- State that testnet rewards are **mock tokens with no value**, wherever they appear.
- Label estimates as estimates. Never present an estimate as a completed transfer.

**Never:**

- Never imply endorsement, partnership, or approval by Robinhood, Nasdaq, Invesco, or any
  of the five companies. There is none.
- Never use the words **legal, approved, live, guaranteed,** or **unhackable** about this
  project.
- Never promise real Stock Token rewards, a launch date, a price, a return, or a yield.
- Never attach a number, rate, or projection to the words rewards, payout, yield, or earn.

**Phrases that are true in context and become false promises alone.** These are the ones
most likely to get pulled into a headline, so handle with care:

- *"NASDAFUQ pays you the Nasdaq."* Great punchline for the QQQ slot. As standalone display
  type it reads as a guaranteed index-linked return. Only use it with the mechanic and the
  testnet status in the same visual unit.
- *"100% to the community."* Only ever with its definition attached (§3).
- The present-tense mechanic ("fees are used to buy five assets and pushed to holders") is
  true **on testnet with mock tokens** — say that in the same sentence, not in a footer.

**One open question the site must not paper over.** Whether this design could ever run
against real tokenized assets depends on permissions from the asset issuers and on how a
token that pays holders from protocol revenue is characterized legally. Nobody involved
has resolved either question. Do not write copy that implies they have been resolved, and
do not write copy that pretends the question does not exist. "Testnet prototype, no value,
no promises" is both the honest position and the funnier one.

---

## 8. What success looks like

A visitor lands, laughs, scrolls, and gets the joke that the name is the basket. They
understand within thirty seconds that fees buy five things and those five things land in
holders' wallets without them doing anything. They reach the bottom, see real numbers with
transaction links they can click into a block explorer, and think: *this is stupid, and it
actually works, and they are not lying to me about any part of it.*

That last clause is the brief.
