Docs
Omen
A private agent on Robinhood Chain. It reads live prices, liquidity and volume on the chain's markets, and gives one call: buy, sell or wait.
Omen runs inside a hardware enclave on OffRouter. What you ask it is encrypted in your browser and opened only there. It calls its watchlist every four hours, keeps every call it has ever made, and holds each one against the price now.
These docs cover how a call is made and checked, what Omen reads, the private chat, the $OMEN token, and the public API behind omenagent.com.
Quick start
| Where | What you get |
|---|---|
| Private chat | Ask Omen anything about a token on Robinhood Chain, encrypted end to end. No account. |
| Quick ask | One fresh call on one watchlist token, in one click. |
| Calls | Every call Omen has made, newest first, each against the price now. |
| Markets | The watchlist live, with Omen's last call on each. |
| $OMEN | What holding gets you, your wallet, and this week's vote. |
The call
Every answer about a token comes in the same shape, one block per token:
NVDA $187.95 (24h -0.20%) liq $1.05M vol $967K Call: BUY Entry: 186.00 to 188.00 Invalidation: 182.00 Conviction: 3/5 Why: High volume relative to liquidity; more buys than sells. Risk: Tokenized stock; follows the underlying equity.
| Part | Meaning |
|---|---|
| Call | BUY, SELL or WAIT. Wait is a call too: it means there is no trade worth taking now. |
| Entry | The price zone to act in. A buy or sell outside it is not the call. |
| Invalidation | The price where the call is wrong. Past it, the idea is dead. |
| Conviction | How sure Omen is, from 1 to 5. |
| Why | What in the data moved it. |
| Risk | The main thing that could go against it. |
Omen never invents a number. When a market is too thin to trade, it says so instead of calling it.
How calls are checked
No call is ever deleted. On Calls, each buy or sell is held against the price now and marked:
| Mark | When |
|---|---|
| Working | The price has moved the way the call said, by more than 0.5%. |
| Against | The price has moved the other way, by more than 0.5%, but not past the invalidation. |
| Flat | The price is within 0.5% of where the call was made. |
| Invalidated | The price now is beyond the invalidation level. |
Waits are shown with the move since, unmarked. Only the price now is known, not the path in between: a call is marked by where the price is, not by where it went.
What Omen reads
For each token, Omen reads its markets on Robinhood Chain live from DexScreener:
- Price
- Change over 5 minutes, 1 hour, 6 hours and 24 hours
- Volume over the same windows
- Buys against sells, by count
- Liquidity, and market cap
It weighs the deepest markets most. Markets shows each token's deepest pair with at least $5,000 of liquidity.
When
Every four hours, at 00:30, 04:30, 08:30, 12:30, 16:30 and 20:30 UTC, Omen calls the whole watchlist in one scan. In between, ask it in the chat or with Quick ask.
The model is Gemma 4 31B, run in a GPU enclave.
The watchlist
Omen starts with five tokens on Robinhood Chain:
| Token | What it is | Contract |
|---|---|---|
| NVDA | NVIDIA, tokenized stock | 0xd0601CE157Db5bdC3162BbaC2a2C8aF5320D9EEC |
| GOOGL | Alphabet, tokenized stock | 0x2e0847E8910a9732eB3fb1bb4b70a580ADAD4FE3 |
| TSLA | Tesla, tokenized stock | 0x322F0929c4625eD5bAd873c95208D54E1c003b2d |
| CRCL | Circle, tokenized stock | 0xdF0992E440dD0be65BD8439b609d6D4366bf1CB5 |
| WALLET | Robinhood Wallet, onchain token | 0x0339f5459FC690aC85F1782e15782A151b4A9E1b |
More will follow, and $OMEN holders vote on which. Omen never calls OFFROUTER: it is built on OffRouter, so a call on OffRouter's own token, either way, would not be a fair one. It does not call its own token either.
Private chat
At chat.omenagent.com, ask Omen anything: a call, why, what would flip it, which token looks strongest today.
| Free | 3 free messages a day for each visitor, 30 a day in all. |
| Paid | After that, 0.03 USDG a message on Robinhood Chain, paid to Omen. |
| Holders | 20 free messages a day of their own, on top of the free ones. |
How paying works
You sign a payment for the message with your wallet (an x402 payment, a signed USDG transfer authorization). It is only sent once Omen has answered, so a message that fails costs nothing. There is no balance to top up and no account.
Privacy
Your message is encrypted in your browser to a key only Omen's enclave holds (x25519 and AES-256-GCM), after the page checks that the enclave's hardware quote names that key. OffRouter's gateway passes it on without being able to read it. Omen opens it in an Intel TDX enclave, and its call to the model is sealed again, to the model's own GPU enclave.
Your chat lives only in your open tab. Omen keeps a record of each chat (when, whether it answered, steps, spend, the model's receipt) but never what was said, and a chat cannot write to Omen's memory.
The full account, including what others can see: How it stays private.
Install the app
The chat installs as an app: on your home screen, full screen, with the same encryption.
- iPhone and iPad: open chat.omenagent.com in Safari, tap Share, then Add to Home Screen.
- Android and desktop Chrome: open the chat's menu and choose Install the app.
The app keeps only its own files, so it opens without a connection. It never keeps a message.
The token
$OMEN is the token bound to Omen, launched on Robinhood Chain through OffRouter Studio, and only after Omen passed a private judge and stayed alive a day on chain.
| Contract | 0xcf47ff6d4342a67d0535a08cadee6b2ea9e22e03 |
| Chain | Robinhood Chain |
| Holder | 5,000,000 $OMEN in one wallet. The amount may change over time. |
| Fees | A tenth of creator fees burns $OFFROUTER; the rest goes to Omen's builder. |
What holding gets you
- Chat free: 20 messages a day, apart from the free ones.
- Calls first: each scan's calls 30 minutes before everyone else.
- Steer the watchlist: a vote each week on the next token Omen covers.
Proving you hold
One signature from your wallet, good for 24 hours. No transaction, nothing spent. Your wallet signs this text (EIP-191):
OffRouter Studio holder Agent: 0x002ab5ca9ce6acc02ba340593a43fe96 Wallet: <your address, checksummed> Issued: <unix seconds>
On omenagent.com the proof goes with each request; in the chat it is sealed with your messages, so only the enclave sees your wallet. Your balance is read from the chain each time.
The vote
Each week, holders vote on the next token Omen covers, on $OMEN.
- A week runs from Monday 00:00 to the next Monday 00:00 UTC.
- One $OMEN is one vote, counted at your balance now: tokens moved to vote twice count once, and a wallet below the holder amount is not counted.
- One vote per wallet per week. Vote again to change it.
- The token needs a market on Robinhood Chain with at least $25,000 of liquidity, and must not be on the watchlist already, nor OFFROUTER or $OMEN.
The winner is announced when the week closes and added to the watchlist.
Public API
Everything on omenagent.com comes from these endpoints. Base: https://omenagent.com. JSON, no key needed. Send X-Omen-Holder (base64 of {"wallet", "issued", "signature"}) to be served as a holder.
GET /api/omen
Omen's standing: status, model, run stats, judge score, recent runs (without receipts), and the token.
GET /api/markets
The watchlist live from DexScreener: price, 1h and 24h change, liquidity, volume, the pair, and Omen's last call on each.
GET /api/calls?symbol=&limit=
Calls, newest first (limit 1 to 200, default 50), each with price_now, move and state. Scan calls in holders' early window are left out for everyone else, and counted in early.
curl https://omenagent.com/api/calls?symbol=NVDA&limit=5
POST /api/ask
Body {"symbol": "GOOGL"}, a watchlist token. A fresh call from Omen. The response streams blank lines while Omen works, then one line of JSON. A call younger than 30 minutes is returned instead of making a new one.
GET /api/holder
Your holder proof, checked: the wallet, its $OMEN, and whether it counts.
GET /api/holder/message?wallet=
The exact text for that wallet to sign.
GET /api/votes
This week's tally at holders' balances now, when it opens and closes, last week's winner, and your vote.
POST /api/vote
Body {"token": "0x…"}, as a holder. Your vote for the week.
Verify it
- The key the chat encrypts to, and the hardware quote that names it: offrouter.org/v1/studio/chat
- Each answer's model receipt: "Model receipt", under every answer in the chat.
- Omen's record, judge score and run receipts: OffRouter Studio
- $OMEN and its fees, onchain: the token on Robinhood Chain
Limits and notes
- Quick ask: three asks an hour for each visitor, and 30 a day in all. The scans carry on every four hours regardless.
- Prices come from DexScreener. If it cannot be read, Markets shows the last prices it read, up to ten minutes old.
- Tokenized stocks follow their underlying shares and trade thinner when US markets are closed.
- Omen can be wrong. Its calls are not financial advice, and nothing here is.