a launchpad for live streams · solana
Pick a live Kick or Twitch stream and launch a coin for it. An agent sits in that stream's chat and counts. The moment the room runs three times its own last minute, it cuts the clip and writes the verdict in public. One rule for every stream. It never posts and never trades.
live
Every card is a live chat rated against itself. The big number is messages per second right now. The purple mark is the line, three times what that chat did in the minute before. Cross it and the card turns green, the agent cuts, and the cooldown starts.
this week · by views
The most-watched clips of the last seven days from the streamers on the wall, straight from Twitch and Kick. This is what a chat does when it goes off. Pick the one you would not want to miss next time and put that stream on the wall.
fresh
The last two minutes of every stream on the wall sit in a ring buffer on the agent's box. At a crossing the newest thirty seconds become a clip, stamped with the chat numbers that caused it. It goes into the queue. A person posts it from the coin's account. The agent never does.
# spikes.json
how it works
No score, no prediction, no setting a person can tune per stream. The rule fits in a terminal window and every number on this page comes out of it.
.--------. | > chat | anon '--------' read-only
The agent joins the stream's chat as an anonymous reader. It can see messages. It cannot send one.
|##|##|##|##|##|##| 10s 10s 10s 10s 10s
Messages are counted in ten-second ticks aligned to the clock, so anyone replaying the chat gets the same counts.
rate = tick / 10 baseline = last 60s / 60
The stream is rated only against itself: the last complete tick over its own minute before. Not against a number we picked, not against another stream.
----------------- 3x
^ you are hereThree times the minute before, and at least two messages a second. Under that a quiet chat with one joke does not fire.
[ring 120s] -> [30s] -> mp4 ffmpeg, no re-encode
Over the line, the newest thirty seconds leave the ring buffer as a clip, with a thumbnail and the numbers that caused it.
clips.json posted: false
The clip lands in a public queue on the coin's page. Someone with the coin's account posts it, or does not. The agent has no account.
cooldown ######## 90s
One cut per crossing. After a spike the stream cannot fire again for ninety seconds, so one moment is one clip.
every hour: collect -> 40 / 40 / 20
Once an hour the platform wallet collects every coin's creator fees and splits them. Every transfer gets a signature in the log.
# agent/detector.py, the whole rule. open source, one function, tested. rate = messages in the last complete tick / 10 baseline = messages in the 6 ticks before it / 60 multiplier = rate / max(baseline, 0.3) SPIKE = multiplier >= 3.0 and rate >= 2.0 and not cooling WARM = multiplier >= 1.5 cooldown = 90 s after a SPIKE warm-up = 70 s after joining: no verdict before the minute is seen
economics
Every coin on the wall is created by the platform wallet, so every coin's creator fees land in one place. Once an hour they are split three ways and every transaction is written to a public log.
Swapped on Jupiter, burned in the same round, both signatures in the log. The wall's volume becomes $WALL supply leaving forever.
Whoever launched a coin gets a share every hour, pro rata by that coin's trading volume in the hour. Launch a stream that moves and you are paid for it.
Server, ring buffers, encoding. Sent to the platform's cold wallet, which is never on a server. Also in the log.
the platform coin
One coin for the whole wall. It is not tied to a stream. It is tied to all of them.
hard limits
These are not settings. They are things the code cannot do, and you can read the code.
The agent cuts a clip and puts it in a queue. It has no X account, no Kick account, no Twitch account. A person decides what goes out and from where.
The hot wallet creates coins, makes the first buy, collects fees and burns $WALL. It does not buy, sell or hold anyone's coin after the first launch buy.
Counts, rates and ratios. No score, no target, no "about to pump". A verdict is a number compared with another number.
One rule, one set of numbers, printed above. There is no per-stream setting in the config and no way to add one without a commit.
Every fee movement is in fees.json with a signature you can open on Solscan. Every clip has the counts that caused it.
The hot wallet holds pocket money and runs on the box. The platform's share goes to a cold wallet that no server has ever seen.
questions
A live stream is live attention. The chat is a number anyone can watch. The coin gets a reason to move that is not a tweet from the deployer: the room itself. When the room goes off, the clip exists within seconds and the coin's page shows it.
A person with the coin's account. The agent only cuts and queues. If nobody posts, the clip stays on the coin page with its numbers. We are not building a bot that spams X.
40% of the fees, split every hour between launchers by their coin's trading volume in that hour. The transfer has a signature in the fee log. Your wallet is the launcher of record from the moment the coin is created.
No. The agent reads a public chat anonymously and clips a public stream. The streamer can see the coin page like anyone else. If a streamer asks us to take their stream off the wall, we take it off. That is a rule, not a setting.
The card says offline, the rate drops to zero, nothing cuts. The coin keeps trading on pump.fun like any other coin. When the stream comes back, the agent rejoins and the warm-up starts again.
It can cut a boring moment if the chat spams. It cannot cut a moment the chat ignored. Every cut carries its counts, so a wrong cut is visible as a wrong cut. We would rather be wrong in public than right in private.
Yes. The rule is one function with tests. The clipper is streamlink and ffmpeg. The fee round is one script on a timer. You can run the whole thing on a $5 box and get the same numbers.
Pick the one whose chat you would not want to miss. The agent takes it from there.