Skip to docs content

FOMO theses and token verification

Track FOMO users and coins in the FOMO tab. Receive theses and observed token verification on your existing WebSocket.

Run the 5-minute quickstart
Open in chat
Reviewed against product code on September 2, 2026

Choose users and coins

  • Minimum includes 10 FOMO users and 10 FOMO coins. Pro, Scale, and Ultra Speed include 100 users and 100 coins. These limits are independent of each other and your X watchlist.
  • Track a user to receive theses they author. Track a coin to receive theses from any author and its first observed verification.
  • Manage both lists in the dashboard's FOMO tab. FOMO events are live-only; History does not replay them.

Manage lists through REST

Use Bearer API-key authentication with /api/callouts. Set platform to fomo_user or fomo_coin for management; both emit events with d.platform: fomo.

  • GET returns callers, pending, and per-platform limits. Read limits for current capacity; all values are 0 without an active eligible plan. The legacy top-level limit stays 10.
  • PUT accepts { platform, input, label? }. Use a FOMO username or profile URL for users. For coins, use a FOMO coin URL or network:address; a plain contract address must resolve to one network. The response contains caller; fetch the list again after a change.
  • DELETE accepts { platform, callerId } to remove a tracked item, or { platform, intentId } to cancel a pending item. Use identifiers from GET; success returns removed: true.

account/thesis

Read d.author, d.thesis, and d.coin. d.platform is fomo. Position data and coin metadata appear when available. Use thesis.id for the thesis and (coin.networkId, coin.address) for the coin.

FOMO event types

typescript
type FomoCoin = {
  address: string;
  networkId: number;
  name?: string;
  symbol?: string;
  image?: string;
  metadataObservedAt?: number;
  priceUsd?: string;
  marketCapUsd?: string;
  liquidityUsd?: string;
  volume24hUsd?: string;
  change24hPercent?: string;
};
type FomoThesisEvent = {
  platform: 'fomo';
  coin: FomoCoin;
  author: {
    id: string;
    username: string;
    verified: boolean;
    displayName?: string;
    avatar?: string;
    twitter?: string;
  };
  thesis: {
    id: string;
    text: string;
    createdAt: number;
    likes: number;
    replies: number;
    tradeId?: string;
    parentId?: string;
    segments?: Array<{ text: string; link?: string }>;
  };
  position?: {
    tokenAmount?: string;
    usdValue?: string;
    unrealizedPnlUsd?: string;
    realizedPnlUsd?: string;
    unrealizedPnlPercent?: string;
    realizedPnlPercent?: string;
    closedAt?: number;
  };
  observedAt?: number;
  receivedAt?: number;
};
type FomoTokenVerifiedEvent = {
  platform: 'fomo';
  coin: FomoCoin;
  observedAt: number;
  receivedAt?: number;
};

Thesis event

json
{
  "v": 1,
  "t": "account",
  "op": "thesis",
  "id": "fomo:thesis:thesis-1",
  "ts": 1772000001060,
  "d": {
    "platform": "fomo",
    "coin": {
      "address": "So11111111111111111111111111111111111111112",
      "networkId": 1399811149,
      "name": "Example Token",
      "symbol": "EXM",
      "image": "https://cdn.example/token.png",
      "metadataObservedAt": 1772000000900,
      "priceUsd": "0.00000123456789012345",
      "marketCapUsd": "123456.7890123456789"
    },
    "author": {
      "id": "user-1",
      "username": "SignalDesk",
      "displayName": "Signal Desk",
      "avatar": "https://cdn.example/avatar.png",
      "twitter": "signaldesk",
      "verified": true
    },
    "thesis": {
      "id": "thesis-1",
      "text": "Watching liquidity",
      "createdAt": 1772000001000,
      "likes": 2,
      "replies": 1,
      "tradeId": "trade-1",
      "segments": [
        {
          "text": "Watching liquidity",
          "link": "https://example.com/thesis"
        }
      ]
    },
    "position": {
      "tokenAmount": "549351.552212985712345",
      "usdValue": "12.34567890123456789",
      "realizedPnlUsd": "0"
    },
    "receivedAt": 1772000001050
  }
}

account/token_verified

A coin-only event reports the first time TweetStream observes verification for a tracked coin. It contains no author, thesis, or position. observedAt is an observation time, not the time verification happened. Verification is not a safety or investment recommendation.

Token verification observed

json
{
  "v": 1,
  "t": "account",
  "op": "token_verified",
  "id": "fomo:verified:1399811149:coin:1772000001000",
  "ts": 1772000001060,
  "d": {
    "platform": "fomo",
    "coin": {
      "address": "So11111111111111111111111111111111111111112",
      "networkId": 1399811149,
      "symbol": "EXM"
    },
    "observedAt": 1772000001000,
    "receivedAt": 1772000001050
  }
}

Read timestamps and market values

  • Timestamps are Unix milliseconds. thesis.createdAt is the thesis creation time; optional receivedAt is TweetStream's receipt time; envelope ts is the delivery preparation time.
  • Coin market values and position amounts are decimal strings. Coin market values include metadataObservedAt; they describe that observation, not a guaranteed current quote.
  • Make exact envelope id replays idempotent. Missing optional fields mean unavailable, not zero. Published X latency figures do not apply to FOMO.