jev-trader
★ 3.1k▲ 31jarrodwatts/jev-trader
Asks Jev buy or sell on every Monad block and places real post-only limit orders on the Kuru MON-USDC book. Not financial advice.
Crypto terminal that reads up to 1,000 posts about a ticker alongside market and funding data and turns them into a buy, sell, hold, or take-profit call. No license file at the time of writing. Not financial advice.
View on GitHub →Hands-on review
A crypto terminal that reads a thousand posts and prints a trade ticket. It cannot touch your money — but the price on that ticket may be invented.
Good for
Watch out for
Tested Sep 20, 2026 at 5c932f9 · Python 3.12 in Docker, offline, with local stand-ins for TypeSafe, the post vendor and the exchange
How we reviewed this: we ran it in Docker with no network, pointing the model client, the post vendor and the exchange at our own stand-ins, and captured every outbound request. We made no Jev calls, so nothing here judges Jev’s answers — only what this program sends and what it does with what comes back.
It pulls posts about a ticker from a third-party scraping vendor, pulls price and candles from Kraken, computes a keyword-based polarity score locally, and sends a summary plus fifty representative posts to Jev as four typed questions in one request. It then prints a trade ticket: action, entry range, stop loss, two targets, risk-to-reward.
The batching is genuinely good — four questions, one request, one call per scan regardless of how many posts you pulled.
We looked for this specifically. There is no order placement, no signing, no wallet, no exchange credentials anywhere. The exchange client is constructed with no keys at all:
exchange = ccxt.kraken({"enableRateLimit": True, "timeout": 8000})
and only fetch_ticker and fetch_ohlcv are ever called. The dependency list has no web3, no solana, no ethers. The README’s “does not execute trades automatically” is true.
So the risk here is not that it moves your money. It is that it hands you a ticket that looks like it came from a desk, and you move your own.
The price can be invented. Any exception fetching from Kraken — a missing SYM/USD pair, a rate limit, a geo-block — is caught and replaced with a table of constants:
defaults = {"BTC": (76500.0, -1.2, 44.5, -0.015), ...}
base_price, change, rsi, funding = defaults.get(symbol.upper(), (100.0, 0.0, 50.0, 0.01))
The response does carry is_fallback: true. The front end never reads it — the string appears twice in the market service and zero times in the page’s JavaScript — so the header still says “Live” and the ticket still shows entry, stop and targets computed off a made-up price. For an unlisted altcoin, that price is $100.00.
The funding rate is not a funding rate.
# Estimated funding rate based on 24h momentum
funding_rate = 0.010 if change_24h > 3 else (-0.015 if change_24h < -3 else 0.005)
It is a three-way map on the 24-hour change, labelled “Funding Rate” in the interface and sent to Jev as market.funding_rate_pct. One of the four questions then asks whether negative funding clashing with panic indicates a short squeeze — so the model is reasoning about a quantity that is really just “fell more than 3%”. Open interest, which the README also promises, is never fetched at all.
The levels are five constants.
stop_loss = round(price * 0.962, 2)
tp1 = round(price * 1.045, 2)
Bitcoin and a microcap, RSI 28 and RSI 72: the stop is always −3.8% and the targets always +4.5% and +8.5%. Nothing about volatility, ATR, position size or sample quality enters. There is no confidence threshold, no refusal on thin data — we drove it with zero posts and it produced a complete STRONG_BUY ticket — and no path anywhere refuses to answer.
And without a key, it doesn’t ask Jev at all:
if funding_rate < -0.01 and polarity < -0.2:
action = "STRONG_BUY"
confidence = 88.5
Combined with the line above, that condition is “fell more than 3%”. The rationale it prints — “significant ecosystem or market-moving catalyst detected in recent discussions” — is generated from a hardcoded constant with no post having been read. The same branch runs if a Jev call throws, and the interface still says “Live”.
Posts go out with the author’s handle and full text, unredacted and untruncated. Nothing in the repository redacts anything. The vendor is a third-party scraper rather than X’s own API, and it learns your key and which ticker you’re asking about.
There is no authentication on any endpoint, and the CORS policy is allow_origins=["*"] with allow_credentials=True. One of those endpoints rewrites the .env file with keys supplied in the request body. The documented deployment binds to all interfaces. We’ve asked the author to turn on private vulnerability reporting, which the repository doesn’t have.
One commit, created 2026-09-19, and no licence file — which means, legally, no permission to fork, modify or use it. 98 stars at the time of writing, nothing pushed since the first commit, no CI, no issues.
The two test files pass with no network and no key, which is the problem: their assertions (market["price"] > 0) are satisfied by the invented fallback data, so a green run cannot distinguish a working system from one that is fabricating everything.
The engineering idea underneath — local statistics first, one batched model call second — is sound, and the honest part is that it never touches your account.
But a tool that prints “88.5% calibrated confidence” next to a stop loss computed from a price it invented, with no disclaimer anywhere in the interface or the README, is selling certainty it does not have. Read it as a demonstration of the request shape. Do not read the ticket.
For a project that handles the same domain with explicit risk limits, see jev-trader and Prism. Nothing here is financial advice, and nothing there is either.
See how it compares with other tools in Best Jev tools, tested hands-on.
Review updated Sep 20, 2026. Numbers quoted from the project are its author's own; we don't publish our own measurements of Jev.
jarrodwatts/jev-trader
Asks Jev buy or sell on every Monad block and places real post-only limit orders on the Kuru MON-USDC book. Not financial advice.
imikerussell/beebots
Three trading bots race on OKX perpetual futures with every decision typed and a risk layer in plain code; paper trading is the default. Not financial advice.
aowang-ai/jev-trade
Hyperliquid trading bot based on jev-trader, where Jev decides buy, sell, or hold on every tick for five coins. Dry-runs without a private key.
New Jev releases, pricing changes, and the best new projects, once a week. No spam; unsubscribe anytime.
Powered by Buttondown. See our privacy policy.