Docs.

What SAYIT is

A pump.fun launchpad where every coin is a word, plus an always-on speech-recognition farm that listens to live Twitch streams. When a listened streamer says a launched word, the catch lands on the CAUGHT wall with its VOD timestamp, and that word's fee bounty is assigned to the channel, unclaimed until the streamer logs in with Twitch. $SAYIT is the parent coin: every word launch pays it, and 20% of every word coin's creator fees buy back and burn it every 5 minutes.

Launch flow

  1. Type a word: one spoken word, 2 to 14 letters or digits, starting with a letter. One coin per word, ever.
  2. Coin preview: name = the word in caps, ticker = the first 10 letters, the image is the word in a caption box, the description says the coin is not affiliated with any streamer.
  3. Sign in with Solana (a message, not a transaction).
  4. Review and sign ONE transaction from your wallet: pump.fun create_v2 with the pad's per-word creator key as the creator, your dev buy (required, 0.001 to 2 SOL) and exactly one transfer of the 0.02 SOL launch fee to the buyback wallet. Signers: your wallet and the new coin's mint key, nothing else. Your browser re-runs the allow-check on the exact bytes before the wallet is asked. Limits: 3 launches per wallet per 24h.

Mint addresses come from a pre-ground "...pump" pool (10 ready now); if it is empty your browser makes the key and the address will not end in pump. The desk opens when the $SAYIT mint is set and the operator opens it; while it is closed, search, odds and simulation still work and nothing is signed.

Fees

Launch fee: 0.02 SOL per word, 100% to the $SAYIT buyback. Creator fees of every word coin accrue to the pad's creator key for that word and are collected every 5 minutes (minimum 0.003 SOL claimable), split in one transaction: 60% to escrow as that word's bounty, 20% to buyback and burn $SAYIT, 20% to listener compute (treasury).

Listener farm

Twitch audio only, never video. Each stream's audio lives in a 60 second RAM ring buffer and never touches disk. Every 4 seconds the last 5 seconds go to a whisper tiny.en server for the transcript; the tile waveform is the real audio energy. The farm starts at 10 streams and grows by one every 10 minutes while lag and CPU allow (up to 40), and sheds a stream when it falls behind. "listening to N streams" counts streams with a transcript chunk less than 15 seconds old, nothing else.

Catch rules

  • Spot: a transcript word equals a launched word (or is one letter off for words of 5+ letters) with confidence at least 0.55.
  • At the spot a provisional twitch.tv clip is cut (Twitch captures the ~30 seconds before it) (clip adapter: mock / coming) and an 8 second window around the word goes to a second, larger model with the word as the prompt.
  • Confirmed only at confidence 0.90 or more within 20 seconds. Otherwise the catch is discarded. Twitch has no delete-clip API, so a discarded clip is simply never published on our wall or linked anywhere.
  • Cooldown: 1 catch per channel per word per 24h; inside it a spot only counts toward the odds.
  • VOD timestamp = spot time minus the stream's start; linked when the channel's archive exists.
  • An admin can void a false catch before it is claimed: the bounty goes back to the word's pool and the catch shows "voided".

Rarity gate

A word is too common if, in the last hour, it was heard in more than 60% of the listened streams or more than 60 times. Blocked: slurs, real people's names (every roster login and display name plus a names list) and scam terms. The same filter runs on every rendered word, share text and alert; a slur in a transcript is masked as a solid block.

Bounties, escrow, settlement

  • Each word has an unassigned pool, credited with its 60% leg at each collect.
  • A confirmed catch is pending until the next 5-minute boundary. At that settle the word's entire pool is assigned to the catching channel. Fees collected later start a fresh pool for the next catch.
  • Two channels in the same cycle: the earlier confirmed spot wins the pool; the later catch shows 0.00 SOL.
  • Assigned, unclaimed bounties stay in escrow, public, with no expiry in v1 (an operator decision, see Risks).
  • A verified opt-out returns that channel's unclaimed bounties to their words' pools.
  • Invariant: the escrow wallet's on-chain balance is at least the unassigned pools plus the assigned, unclaimed bounties, minus the rent reserve. The ledger shows both numbers.

