mrkeyoor.com_
Sun 04 Oct 08:12 UTC
Automationevaluationupdated 04 Oct 2026

jev-trader review

Jev Trader is a Bun service that reads the Kuru MON-USDC order book on Monad and chooses a buy or sell quote for each block. It can use TypeSafe's hosted Jev model, while the default mock mode uses a momentum heuristic and simulates fills without a private key.

Verdict

Our Jev Trader run installed 139 packages and used 120 MB in 15 seconds, but the repository supplied no build or test target, so live-money readiness is unproved. Use it to inspect a compact Monad and Kuru execution loop in dry-run mode. Do not attach a funded key until you have added hard risk stops, tested the accounting, and reconciled simulated fills with live queue behavior.

We ran it

Lab card: what happened when we ran jev-traderScreenshot of jev-trader (github.com/jarrodwatts/jev-trader)
Install✓ · 15s139 packages · 120 MB
Buildn/ano build script
Testsn/ano test script
Repo62 files~2,961 lines of source · 0.4 MB · 0 CI workflows · Dockerfile

Answers from our run

Does jev-trader build from source?

Dependencies installed in 15 seconds (139 packages), and the project has no separate build step. We cloned commit b587759 into a clean Debian container with 3 CPUs and no project-specific setup.

Does jev-trader have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Who should not use jev-trader?

Anyone looking for a proved profitable strategy: the repository documents execution plumbing, while issue 1 is titled It's losing money and supplies no contrary performance record.

What are the alternatives to jev-trader?

Hummingbot, Freqtrade, Jesse. Our Jev Trader run installed 139 packages and used 120 MB in 15 seconds, but the repository supplied no build or test target, so live-money readiness is unproved.

Setup3/515-second install and dry run, but live mode needs keys and margin
Docs4/5The order path, receipts, events, and environment are explained
Community3/52,772 stars and October PR activity, but 9 items remain open
Maturity1/5No release, CI, build target, test target, or tests directory

Who it’s for

Developers studying the mechanics of block-by-block market making on Kuru.
TypeScript teams that want a small example of order-book reads, post-only orders, receipt tracking, and SSE telemetry.
Researchers who will keep it in dry-run mode while checking costs, fills, and accounting against chain data.

Who it’s NOT for

Anyone looking for a proved profitable strategy: the repository documents execution plumbing, while issue 1 is titled It's losing money and supplies no contrary performance record.
Live traders who require built-in loss, gas, revert, and confidence stops: those controls sit in open pull requests 2 and 3, outside commit b587759.
Users who expect the AI model to run locally: Jev mode requires a TypeSafe API key, and the credential-free default is a mock momentum rule.
Teams with a test-gated release process: our run found no build target, no test target, no tests directory, and no CI workflow.
Operators trading another venue or pair without doing integration work: the current code targets Monad and Kuru's MON-USDC market.

Setup reality

Our sandbox installed commit b587759 in 15 seconds, adding 139 packages and using 120 MB on disk. The repository has no build script or target, so build verification was skipped. It also has no test script or target, so no tests ran.

Dry-run mode needs Bun plus Monad RPC access and uses the mock model unless configured otherwise. Jev decisions require TYPESAFE_AI_API_KEY. Live trading adds a wallet private key, funded Kuru margin balances, RPC settings, fee caps, order size, and position limits.

A Dockerfile is included, but the repository has no CI workflow or tests directory. The measured commit posts every block by design; the proposed gas, loss, revert, and confidence guards are still unmerged pull requests.

One order per block is the whole experiment

Jev Trader watches Kuru's MON-USDC order book on Monad and makes one buy-or-sell decision roughly every 300 ms. It posts a post-only limit order one tick inside the best price, cancels its previous resting order, and records a fill when another trader hits it. That is a specific market-making loop, not a general trading framework. The service exposes a snapshot, the last 1,000 block events, and an SSE feed for a dashboard.

The name can oversell the role of AI. MODEL=jev sends decisions to TypeSafe's Jev service and needs an API key. The default mock model is a momentum heuristic with an inference delay stand-in. With no private key, the program reads the real book but simulates its orders and fills. That default is the right place to start because the repository demonstrates transaction mechanics rather than a validated edge.

What happened when we ran it

Our sandbox installed commit b587759 in 15 seconds. Bun added 139 packages, and the installed tree occupied 120 MB. The checkout contained 62 files, about 2,961 lines of source, and used 0.4 MB. Installation succeeded in an unprivileged Node 22 container with 3 CPUs, 8 GB of RAM, and no secrets. This run did not connect a wallet, submit an order, or evaluate returns.

