A buy-or-sell every Monad block, with a mock default model

Jarrod Watts demonstrated a trading bot querying Jev for buy or sell decisions on each Monad block. The open-source repository runs in dry-run mode by default.

Jarrod Watts, working on AI at Monad, demonstrated a bot querying Jev for buy or sell decisions against a live price feed, updating limit orders on Kuru’s order book once per 300 ms block. He open-sourced the project that evening, with a monitoring dashboard at jev-trader.vercel.app.

In the repository implementation, each block executes two primary remote procedure calls: reading the order book with eth_call and submitting transactions. When enabled, Jev evaluates a Choice query across the upcoming HORIZON_BLOCKS window (defaulting to 100 blocks, or roughly 30 seconds). The bot submits a post-only limit order one tick inside the spread, canceling prior quotes. The hold state indicates the model did not return before the block deadline.

While the video demonstration described executing live trades, the project README notes that the public deployment runs in dry-run mode using a mock heuristic rather than active capital.

This site's reading

Editorial notes evaluating claims against primary sources, contextualizing findings alongside related implementations, and defining technical terms.

Verify

The repository matches the posted workflow: one decision per Monad block (roughly 300 ms), a post-only limit order placed one tick inside the spread on Kuru's MON-USDC pair, and cancellation and replacement on each new block. Orders fill when counterparty market orders hit the resting quote rather than crossing the spread. MODEL defaults to a mock momentum heuristic, with Jev enabled via configuration. Without private keys, the bot runs in simulation mode against live book data. The public deployment linked in the README operates with this mock model. The latency figures cited in example events (such as an 81 ms model decision and 18 ms book read) reflect the author's local logging.

Compare

Like the Tetris and browser demonstrations, this project constructs an action space on each step and evaluates choices with Jev. Here, the options consist of two sides, buy or sell, with a hold state occurring when the model fails to return within the block interval. This task presents higher operational risk than UI interactions, as an unverified choice places a financial order. In contrast, LangChain's AutoModeMiddleware focuses on refusing risky actions, and the earlier Prism project operated in an advisory capacity. The demonstration highlights latency constraints rather than proven trading efficacy.

Terms

Post-only
An order that adds liquidity to the order book rather than filling immediately against existing orders, capturing the spread when matched.
Dry run
Operating against live market data without private transaction keys, simulating order fills when trade prints cross the resting quote.
Mock model
The repository's default heuristic that simulates trading signals locally without requiring an API key.
Late
A status indicating the model response missed the block deadline, resulting in a hold action without updating quotes.

Sources

  1. Jarrod Watts, Jev trading-bot clip
  2. Open-source follow-up
  3. jarrodwatts/jev-trader
  4. Public demo