Claims

On the channel page: Claim with Twitch (identity only, the login must equal the channel), then link a Solana wallet by signing a message. The payout transaction goes out on the next 5-minute cycle. A claim shows "waiting" until a payout tx signature exists, never "paid" without one. Payout txs: mock adapter (not live yet). Twitch login: mock adapter / coming. No streamer is paid, sponsored or partnered by SAYIT; a bounty is fees from a coin someone else launched.

Aim the ears

Hold 0.5% of the $SAYIT supply (read on chain from your wallet, cached 60 seconds) to pin a word coin to up to 5 roster channels. Pinned live channels get priority listening slots, and you get spot and catch events 30 seconds before the public wall (Telegram alerts: mock adapter / coming). Pins are re-checked every cycle and freeze when your balance drops below the tier.

$SAYIT buyback and burn

The buyback wallet's launch fees and 20% fee legs buy $SAYIT on the pump.fun curve (or the canonical PumpSwap pool after graduation) and burn exactly the bought amount, at most twice per 5-minute period. No aggregator. Every burn links to Solscan on the ledger.

Wallets

payer (fees for collect txs)
6zQMEN6FVZ5d34ifqA3VmVPEAaV1mZ8tvw8FmCjozYPi
escrow (bounties)
6V6f8QbKrP1fehUh2oAehAtzWVYP633HWP5pg7Jpp1Ce
buyback
CtaovznJF8mZVPLY7y9nUmQAnkpxkwiq1sXfk5fengBU
treasury (listener compute)
B2oQJJ3759ibm194Dnwu5aU8KWGFB4aME98DdecoUfHR
$SAYIT CA
H1heono1No6wWtWQqm3qYMgdY3vN3qHDcRmgGp9ppump

Fee route state: awaiting first word coin. The signer re-checks the exact bytes of every transaction it signs and holds every key; the web server holds none.

Proofs

  • Every launch is one transaction from the launcher's own wallet; the decoded instruction list is shown before signing.
  • Every cycle row, zero rows included, is on the ledger with its transactions.
  • Every catch has a VOD timestamp and, when the clip adapter is live, the twitch.tv clip.
  • Escrow balance vs ledger: ledger.

Adapter status

live stream detectionreal (public playback probe)
clip cut at the keyword spotmock adapter / coming
Twitch login for claims and opt-outmock adapter / coming
holder catch alertsmock adapter / coming
auto-post catch cards to Xmock adapter / coming
X DM alertsmock adapter / coming
Kick listeningcoming
TTS tipscoming
bounty payout txsmock adapter
fee claim, split, burn routewired / awaiting first word coin

Risks

  • The money path (launch fee, creator vault, collect and split, buyback and burn, payout) has to pass the operator's MONEY EDGE TEST on this exact route before launch day; until then the fee route is labelled "wired", never "proven".
  • Unclaimed bounties have no expiry in v1; this is an operator decision that can change.
  • Speech recognition can be wrong. Two passes, a 0.90 threshold and an admin void before claim reduce false catches; they do not remove them.
  • SAYIT reads public Twitch streams. Twitch's terms and any streamer's request to opt out apply; opted-out channels are removed.
  • Memecoins are volatile. Word coins can go to zero.

FAQ

Does the streamer know? Not unless they look. SAYIT is not affiliated with Twitch or any streamer, and no streamer endorses a word coin.

Why audio only? Speech is all we need; audio stays in memory for 60 seconds and is never stored.

Can I launch a streamer's name? No. Real people's names are blocked.

Terms

SAYIT is software. Launches are signed by your own wallet; you pay the network, the dev buy and the launch fee. Nothing here is investment advice. Clips stay on twitch.tv.

Privacy

We store wallet addresses you sign in with, session cookies (7 days), hashed IPs for rate limits, and transcripts of public streams for 24 hours. No audio is stored. No analytics trackers.