There was no build script or target, so the build step was skipped. There was also no test script or target, so the test step was skipped. The repository has 0 CI workflow files and no tests directory. A Dockerfile does exist and installs production dependencies on Bun 1.3 before starting src/index.ts. That is useful packaging, but a successful dependency install says nothing about signing, nonce recovery, margin accounting, fill detection, or loss controls.

Live mode needs capital before it has hard loss stops

The measured commit defaults to a 200 MON order, a 1,000 MON position cap, and stated starting balances of 600 MON plus 20 USDC in Kuru's margin account. It also records a $100 bankroll for percentage reporting. Live mode needs a private key, funded margin, an RPC endpoint for sends, and a read endpoint for book data and logs. Jev adds another remote dependency and credential to a loop that runs once per block.

Reaching the position cap does not always mean standing down. The README says that when the model's side is blocked, the quote goes on the opposite side with capped: true, while the recorded probabilities still show the original call. A hold occurs when the model misses the block. That behavior may reduce a position, but it also means the submitted side can disagree with the model's answer. Monitoring must distinguish model intent, cap-driven orders, sends, receipts, and later fills.

Gas and loss limits remain in an open pull request

Pull request 2 proposes caps for gas, losses, and reverts, plus fixes to fee accounting and nonce recovery. It remains open and unmerged, so those controls are not part of commit b587759. The contributor reports that the loop pays the configured gas limit even when a quote reverts and argues that posting every block can cost more than the captured spread. That is pull-request evidence, not a result from our sandbox.

The same pull request says sends with no receipt were omitted from one gas total and proposes persisting gas budgets across restarts. Pull request 3 separately proposes a 0.65 confidence threshold, because the current binary choice trades whichever side clears 50%. Both patches point at reasonable safeguards. Their open state is the decision-relevant fact: anyone going live must implement, review, and test equivalent limits rather than assuming the repository already has them.

A reported 83% revert rate exposed stale margin state

Pull request 4 reports that margin balances were refreshed every 200 blocks, leaving the trader to quote a depleted side. Its author measured an 83% quote revert rate before a local balance mirror and a 10-block reconciliation interval, then reported 11% afterward over about 340 block samples. The pull request was closed without merging. Those figures do not establish the current bot's normal rate, but they identify a concrete failure mode in the measured commit.

The same report notes that stopping the process can leave orders resting on the book and margin inside Kuru's account. It adds separate scripts to cancel orders and withdraw margin, but they are also outside the main branch. A production run needs shutdown handling that confirms cancellations, accounts for fills during shutdown, and verifies funds after withdrawal. A container restart is not a trading stop if an earlier order remains live.

September code and October pull requests show interest, not maturity

GitHub showed 2,772 stars and 9 open issues and pull requests on October 4, 2026. The repository was created on September 16 and last pushed on September 17, while outside pull-request activity continued through October 1. There is no published release. The dates show quick attention around a small public experiment, but no release cadence or merged history of the safety work raised after launch.

Hummingbot is the stronger starting point when you need an established market-making framework and multiple connectors. Freqtrade or Jesse makes more sense when strategy research and backtesting come before a live key. Jev Trader is most useful as readable execution code: 62 files expose the book read, model decision, signed order, receipt, fill log, and SSE output without much scaffolding. Keep it dry until those same paths have tests and enforced budgets.

Alternatives

ProjectWhat it isPick it when
HummingbotAn open-source framework for creating and operating crypto trading bots.pick this instead when exchange connectors and an established market-making framework matter more than this Monad-specific experiment.
Freqtrade gh↗A Python crypto bot with strategy development and operational tooling.pick this instead when you want a broader strategy workflow and are not tied to Kuru's MON-USDC book.
JesseA Python framework for researching and running crypto trading strategies.pick this instead when backtesting a strategy matters before wiring a model into live order placement.

What people are saying

  1. [velocity-scout] jarrodwatts/jev-trader

Sources

  1. Jev Trader README
  2. Commit b587759 used in our sandbox
  3. Pull request 2: proposed risk limits and accounting fixes
  4. Pull request 3: proposed confidence threshold
  5. Pull request 4: stale margin balance report

More automation reviews

jev-ultrafast · typesafe-computer-use · omniget · WA-AKG · MacDuo · flycoinrh · the whole board →