A trading engine built from swappable parts.
Jeeva runs one loop per market: read the data, ask a strategy for a direction, move the position to match. What decides, where it trades, and what it gets to see are all interfaces — so the engine stays the same while the parts change.
- Easily extendable interfaces
- Modular
- Evaluate before risking funds
- Paper-first
- read it, fork it, extend it
- Open source
An operator's trading loop, not a black box
Everything the engine does is visible on the dashboard — and every part of it is yours to replace or switch off.
Bring your own strategy
A decision maker is anything that can look at a market and answer long, short or flat. Jev ships in the box; your own rules or model drop into the same slot.
Bring your own venue
Execution sits behind its own interface. Hyperliquid and a paper wallet are the adapters included — another exchange is another implementation, not a rewrite.
Control what it sees
Choose which markets get recorded and how far back the history runs. A strategy is only ever as good as the window it reads, so that window is yours to set.
Evaluate before you commit
Point anything new at the paper wallet and let it trade live conditions for as long as you like. Judge it on its own decision log, not on a backtest you have to trust.
Tuned market by market
How often it trades, how much size it takes, what decides it, whether it trades at all — every market carries its own settings.
Nothing happens off the record
Every cycle stores what the strategy saw, what it chose and what came of it — failures included. Any position can be traced back to its cause.
One tick, six steps, every time
Every enabled market runs its own loop at its own pace. Nothing is shared between them but the wallet.
Read the market
Recent history for that market — price, liquidity, volume, spread.
Read the position
Where this market currently stands: flat, long or short.
Ask the decision maker
Whatever strategy you've plugged in answers with a direction.
Compare
Target against current — open, close, flip, or do nothing at all.
Hand it to the wallet
A simulated fill while you're evaluating, a real order once you're not.
Write it down
What it saw, what it chose, what happened — including the cycles that fail.
Three seams, and what fills them is up to you
The loop is fixed. Everything it touches is an interface — which is where a new strategy, a new exchange, or an evaluation harness of your own plugs in.
MarketDataSource
fetch(market) → price · liquidity · spreadFeeds the recorded history every decision is made against. Point it at an exchange feed, your own store, or a recorded window you want to replay.
DecisionMaker
decide(state) → long · short · flatAnything that can look at a market and answer with a direction: a model, a set of rules, an indicator, a service of your own. It only has to answer the question.
WalletAdapter
position() · open() · close()Carries out the decision. Simulated fills for evaluation, a real exchange wallet for live trading, or a venue you add yourself.
Implement one of these, register it, and pick it per market from the dashboard. The loop around them doesn't change — which is what makes a new strategy or a new exchange an addition rather than a rewrite.
Pick who decides. Pick where it lands.
Strategy and venue are separate choices, so every combination is reachable — including a serious strategy trading a wallet that cannot lose anything.
Try the bundled model with nothing at stake.
The setup Jeeva ships with, running live.
The same decisions, on a venue you add.
Prove your rules out on live market data, risk-free.
Your logic, placing real orders.
Your logic, your venue.
Benchmark something new against the decision log.
Promote it to live with one setting.
Every part replaced — the loop around them is unchanged.
The boring guarantees
An always-on trading process should be dull in exactly three ways.
Paper until you say otherwise
A fresh install and every new market start on the paper wallet. Trading real funds takes a connected wallet and a deliberate switch — both, not either.
Fails flat, not open
If a market's cycle keeps erroring — bad data, an unreachable strategy, a rejected order — Jeeva closes that position rather than leaving it unmanaged.
No accidental size
Repeating a direction does nothing at all. Positions never quietly stack up because a strategy said the same thing twice.
Start on the paper wallet.
Enable a market, pick a strategy, and watch the log fill up. Nothing touches a real orderbook until you say so.