Trading bots are black boxes
Most bots are one script that makes up its own mind. You can't see where an idea came from, what it cost, or why a trade was made.
Elitr's news and on-chain flow analysts sell signals over Binance b402. The trader picks between them by track record, checks every idea against live prices and 14 risk rules, and dry-runs every transaction before trading tokenized stocks on BNB Chain.
Elitr is an agent-to-agent trading desk on BNB Chain. A news analyst and an on-chain flow analyst sell signals over b402 payments. The Execution agent chooses between them by track record, checks each idea against live prices and 14 hard risk rules, dry-runs every transaction, and manages a small NVDAB + TSLAB portfolio with take-profit and stop-loss exits.
Elitr runs live on BSC mainnet. Every row below is a transaction the system made itself — open any of them on BscScan.
| What happened | Details | Transaction |
|---|---|---|
| ERC-8004 identities | News analyst #365554 · Flow analyst #365555 · Trader #365556 | 0x81f46ff7…8237 ↗ |
| Agent pays agent (b402) | Trader → flow analyst, 0.01 USDT for a signal, settled by Binance's facilitator | 0xe2a30c08…c49f ↗ |
| Agent rates agent (ERC-8004) | Trader posts the news analyst's accuracy to the reputation registry | 0xf09e9f6e…87d6 ↗ |
| Live trade | 2 USDT → 0.008433 NVDAB, simulated with the Transaction API, then broadcast | 0x0ce91120…3807 ↗ |
| Binance Agentic Wallet buys a signal | Paid in U via EIP-3009, no approval needed, 3.5 s from signature to signal | 0xd2535021…2e4e ↗ |
Tokenized stocks bring US equities on-chain around the clock. That's a great playground for autonomous agents, and a dangerous one.
Most bots are one script that makes up its own mind. You can't see where an idea came from, what it cost, or why a trade was made.
AI agents scrape, hardcode or share API keys. There's no simple, per-request way for one agent to pay another for information, and no record of whether that information was ever right.
Tokens trade 24/7 while the underlying market sleeps. Prices drift, quotes go stale, and liquidity is thin on most platforms, so naive bots buy at the wrong price.
Give an agent a private key and no limits, and one bad signal or a reverting swap can cost real money. Safety is usually an afterthought.
Ideas come from separate analyst agents that cite their inputs. Every signal is paid for and scored afterwards, so every analyst has a receipt trail on BSC and a public hit rate.
Analysts compete for each purchase over b402: no shared keys, no subscriptions. The trader pays the one with the better record, and stops paying one that keeps being wrong.
Hard limits, a portfolio cap, take-profit and stop-loss exits, a kill switch, swap-only routes and a mandatory dry-run. Paper trading is the default.
Reads the last 48 hours of Yahoo Finance and Google News headlines about the stock behind each token, and asks Claude for a 1–100 confidence score that must cite the headlines behind it. Each call is meant to hold for an hour.
Reads what money is actually doing: every PancakeSwap v3 swap in the token's pool over the last hour. It scores buy-vs-sell volume, large-trade imbalance, buyer-vs-seller wallets and momentum. Deterministic, no LLM, and it refuses to sell a signal when there are too few swaps to say anything. Each call is meant to hold for 30 minutes.
Holds the capital. Chooses which analyst to pay, scores every call it buys, compares real and on-chain prices, runs every risk rule, simulates each swap with Binance's Transaction API, and only then fills — on paper by default.
Each step emits an event you can watch live on the dashboard. Nothing is simulated for display: if data is missing, the agent says so and holds.
Two analysts sell signals for each stock: one reads the news, one reads on-chain swap flow. The Execution agent draws a Thompson sample from each one's track record and buys from the highest draw. Analysts whose trust falls too low are paused.
It asks the chosen analyst for a signal, gets an HTTP 402 price tag, signs a USDT payment and retries. The analyst checks the payment with Binance's b402 facilitator, and only settles once it has actually produced the signal. No signal, no charge.
The real stock price from Yahoo Finance, the Binance RWA Data reference price and market status, and the live on-chain token price — for NVDAB and TSLAB.
For a held position, the agent sells on take-profit, stop-loss, or a bearish signal before it considers buying more.
Asks the aggregator for the best route. Only regular swap routes are accepted, because only those can be simulated.
14 rules on a buy (portfolio cap included), 6 on a sell. Every rule is logged with its observed value and limit. One failure and the agent holds.
The swap is simulated first. In paper mode a passing simulation is booked at the real quoted amounts; in live mode the agent signs locally and broadcasts.
When a signal's horizon ends (1 hour for news, 30 minutes for flow), the trader checks the pool price: was the call right, and by how many basis points? It updates that analyst's hit rate, trust and weight, and posts the rating on-chain to the ERC-8004 reputation registry.
b402 is Binance's facilitator for x402, which turns HTTP's long-unused 402 Payment Required status into a real payment step. No accounts, no invoices: the price travels with the response.
# Execution → Analyst GET /signal?symbol=NVDAB # Analyst → Execution HTTP/1.1 402 Payment Required PAYMENT-REQUIRED: eyJ4NDAyVmVyc2lvbiI6Mi… { "x402Version": 2, "accepts": [{ "scheme": "exact", "network": "eip155:56", "amount": "10000000000000000", "asset": "0x55d3…7955", // USDT "payTo": "0x…" }] } # Retry with PAYMENT-SIGNATURE → 200 OK { "symbol": "NVDAB", "score": 72, "stance": "bullish", … }
Every signal the trader buys is scored when its horizon ends: was the call right, and by how many basis points? That record decides who gets paid next.
Each analyst's right/wrong record becomes a probability distribution. Every cycle the trader draws once from each and buys from the highest draw, so proven analysts win most purchases and newcomers still get tested.
Before the risk engine sees it, an analyst's score is pulled toward a neutral 50 by how little the trader trusts it. A 78 from an unproven analyst becomes 64 and fails the 65 minimum; a 72 from a proven one passes as 72.
Below 0.45 trust after 10 scored calls, an analyst is paused: the trader stops paying it. Hit rate, average return and the pause line are all on the dashboard.
Agents rating agents, on-chain. Each agent gets an ERC-8004 identity on BSC, and after every scored call the trader posts the analyst's accuracy to the ERC-8004 reputation registry, where any other agent can check it before paying. Elitr's agents are registered on BSC mainnet as #365554 (news analyst), #365555 (flow analyst) and #365556 (trader), and the trader posts a rating after every scored call. Every identity and rating links to BscScan from the dashboard.
All 14 are checked before every buy, and six before every sell, each shown on the dashboard with the observed value next to the limit. The defaults below are deliberately small, and the operator can tighten or loosen them.
| Rule | Default limit |
|---|---|
| 01Kill switch | Off (one click stops everything) |
| 02Signal confidence | ≥ 65 / 100, weighted by analyst trust |
| 03Signal stance | Bullish |
| 04Signal age | ≤ 5 minutes |
| 05Price gap | On-chain ≥ 0.5% below reference |
| 06Trade size | ≤ $5 |
| 07Position size (per stock) | ≤ $25 |
| 08Portfolio size (all stocks) | ≤ $50 |
| 09Daily trading spend | ≤ $25 |
| 10Pool liquidity | ≥ $50,000 |
| 11Slippage / price impact | ≤ 1% |
| 12Route can be simulated | Swap routes only |
| 13USDT balance | Enough for the trade |
| 14BNB for gas | ≥ 0.001 BNB |
| Exits and analyst limits | |
| —Take profit | +3% over average cost |
| —Stop loss | −2% under average cost |
| —Bearish signal | Sell on a bearish call (configurable) |
| —Analyst pause | Trust < 0.45 after 10 scored calls |
Quotes and dry-runs are real and fills are booked at quoted amounts, but nothing is broadcast until live trading is explicitly switched on.
A cap on all positions combined, plus automatic take-profit and stop-loss sells, so a winning or losing position never just sits there.
Approvals and swaps go through Binance's Transaction API first. If the simulation fails, the trade doesn't happen.
Off-chain RFQ orders can't be simulated, so Elitr refuses them, even when they quote better.
The agent signs on its own machine. No Binance API ever receives a private key.
One operator click stops all new trades until the agent is restarted. Visitors get a read-only dashboard.
Tokenized stocks from bStocks, Ondo and xStocks are all deployed on BSC, but only bStocks have the pool depth to trade safely. We checked on-chain before choosing.
| Platform | Token | Best DEX liquidity on BSC | In Elitr |
|---|---|---|---|
| bStocks | NVDAB | ≈ $4.2M | Traded |
| bStocks | TSLAB | ≈ $2.0M | Traded |
| Ondo | NVDAon / TSLAon | < $10k | Tracked |
| xStocks | TSLAx | ≈ $23 | Tracked |
Snapshot of 4 Oct 2026 from DexScreener and on-chain pool balances. Liquidity changes constantly.
Agent-to-agent pay-per-signal
Reference price and market status
Live on-chain token price
Aggregated swap quotes and calldata
Simulation and broadcast
Mainnet settlement
News scoring with citations
Swap flow and pool prices, read on-chain
Agent identity and on-chain reputation
One-command stack, tested on every push
Live event stream from all three agents
The dashboard is a live window into all three agents. Everything on it comes from real events: if an agent is offline or a cycle hasn't run, the panel says so.
Connection status of all three agents, the PAPER / LIVE badge, the kill switch, and operator controls (read-only for visitors).
Every b402 payment from the trader to each analyst, with the BscScan settlement link and today's spend.
Each analyst's price, hit rate, trust and weight, who was picked for each stock and why, and every scored call.
Net P&L after signal costs and gas, positions per stock with take-profit and stop-loss levels. Paper fills are always labelled.
Per stock: the latest signal and which analyst sold it, reference vs on-chain prices, and every risk rule from the last check.
Each attempt as a pipeline: simulated → broadcast → filled, buy or sell, with the exit reason and PAPER or LIVE.
Every event from all three agents, filterable, with raw JSON for anyone who wants to verify.
pnpm install cp .env.example .env # add your keys pnpm build pnpm dev # agents :4001-4003, dashboard :3000 # or everything in containers docker compose up
Needs a Binance Web3 API key with b402 enabled, a Claude key (0G Compute or Anthropic), and a fresh BSC wallet with a little USDT and BNB. Run the one-time approval script so swaps can be simulated. Starts in paper mode.
Only when its operator switches it on. By default it runs in paper mode: every price, quote and dry-run is real, but nothing is broadcast. Live mode trades small amounts on BSC mainnet, capped by the risk limits.
The default. The agent does everything for real up to the last step: it buys real signals, fetches real prices and quotes, and simulates the exact swap with Binance's Transaction API. If the simulation passes, the fill is booked at the quoted amounts, but nothing is broadcast. The dashboard marks every paper fill and paper P&L as PAPER — it is never presented as real money.
Because a paid signal comes with a track record. Every call is scored when its horizon ends, so each analyst builds a public hit rate and average return. The trader favours analysts that have been right, weights their confidence by trust, and stops paying one that keeps being wrong until its record recovers.
Thompson sampling. Each analyst's record of right and wrong calls becomes a probability distribution; the trader draws once from each and buys from the highest draw. Good analysts win most draws, while newer ones still get a chance to prove themselves.
Because holding is usually the right call. If the US market is closed, the signal is weak, or the token is trading above the real stock price, a rule fails and the agent explains which one.
Binance's payment facilitator for x402, a standard that revives HTTP's 402 “Payment Required” status. A server names its price, the client signs a stablecoin payment, and the facilitator verifies and settles it on BSC, with gas sponsored.
Liquidity. On BSC, only bStocks have real pool depth today. Ondo and xStocks tokens exist on BSC but their pools are too thin to trade safely, so Elitr tracks them without trading them.
The Execution agent signs with its own dedicated hot wallet, locally. Binance's Trading and Transaction APIs never see a private key. Fund it with small amounts only.
A standard for on-chain agent identity and reputation. Each Elitr agent gets an ERC-8004 identity on BSC, and the trader posts every analyst's accuracy to the reputation registry, so any other agent can read an analyst's record before buying from it. Elitr's three agents are registered on BSC mainnet (#365554 news analyst, #365555 flow analyst, #365556 trader), and the trader has been posting ratings since 7 Oct 2026.
Yes. Each analyst publishes its price, symbols and horizon at GET /info, and every agent serves its ERC-8004 registration file at /.well-known/agent-registration.json. Every event the agents emit is on the dashboard timeline with its raw JSON, and payments and trades link to BscScan.
No. Elitr is an experimental hackathon project. Tokenized stocks carry issuer, liquidity and regulatory risk, and are not available to US persons or in several other regions.
Analyst picks, payments, signals, risk decisions, fills and P&L, live as they happen.