---
title: "FOMO theses and token verification"
canonical_url: "https://tweetstream.io/docs/fomo"
last_updated: 2026-09-24
---

# FOMO theses and token verification

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

Canonical URL: https://tweetstream.io/docs/fomo

## 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 /api/callouts`
- `PUT /api/callouts`
- `DELETE /api/callouts`

- `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.
