Jev picks the coin, the Grok Bots trade it
A memecoin desk where every judgement is a typed number. A collector pulls fresh launches on Solana, BSC and Robinhood Chain, TypeSafe’s Jev answers yes-or-no, pick-one and score questions about each, and the Grok Bot seats size, fill and exit the one it picks. Every file and prompt from the guide, the overnight $100 run from its video, and what the checks found
A memecoin trading desk rebuilt so nothing on it reasons in prose. A collector pulls fresh launches on Solana, BSC and Robinhood Chain and kills most of them with free arithmetic; TypeSafe’s Jev answers typed questions about the survivors (is the float concentrated, is this X account really the project’s, has the move already happened) and then picks at most one; and the Grok Bot seats size it, fill it on the FOMO app and exit on a single rule. Every file and prompt from the guide is here, run end to end against the real SDK. As published the code can’t trade a single Solana token, so the bugs that stop it are fixed in place and marked. The companion video of a $100 overnight run to $2,197.67 is here too: its coin’s chart checks out, but the run is a replay of candle closes that bets 54 to 81% of the bank on each trade, where the guide’s own rules allow 6%.
A layer that sits on top of an existing desk of xAI Grok Bot seats that trade memecoins. It changes one thing: every judgement on the desk is now a typed number with a probability on it, instead of prose the code has to parse. A collector pulls every fresh token from the FOMO trading app with its metrics, the chain data for whichever chain it lives on, and the project’s X account. TypeSafe’s Jev, a model that answers typed questions instead of writing text, judges each token and then makes one final call: which of these, if any, do we trade. The Grok Bot seats trade the token Jev picked.
The guide is sold on its results: “six figures” from the earlier version of this desk, $1,000 turned into $101,607.14 in ten days, and in the companion video $100 turned into $2,197.67 overnight. No wallet or trade history backs any of them, and the earlier guide itself reported $89 turned into $7,769. The video’s coin and chart are real, but every one of its 18 fills sits exactly on a five-minute candle close, the signature of a replay rather than live orders, and every trade bets 54–81% of the bank where the guide’s SIZE prompt caps a ticket at 6%. The useful part is the judging layer, and it stands on its own. This entry keeps all of the guide and checks everything around it.
FOMO’s terms forbid both halves of this design: reading its private API with your session, and letting bots execute trades. As published, the code also can’t trade a single Solana token, and the RISK seat can’t free the book after its first close, so the desk would never scan again. Those bugs are fixed below and marked “fixed” in the code; the design problems that remain are listed after the files. Memecoins are among the riskiest things you can trade, and nothing here is financial advice.
What held up, on 2 October 2026
Checked against TypeSafe’s docs and SDK source, live GeckoTerminal, DexScreener, Solana, Robinhood Chain and Etherscan responses, FOMO’s help centre, terms and web app, xAI’s Grok Bot docs and Cloudflare’s, and by running every file in the guide end to end.
Code fetches, the model judges, code decides
This guide assumes the Grok Bot desk from its author’s earlier guide and doesn’t repeat it; the three seat prompts that matter here, SIZE, FILLS and RISK, are restated below. What it adds is the judging. Before, the seats reasoned about each token in prose and the code had to read that prose. Now a collector gathers the facts, Jev answers fixed questions about them with probabilities, a threshold in code turns each probability into a decision, and only then does a bot act.
Paste the entire guide into a coding agent and tell it to build the desk. Every file and prompt is on this page, ready to paste, in the order to build them.
Six things
Each one says what it is, what you do with it, and why the desk needs it.
A Jev key
What it is. Jev is TypeSafe’s model, and it doesn’t generate text at all. You send it a state and typed questions; it sends back typed answers with probabilities, in 70 to 500 milliseconds. TypeSafe came out of stealth on 15 September 2026 with a $40 million seed round led by DCVC; its chief executive co-wrote the InstructGPT paper.
What you do. Sign in at console.typesafe.ai, open Keys and create one. Copy it the moment it appears, because you won’t see it again, and put it in your environment.
Store the key
Why. One service on the desk holds this key and calls this endpoint. No bot ever sees it.
The endpoint
Prove the key works first
One curl before anything else, and you’ll never again confuse a bad key with a bad question.
The three question types
The entire API. Every question the desk asks is one of these three, and they appear in every file below.
What you do. Nothing yet, and nothing by hand once it runs. The playground in the TypeSafe console is a one-time tool while you write questions: drop any token in as the state, ask your question, and watch the probabilities move as you reword it. A question is a prompt and has the same failure modes as a prompt. Once the wording is right it goes into questions.py and you don’t open the playground again.
In production nothing is pasted anywhere. collect.py pulls fresh pools from GeckoTerminal, metrics from FOMO twenty at a time, trade counts from DexScreener and contract data from the chain, then builds the state and sends it. You log into FOMO in Chrome once, and that is the only manual step in the whole desk.
Why. A noul is an if, a choice is a switch, a score is a sort. Your code reads the number, the threshold decides, and nobody reads a paragraph.
The split to hold onto: Jev takes the judgements, code takes the arithmetic. Every number on the desk is computed before the call and passed in as a field.
The SDK
What it is. The Python client for that endpoint. What you do: one command.
Install
Why. judge.py imports AsyncTypeSafeClient from it and questions.py imports Choice, Noul and Score. Without it both files fail at import.
A FOMO session
What it is. Where the token universe comes from. FOMO has no public API, so the collector reads your own logged-in session.
What you do. Log into FOMO in Chrome and leave that profile alone. The bearer token lives about an hour, and the client refreshes it from the browser on its own. Chrome 136 and later ignore remote debugging on the default profile, so “that profile” has to be a separate one, started with --user-data-dir.
Why. This one call returns every metric the free pass needs, twenty tokens at a time, so hundreds of candidates cost one request instead of hundreds.
The one FOMO call
There is no public API: filterTokens is the private backend of FOMO’s own web app, and the collector reaches it with your logged-in session token. FOMO’s Terms of Service, section 16, prohibit exactly that, accessing non-public areas and collecting data with bots or scrapers, and also using “automated scripts, bots, software, or any other automated means to … execute trades.” Building this desk on FOMO breaks its terms and can cost you the account. A documented data source such as Codex’s filterTokens API, which uses the same network ids and field names, removes the scraping half; the trading half has no sanctioned automated route.
Chain data
What it is. GeckoTerminal’s public API: free, no signup, no key.
What you do. Nothing to set up. Just hold onto one number: about 10 calls a minute, which GeckoTerminal says fluctuates with traffic.
Why. That limit is the shape of the entire funnel. Six calls list fresh pools across three chains, which leaves three dossiers per cycle, which is why everything above the dossier has to kill hard.
The two GeckoTerminal calls
Read this before you write a single question
The desk trades Solana, BSC and Robinhood Chain, and they don’t hand back the same fields. The author called all three on 23 September 2026.
So each chain gets its own question set, routed in code. For Solana the guide reads the top wallet off the public RPC with getTokenLargestAccounts and getTokenSupply. In testing the public RPC refused the first of those outright, so you need a keyed Solana RPC; the collector below reads it from SOLANA_RPC_URL.
Robinhood Chain’s public RPC is rpc.mainnet.chain.robinhood.com. The guide says it answers 403 without a browser User-Agent; in testing most clients got through, though Python’s default urllib User-Agent was refused. Etherscan’s V2 API is one key for 63 chain ids via ?chainid=, and its topholders, tokenholdercount and tokeninfo endpoints are PRO-only. It doesn’t cover Solana, but contrary to the guide it does cover Robinhood Chain. The guide calls it worth buying if you trade mostly BSC (a paid-tier chain on Etherscan), since it drops into the dossier step without changing a single question.
The desk itself
What it is. The Grok Bot desk from the original guide, plus the venue it fills on: six seats and a chief of staff, CHIEF, so seven bots, with SOCIAL now in the old BOOK seat.
What you do. Nothing new. The seats already exist; they just get their token from a different place now. The project’s X account is read by Grok Bot’s own X plugin, and the handle comes off the chain rather than from a search, so no bot goes hunting for “the project’s Twitter” and finds a fan account.
Why. Fills go through FOMO and nowhere else. One venue and one execution path means a bad fill is always traceable to one place.
The funnel
Each pass is more expensive than the one above it, so each has to kill harder than the one below. The free cut touches no network at all: everything it reads arrived with the FOMO batch. Only what survives it is worth a DexScreener call, and only what survives that is worth one of the dossier slots.
Build them in this order, top to bottom
Nine Python files and five prompts, built in this order, top to bottom. The guide counts seven files and four prompts. One more file is yours to write: fomo_api.py, the FOMO client that collect.py and main.py both import, is never given. It has to return FOMO’s rows for a list of “<address>:<netId>” ids and refresh the session token.
The code is the guide’s, run end to end against the real SDK. Where it broke, the smallest fix is in place, marked “fixed” in a comment, and every change is listed after the files.
judge.py
It runs on one machine, holds the only Jev key, and makes no trading decision of any kind. The bots get a desk secret, never the key itself.
Run it, and open a tunnel
The bots run on hosted cloud computers, so the judge needs a public address; cloudflared’s quick tunnel gives it one. Cloudflare calls quick tunnels testing-only, with no uptime guarantee and a new hostname every time they start.
The rules baked into judge.py
collect.py, the collector
Jev fetches nothing: it is a function, so this is the code that goes and gets everything. SCAN runs universe and shortlist; VET runs the dossier.
judge_client.py
The client every seat uses to reach the judge. A few lines, and the only place a bot touches the network for a judgement. JUDGE_URL is the address the tunnel prints.
Three rules for the collector
questions.py
judge.py imports SETS from it, and this is the one file you will actually reread later. Every question the desk can ask lives here and nowhere else.
Four rules that make this file work
thresholds.py
Two files: thresholds.py holds every number and filter.py holds the order they fire in. When you retune the desk, you edit thresholds.py and nothing else.
filter.py
The order is the whole point
free_kill touches no network and runs on hundreds. trade_kill costs one DexScreener call and runs on tens. chain_kill costs one of the GeckoTerminal slots. soft_kill costs a judgement and runs on a handful. Facts kill before judgements do, which is why authority_open and honeypot are comparisons here and not questions in questions.py: you ask Jev how dangerous the concentration is, and the comparisons handle the plain facts.
Log every rejection with the check that fired. Under ten rejections a day and your filter is misconfigured, not your market.
The SOCIAL seat
This is a prompt, not a file: paste it into the SOCIAL bot. It took the BOOK seat’s chair, and it exists because Grok Bot can read X through an X plugin, a Cursor Marketplace plugin that signs in with your own X account and is billed per read. Grok reads, Jev judges.
The handle comes off the chain and is already normalised by the collector. Never let this seat go searching for “the project’s Twitter”: it will find a fan account and be confident about it. No handle means no social read, and the token carries that as a gap rather than a pass.
The SOCIAL prompt
recycled_account is the highest-value question in the whole file. It holds two timelines side by side, the account’s and the token’s, and hands you one number for the gap.
pick.py
CHIEF runs it, and it is the only call that ever sees more than one token at a time. A choice takes up to 255 options and the shortlist is never longer than ten, so the whole decision fits in one request.
The pick’s three rules
No trade is a result. Log it with the reason, send it to Telegram, and stand down until the next run. A desk that trades every cycle is a desk with no filter.
Paste this above every seat that judges
Above the prompts of SCAN, VET, SOCIAL and CHIEF. It is what removes the bot’s own opinion from the loop.
Record one judge call by hand in front of Grok Bot and save it as a skill. Skills are shared across every bot on the account, so you paste this once instead of once per seat. Recording a demonstration covers browser work, so for a terminal call it is simpler to ask the bot to write the skill, and the desk secret belongs in the bot’s Secrets, not in the recording.
Prove the link from a bot’s own terminal, not from your laptop. Passing on your machine and failing on theirs is a firewall problem, and it is how this setup dies quietly.
Test the link from a bot
answers.shape.choice must be one of your options, the probabilities must sum to 1 (to within rounding), and model must be a version string, not an alias. If any of the three is off, stop here.
What CHIEF drops into the desk channel
When the pick comes back. This is the whole handoff, and the bots work it top to bottom.
The order, worked in sequence
The three seats that act
Three prompts, one per seat, nothing to install, and no judge call or key between the three of them. The guide says they are unchanged from the original except that the ticker now arrives from the pick with a size_factor; in fact SIZE also gains the 2% liquidity cap, FILLS hard-codes the fee figures, and RISK gains the release step.
The exit is a single comparison on two numbers the desk already holds, so it runs the instant the data lands and runs the same way every time. That is what you want in the seat that closes.
Jev picks what to hold. Grok Bot decides how much and how long. The exit rule answers to neither of them.
book.py
It creates desk.db on first run, with nothing to set up. There are two things the desk has to remember between cycles, and skipping either one costs real money.
One position at a time. The cycle runs every fifteen minutes. Without a guard it picks a second token while the first is still open, then a third, and by evening RISK is managing a portfolio nobody sized. While a position is open, the scan doesn’t run at all.
A rejected token stays rejected for a while. A token that failed at 10:00 is still the same token at 10:15, and without a bench it burns a GeckoTerminal slot and three judge calls every cycle until it ages out. The bench isn’t one length either: a honeypot flag will never become false, but “too early to tell” becomes tellable within the hour.
book.py
Three rules for the book
main.py
Run this one. It is the process that never stops: it owns the cycle, calls everything above in order, and hands finished orders to the seats. Start it with shadow=True and leave it that way for a week.
The budget is the design
GeckoTerminal gives you about ten calls a minute. Six go to listing fresh pools across three chains, so three dossiers per cycle is what is left in that minute. That is why the free pass has to kill hard: by the time a token reaches a dossier it has already survived everything a comparison can do. Want more dossiers? Set GT_PAGES to 1 and you get six.
One thing the checks add: the limit is per minute and the cycle is fifteen, so spacing the calls out would allow many more dossiers. Doing everything in one burst is a choice, not a law.
Failure handling, because this runs unattended
A week in shadow first
Run it with shadow=True for a week. It does everything except send the order and take the book, and desk.log_shadow writes one row per would-be trade: the ticker, every answer with the model id, the rejection counters, and what your old logic did with the same candidates. Read only the rows where the two disagree. That is twenty minutes each evening, and it is where your thresholds come from. Then flip the flag.
One more thing that bites unattended runs: the FOMO bearer lives about an hour. main calls fomo.token() at the top of every cycle so the client can refresh it out of Chrome before the batch goes out, rather than discovering it expired halfway through a funnel.
State is charged once per call; output is free
What a day costs
The rate limit upstream caps this for you. Three dossiers a cycle means at most three tokens reach the judge, and each takes three calls (market, chain, social) plus one pick over the survivors: ten calls of roughly 1,400 input tokens each.
Under six cents a day for every judgement the desk makes. The DexScreener and GeckoTerminal calls that feed it are free. The guide says the only other cost is the SuperGrok plan the bots already run on, but it isn’t: the SOCIAL seat’s X reads are billed per call in X API credits, FOMO takes a fee on every fill, and Grok Bot usage beyond its weekly allowance is billed on demand.
Split any set into one call per question and you pay several times as much for identical answers, because the state is charged again on every call. That is the whole reason questions.py groups the questions into sets instead of asking them one at a time.
What the checks changed in the code
Each change is marked “fixed” in the code above. With them, 41 of 48 end-to-end scenarios pass against the real SDK and a mock TypeSafe server, against 8 for the code as published; the other seven are deliberate (bench lengths left as the author set them) or informational. No live Jev key was used, so real answers and token counts weren’t measured.
What still needs work before it trades
Design problems the checks found that a small fix can’t settle. Each has a suggested approach; none is applied above.
The overnight $100 run
The companion video shows the desk’s dashboard over one day on a fresh $100, from 06:30 UTC on 1 October 2026 to 06:30 UTC on 2 October. Jev settled on one coin, COCKROACH (Solana mint H4KUxsEgCp2yDpFvyDuGM5k6XevSKKrrKUxZ3Zr6nyJc), and the bots traded it nine times, one position at a time: eight wins and a loss, ending at $2,197.67. Holding the coin over the same 24 hours returned 3.84 times.
The biggest trade bought a dip at a $234.7K market cap around 15:10 UTC and sold at $1.80M at 15:55, after a single five-minute candle ran the coin from $234K to $1.44M. Watch about nine seconds in: the bank jumps from about $148 to $835 in under a second of video.
The nine trades, as the dashboard shows them
Read frame by frame from the dashboard. Prices are market caps; the ticket is the share of the bank each trade put in. The post’s own list of balances leaves out trade 8.
What the checks found in the video
Checked frame by frame and against GeckoTerminal’s price history for the coin’s pools.
Every threshold here is the author’s, tuned against the launches they trade, over one week, on their bank and their risk tolerance. Run it in shadow mode first: log every answer next to what you would have decided yourself, and move the number where you disagree. Copy the shape, not the constants. Memecoins are among the riskiest things you can trade, and nothing here is financial advice.
Code fetches, the model judges, code decides. A seat that computes doesn’t get a judge call, and a seat that judges doesn’t get a calculator.