GitHub · Trading and markets
jarrodwatts/jev-trader
Deciding on a clock, with a safe default.

What it does
One trade decision per Monad block: Jev watches the Kuru MON-USDC order book and answers buy or sell roughly every 300 ms; the bot posts a post-only limit order one tick inside the touch and replaces it each block, so it earns the spread when a taker hits it instead of paying it.
The repository's own description: “One AI trade decision every Monad block. Jev on Kuru MON-USDC.”
How it works
`index.ts` plus `src/`, a `web/` dashboard that streams every block, and `SPEC.md` for the design. It dry-runs by default: with no PRIVATE_KEY the book is real, the decisions are real and the fills are simulated — `MODEL=jev` plus a TypeSafe key switches it onto Jev.
The repository, by the numbers
Read from the GitHub API on 2026-09-22. Stars and the last push move daily — quote them with the date, the way we do.
Numbers the author reports
These are the project's own figures, not our measurements — we keep ours on the statistics page and label them as ours. Read on 2026-09-23, with the sentence each figure appeared in:
- ~300 msthe budget for one buy or sell decision
- “A TypeSafe Jev model watches the Kuru MON-USDC order book and answers buy or sell every ~300 ms.” — repository README
- ~18 msone RPC read of the order book, on the public endpoint
- “the hot loop makes exactly two RPC round trips: one eth_call for the book (~18 ms on the public RPC, READ_RPC_URL) and one eth_sendRawTransaction” — repository README
What we checked
- the tree: src, web, scripts, Dockerfile, SPEC.md, .cursor/rules
- MIT LICENSE (Jarrod Watts), bun lockfile at the root
- README documents the one-decision-per-block loop and the ~300 ms cadence
- README documents the dry-run default and the env keys that switch to live and to Jev
What we did not check. We did not run it against Monad or Kuru; the repository publishes no profit figure to check.