Skip to content
aeon/feed

Quickstart

1. Connect

Open a WebSocket to wss://aeonfeed.com/ws. The server answers with a welcome message that lists the pairs, exchanges and limits.

2. Subscribe

Send a subscribe message with one or more channels:

json
{ "op": "subscribe", "channels": ["ticker:BTCUSDT", "agg:*"] }
  • ticker:BTCUSDT: BTC/USDT quotes from every exchange.
  • agg:*: a cross-exchange summary of all 100 pairs.

You can also subscribe in the URL: wss://aeonfeed.com/ws?subscribe=ticker:BTCUSDT,agg:*

3. Handle messages

You first receive a snapshot for each channel, then ticker or agg delta messages that contain only what changed. Merge deltas into your local state by exchange (ex) for tickers and by symbol (s) for aggregates.

const ws = new WebSocket("wss://aeonfeed.com/ws");

ws.onopen = () => {
  ws.send(JSON.stringify({ op: "subscribe", channels: ["ticker:BTCUSDT"] }));
};

ws.onmessage = (e) => {
  const msg = JSON.parse(e.data);
  if (msg.type === "ticker" || msg.type === "snapshot") {
    for (const q of msg.data) console.log(q.ex, "bid", q.b, "ask", q.a);
  }
};

Using TypeScript?

The repo ships a tiny typed client, @aeon-feed/client, with auto-reconnect and re-subscribe:

ts
import { FeedClient } from "@aeon-feed/client";

const feed = new FeedClient({ url: "wss://YOUR_HOST/ws" }).connect();
feed.subscribe("agg:*", "ticker:ETHUSDT");
feed.on("ticker", (symbol, quotes, isSnapshot) => console.log(symbol, quotes));
feed.on("agg", (rows) => console.log(rows.length, "pairs updated"));

Aeon Feed is free, with no ads and no paid tier. Donations keep it that way.

  • Keeping the project alive: servers and bandwidth for a free, public real-time feed.
  • Maintenance: keeping up with exchange API changes, fixing bugs, adding pairs and exchanges.
  • New features: cross-exchange arbitrage signals are next on the roadmap.
Tron (TRC-20)
Tether (USDT)
TXFraDKB…ZCAmpi

Send USDT only on the network you selected. TRC-20 has the lowest fees.