> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mobula.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Token Filters Reference

> Complete reference for all available filters in Token Filters Stream API

<Warning>
  **Alpha feature**: Token Filters access is gated. Ask the Mobula team to enable it for your account. Until then, use Pulse; it works the same way for the same view/filter workflow.
</Warning>

<Tip>
  This page documents all available filters for [Token Filters Stream](/indexing-stream/stream/websocket/token-filters-stream). All filter field names use **camelCase** matching the output format.
</Tip>

## Filter Structure

Filters are specified in the `filters` object of each view. The view root contains view controls such as `model`, `sortBy`, `sortOrder`, `limit`, `offset`, `selectors`, `ohlcv`, `ohlcvTimeframe`, and `filters`.

```json theme={null}
{
  "mode": "token",
  "views": {
    "my-view": {
      "sortBy": "volume1hUSD",
      "sortOrder": "desc",
      "limit": 50,
      "filters": {
        "chainId": { "in": ["solana:solana"] },
        "marketCapUSD": { "gte": 10000, "lte": 1000000 },
        "volume1hUSD": { "gte": 500 },
        "bonded": { "equals": false }
      }
    }
  }
}
```

## Filter Operators

| Operator | Description | Example |
| - | - | - |
| `equals` | Exact match | `{ "bonded": { "equals": true } }` |
| `gte` | Greater than or equal | `{ "marketCapUSD": { "gte": 10000 } }` |
| `lte` | Less than or equal | `{ "volume1hUSD": { "lte": 100000 } }` |
| `gt` | Greater than | `{ "holdersCount": { "gt": 100 } }` |
| `lt` | Less than | `{ "bondingPercentage": { "lt": 100 } }` |
| `not` | Not equal | `{ "source": { "not": null } }` |
| `in` | Value in array | `{ "source": { "in": ["pumpfun", "moonshot-evm"] } }` |
| `contains` | String contains | `{ "symbol": { "contains": "DOGE" } }` |
| `startsWith` | String prefix | `{ "chainId": { "startsWith": "ton" } }` |
| `endsWith` | String suffix | `{ "symbol": { "endsWith": "INU" } }` |

<Note>
  For null checks, use `{ "equals": null }` or `{ "not": null }`. Logical groups are supported with `AND`, `OR`, and `NOT` at any filter level.
</Note>

***

## GraphQL / Codex-Compatible Aliases

Token Filters Stream accepts the native Token Filters field names and the GraphQL/Codex-style aliases below. Aliases work on both the initial query and real-time WebSocket updates.

| Alias | Native field |
| - | - |
| `marketCap` | `marketCapUSD` |
| `fdv` | `marketCapDilutedUSD` |
| `holders` | `holdersCount` |
| `top10HoldersPercent` | `top10HoldingsPercentage` |
| `sniperCount` | `snipersCount` |
| `sniperHeldPercentage` | `snipersHoldingsPercentage` |
| `bundlerCount` | `bundlersCount` |
| `bundlerHeldPercentage` | `bundlersHoldingsPercentage` |
| `insiderCount` | `insidersCount` |
| `insiderHeldPercentage` | `insidersHoldingsPercentage` |
| `devHeldPercentage` | `devHoldingsPercentage` |
| `launchpadGraduationPercent` | `bondingPercentage` |
| `change5m`, `change1`, `change4`, `change12`, `change24` | `priceChange5minPercentage`, `priceChange1hPercentage`, `priceChange4hPercentage`, `priceChange12hPercentage`, `priceChange24hPercentage` |
| `volume5m`, `volume1`, `volume4`, `volume12`, `volume24` | `volume5minUSD`, `volume1hUSD`, `volume4hUSD`, `volume12hUSD`, `volume24hUSD` |
| `buyVolume5m`, `buyVolume1`, `buyVolume4`, `buyVolume12`, `buyVolume24` | `volumeBuy5minUSD`, `volumeBuy1hUSD`, `volumeBuy4hUSD`, `volumeBuy12hUSD`, `volumeBuy24hUSD` |
| `sellVolume5m`, `sellVolume1`, `sellVolume4`, `sellVolume12`, `sellVolume24` | `volumeSell5minUSD`, `volumeSell1hUSD`, `volumeSell4hUSD`, `volumeSell12hUSD`, `volumeSell24hUSD` |
| `txnCount5m`, `txnCount1`, `txnCount4`, `txnCount12`, `txnCount24` | `trades5min`, `trades1h`, `trades4h`, `trades12h`, `trades24h` |
| `buyCount5m`, `buyCount1`, `buyCount4`, `buyCount12`, `buyCount24` | `buys5min`, `buys1h`, `buys4h`, `buys12h`, `buys24h` |
| `sellCount5m`, `sellCount1`, `sellCount4`, `sellCount12`, `sellCount24` | `sells5min`, `sells1h`, `sells4h`, `sells12h`, `sells24h` |
| `uniqueBuys5m`, `uniqueBuys1`, `uniqueBuys4`, `uniqueBuys12`, `uniqueBuys24` | `buyers5min`, `buyers1h`, `buyers4h`, `buyers12h`, `buyers24h` |
| `uniqueSells5m`, `uniqueSells1`, `uniqueSells4`, `uniqueSells12`, `uniqueSells24` | `sellers5min`, `sellers1h`, `sellers4h`, `sellers12h`, `sellers24h` |
| `uniqueTransactions5m`, `uniqueTransactions1`, `uniqueTransactions4`, `uniqueTransactions12`, `uniqueTransactions24` | `traders5min`, `traders1h`, `traders4h`, `traders12h`, `traders24h` |
| `totalFees5m`, `totalFees1`, `totalFees4`, `totalFees12`, `totalFees24` | `feesPaid5minUSD`, `feesPaid1hUSD`, `feesPaid4hUSD`, `feesPaid12hUSD`, `feesPaid24hUSD` |

```json theme={null}
{
  "filters": {
    "marketCap": { "gte": 10000 },
    "sellCount4": { "gte": 10 },
    "sniperCount": { "lte": 2 },
    "bundlerCount": { "equals": 0 }
  }
}
```

***

## Canonical Filter Field Families

Most metric families support these timeframes: `1min`, `5min`, `15min`, `1h`, `4h`, `6h`, `12h`, `24h`. Use the timeframe inside the camelCase field name, for example `volume1hUSD`, `trades15min`, or `organicVolumeBuy24hUSD`.

| Category | Supported fields |
| - | - |
| Price | `priceUSD`, `latestPrice`, `price1minAgo`, `price5minAgo`, `price1hAgo`, `price4hAgo`, `price6hAgo`, `price12hAgo`, `price24hAgo`, `priceToken` |
| ATH / ATL | `athUSD`, `atlUSD`, `ath`, `atl`, `ath1h`, `ath4h`, `ath12h`, `ath24h`, `atl1h`, `atl4h`, `atl12h`, `atl24h`, `athDate`, `atlDate` |
| Price change | `priceChange1minPercentage`, `priceChange5minPercentage`, `priceChange1hPercentage`, `priceChange4hPercentage`, `priceChange6hPercentage`, `priceChange12hPercentage`, `priceChange24hPercentage` |
| Market cap | `marketCapUSD`, `marketCapDilutedUSD`, `latestMarketCap` |
| Volume | `volume{timeframe}USD`, `volumeBuy{timeframe}USD`, `volumeSell{timeframe}USD` |
| Trades | `trades{timeframe}`, `buys{timeframe}`, `sells{timeframe}`, `buyers{timeframe}`, `sellers{timeframe}`, `traders{timeframe}` |
| Fees | `feesPaid{timeframe}USD`, `totalFeesPaidUSD`, `totalFeesPaidNativeRaw`, `baseFees5minUSD`, `baseFees1hUSD`, `baseFees4hUSD`, `baseFees12hUSD`, `baseFees24hUSD`, `builderTips5minUSD`, `builderTips1hUSD`, `builderTips4hUSD`, `builderTips12hUSD`, `builderTips24hUSD`, `feesToVolumeRatio24h` |
| Organic stats | `organicTrades{timeframe}`, `organicVolume{timeframe}USD`, `organicVolumeBuy{timeframe}USD`, `organicVolumeSell{timeframe}USD`, `organicBuys{timeframe}`, `organicSells{timeframe}`, `organicBuyers{timeframe}`, `organicSellers{timeframe}`, `organicTraders{timeframe}` |
| Trending | `trendingIgnored`, `potentialScam`, `surgeScore`, `searchScore` |
| Liquidity and supply | `liquidityUSD`, `liquidity`, `liquidityMaxUSD`, `liquidityMax`, `approximateReserveUSD`, `approximateReserveToken`, `approximateReserveTokenRaw`, `liquidityBurnPercentage`, `totalSupply`, `circulatingSupply` |
| Holders | `holdersCount`, `top10HoldingsPercentage`, `top50HoldingsPercentage`, `top100HoldingsPercentage`, `top200HoldingsPercentage`, `devHoldingsPercentage`, `insidersHoldingsPercentage`, `bundlersHoldingsPercentage`, `snipersHoldingsPercentage`, `proTradersHoldingsPercentage`, `freshTradersHoldingsPercentage`, `smartTradersHoldingsPercentage`, `lpHoldingsPercentage`, `contractHoldingsPercentage` |
| Trader categories | `insidersCount`, `bundlersCount`, `snipersCount`, `freshTradersCount`, `proTradersCount`, `smartTradersCount`, `smartTradersBuys`, `freshTradersBuys`, `proTradersBuys` |
| Bonding | `bonded`, `bondingPercentage`, `bondingCurveAddress`, `preBondingFactory`, `bondedAt`, `migratedAt` |
| Metadata | `chainId`, `symbol`, `tokenSymbol`, `name`, `tokenName`, `decimals`, `logo`, `logoStored`, `rank`, `cexs`, `source`, `factory`, `sourceFactory`, `poolAddress`, `deployer`, `deployerMigrationsCount`, `deployerTokensCount`, `blockchain`, `tokenType`, `i18n` |
| Timestamps | `createdAt`, `latestTradeDate`, `bondedAt`, `migratedAt`, `athDate`, `atlDate`, `dexscreenerAdPaidDate`, `dexscreenerSocialPaidDate`, `dexscreenerBoostedDate` |
| Age offsets | `createdAtOffset`, `latestTradeDateOffset`, `bondedAtOffset`, `migratedAtOffset`, `athDateOffset`, `atlDateOffset` |
| Socials | `twitter`, `telegram`, `website`, `others`, `twitterReusesCount`, `twitterRenameCount`, `twitterRenameHistory` |
| DexScreener | `dexscreenerListed`, `dexscreenerHeader`, `dexscreenerAdPaid`, `dexscreenerSocialPaid`, `dexscreenerBoosted`, `dexscreenerBoostedAmount`, `dexscreenerAdPaidDate`, `dexscreenerSocialPaidDate`, `dexscreenerBoostedDate`, `dexscreenerPendingAt` |
| Livestream | `liveStatus`, `liveThumbnail`, `livestreamTitle`, `liveReplyCount` |
| Nested token security | `security.buyTax`, `security.sellTax`, `security.transferTax`, `security.noMintAuthority`, `security.isBlacklisted`, `security.balanceMutable`, `security.transferPausable`, `security.isHoneypot`, `security.hasHoneypotMechanism`, `security.frozen` |
| Market pool filters | `pool.type`, `pool.factory`, `pool.bonded`, `pool.explicit`, `pool.createdAt`, `pool.sourceFactory`, `pool.bondingCurveAddress`, `pool.deployer`, `pool.token0Id`, `pool.token1Id`, `pool.baseId`, `pool.price`, `pool.athToken0`, `pool.atlToken0`, `pool.athToken1`, `pool.atlToken1` |
| Special filters | `includeKeywords`, `excludeKeywords`, `pattern`, `minSocials`, `addressToExclude`, `filterQuotes` |

<Note>
  Legacy Pulse-style aliases such as `marketCap`, `volumeUSD1h`, `volumeBuyUSD1h`, `volumeSellUSD1h`, `priceChangePercentage1h`, and `organicVolumeUSD1h` are still accepted for compatibility. New integrations should use the native fields above.
</Note>

***

# Token Mode Filters (mode: "token")

<Note>
  These filters apply when using `mode: "token"`. All field names use camelCase matching the `TokenDetailsOutput` schema.
</Note>

## Price Fields

| Field | Type | Description |
| - | - | - |
| `priceUSD` | number | Current price in USD |
| `priceToken` | number | Price in quote token |
| `athUSD` | number | All-time high price in USD |
| `atlUSD` | number | All-time low price in USD |
| `athDate` | Date | Date when ATH was reached |
| `atlDate` | Date | Date when ATL was reached |

### Price Change Fields

| Field | Type | Description |
| - | - | - |
| `priceChange1minPercentage` | number | Price change % in 1 minute |
| `priceChange5minPercentage` | number | Price change % in 5 minutes |
| `priceChange1hPercentage` | number | Price change % in 1 hour |
| `priceChange4hPercentage` | number | Price change % in 4 hours |
| `priceChange6hPercentage` | number | Price change % in 6 hours |
| `priceChange12hPercentage` | number | Price change % in 12 hours |
| `priceChange24hPercentage` | number | Price change % in 24 hours |

## Market Cap Fields

| Field | Type | Description |
| - | - | - |
| `marketCapUSD` | number | Current market cap in USD |
| `marketCapDilutedUSD` | number | Fully diluted market cap |

## Volume Fields

| Field | Type | Description |
| - | - | - |
| `volume1minUSD` | number | Volume in 1 minute (USD) |
| `volume5minUSD` | number | Volume in 5 minutes (USD) |
| `volume15minUSD` | number | Volume in 15 minutes (USD) |
| `volume1hUSD` | number | Volume in 1 hour (USD) |
| `volume4hUSD` | number | Volume in 4 hours (USD) |
| `volume6hUSD` | number | Volume in 6 hours (USD) |
| `volume12hUSD` | number | Volume in 12 hours (USD) |
| `volume24hUSD` | number | Volume in 24 hours (USD) |

### Volume Buy Fields

| Field | Type | Description |
| - | - | - |
| `volumeBuy1minUSD` | number | Buy volume in 1 minute (USD) |
| `volumeBuy5minUSD` | number | Buy volume in 5 minutes (USD) |
| `volumeBuy15minUSD` | number | Buy volume in 15 minutes (USD) |
| `volumeBuy1hUSD` | number | Buy volume in 1 hour (USD) |
| `volumeBuy4hUSD` | number | Buy volume in 4 hours (USD) |
| `volumeBuy6hUSD` | number | Buy volume in 6 hours (USD) |
| `volumeBuy12hUSD` | number | Buy volume in 12 hours (USD) |
| `volumeBuy24hUSD` | number | Buy volume in 24 hours (USD) |

### Volume Sell Fields

| Field | Type | Description |
| - | - | - |
| `volumeSell1minUSD` | number | Sell volume in 1 minute (USD) |
| `volumeSell5minUSD` | number | Sell volume in 5 minutes (USD) |
| `volumeSell15minUSD` | number | Sell volume in 15 minutes (USD) |
| `volumeSell1hUSD` | number | Sell volume in 1 hour (USD) |
| `volumeSell4hUSD` | number | Sell volume in 4 hours (USD) |
| `volumeSell6hUSD` | number | Sell volume in 6 hours (USD) |
| `volumeSell12hUSD` | number | Sell volume in 12 hours (USD) |
| `volumeSell24hUSD` | number | Sell volume in 24 hours (USD) |

## Trade Count Fields

### Total Trades

| Field | Type | Description |
| - | - | - |
| `trades1min` | number | Number of trades in 1 minute |
| `trades5min` | number | Number of trades in 5 minutes |
| `trades15min` | number | Number of trades in 15 minutes |
| `trades1h` | number | Number of trades in 1 hour |
| `trades4h` | number | Number of trades in 4 hours |
| `trades6h` | number | Number of trades in 6 hours |
| `trades12h` | number | Number of trades in 12 hours |
| `trades24h` | number | Number of trades in 24 hours |

### Buy Transactions

| Field | Type | Description |
| - | - | - |
| `buys1min` | number | Buy transactions in 1 minute |
| `buys5min` | number | Buy transactions in 5 minutes |
| `buys15min` | number | Buy transactions in 15 minutes |
| `buys1h` | number | Buy transactions in 1 hour |
| `buys4h` | number | Buy transactions in 4 hours |
| `buys6h` | number | Buy transactions in 6 hours |
| `buys12h` | number | Buy transactions in 12 hours |
| `buys24h` | number | Buy transactions in 24 hours |

### Sell Transactions

| Field | Type | Description |
| - | - | - |
| `sells1min` | number | Sell transactions in 1 minute |
| `sells5min` | number | Sell transactions in 5 minutes |
| `sells15min` | number | Sell transactions in 15 minutes |
| `sells1h` | number | Sell transactions in 1 hour |
| `sells4h` | number | Sell transactions in 4 hours |
| `sells6h` | number | Sell transactions in 6 hours |
| `sells12h` | number | Sell transactions in 12 hours |
| `sells24h` | number | Sell transactions in 24 hours |

## Unique Participants

### Buyers

| Field | Type | Description |
| - | - | - |
| `buyers1min` | number | Unique buyers in 1 minute |
| `buyers5min` | number | Unique buyers in 5 minutes |
| `buyers15min` | number | Unique buyers in 15 minutes |
| `buyers1h` | number | Unique buyers in 1 hour |
| `buyers4h` | number | Unique buyers in 4 hours |
| `buyers6h` | number | Unique buyers in 6 hours |
| `buyers12h` | number | Unique buyers in 12 hours |
| `buyers24h` | number | Unique buyers in 24 hours |

### Sellers

| Field | Type | Description |
| - | - | - |
| `sellers1min` | number | Unique sellers in 1 minute |
| `sellers5min` | number | Unique sellers in 5 minutes |
| `sellers15min` | number | Unique sellers in 15 minutes |
| `sellers1h` | number | Unique sellers in 1 hour |
| `sellers4h` | number | Unique sellers in 4 hours |
| `sellers6h` | number | Unique sellers in 6 hours |
| `sellers12h` | number | Unique sellers in 12 hours |
| `sellers24h` | number | Unique sellers in 24 hours |

### Traders (Both Bought and Sold)

| Field | Type | Description |
| - | - | - |
| `traders1min` | number | Unique traders in 1 minute |
| `traders5min` | number | Unique traders in 5 minutes |
| `traders15min` | number | Unique traders in 15 minutes |
| `traders1h` | number | Unique traders in 1 hour |
| `traders4h` | number | Unique traders in 4 hours |
| `traders6h` | number | Unique traders in 6 hours |
| `traders12h` | number | Unique traders in 12 hours |
| `traders24h` | number | Unique traders in 24 hours |

## Organic Metrics (Excluding Bot Activity)

### Organic Trades

| Field | Type | Description |
| - | - | - |
| `organicTrades1min` | number | Organic trades in 1 minute |
| `organicTrades5min` | number | Organic trades in 5 minutes |
| `organicTrades15min` | number | Organic trades in 15 minutes |
| `organicTrades1h` | number | Organic trades in 1 hour |
| `organicTrades4h` | number | Organic trades in 4 hours |
| `organicTrades6h` | number | Organic trades in 6 hours |
| `organicTrades12h` | number | Organic trades in 12 hours |
| `organicTrades24h` | number | Organic trades in 24 hours |

### Organic Volume

| Field | Type | Description |
| - | - | - |
| `organicVolume1minUSD` | number | Organic volume in 1 minute |
| `organicVolume5minUSD` | number | Organic volume in 5 minutes |
| `organicVolume15minUSD` | number | Organic volume in 15 minutes |
| `organicVolume1hUSD` | number | Organic volume in 1 hour |
| `organicVolume4hUSD` | number | Organic volume in 4 hours |
| `organicVolume6hUSD` | number | Organic volume in 6 hours |
| `organicVolume12hUSD` | number | Organic volume in 12 hours |
| `organicVolume24hUSD` | number | Organic volume in 24 hours |

### Organic Buy/Sell Volume

| Field | Type | Description |
| - | - | - |
| `organicVolumeBuy1minUSD` | number | Organic buy volume in 1 minute |
| `organicVolumeBuy1hUSD` | number | Organic buy volume in 1 hour |
| `organicVolumeBuy24hUSD` | number | Organic buy volume in 24 hours |
| `organicVolumeSell1minUSD` | number | Organic sell volume in 1 minute |
| `organicVolumeSell1hUSD` | number | Organic sell volume in 1 hour |
| `organicVolumeSell24hUSD` | number | Organic sell volume in 24 hours |
| ... | ... | All timeframes available |

### Organic Participants

| Field | Type | Description |
| - | - | - |
| `organicBuyers1h` | number | Organic buyers in 1 hour |
| `organicSellers1h` | number | Organic sellers in 1 hour |
| `organicTraders1h` | number | Organic traders in 1 hour |
| ... | ... | All timeframes available |

### Organic Buy/Sell Counts

| Field | Type | Description |
| - | - | - |
| `organicBuys1h` | number | Organic buy txs in 1 hour |
| `organicSells1h` | number | Organic sell txs in 1 hour |
| ... | ... | All timeframes available |

## Fees Paid Fields

| Field | Type | Description |
| - | - | - |
| `feesPaid1minUSD` | number | Fees paid in 1 minute |
| `feesPaid5minUSD` | number | Fees paid in 5 minutes |
| `feesPaid15minUSD` | number | Fees paid in 15 minutes |
| `feesPaid1hUSD` | number | Fees paid in 1 hour |
| `feesPaid4hUSD` | number | Fees paid in 4 hours |
| `feesPaid6hUSD` | number | Fees paid in 6 hours |
| `feesPaid12hUSD` | number | Fees paid in 12 hours |
| `feesPaid24hUSD` | number | Fees paid in 24 hours |
| `totalFeesPaidUSD` | number | Total fees paid all time |
| `totalFeesPaidNativeRaw` | string | Total native fees paid as raw units |
| `baseFees5minUSD`, `baseFees1hUSD`, `baseFees4hUSD`, `baseFees12hUSD`, `baseFees24hUSD` | number | Base/gas fees in USD |
| `builderTips5minUSD`, `builderTips1hUSD`, `builderTips4hUSD`, `builderTips12hUSD`, `builderTips24hUSD` | number | Builder tips / MEV fees in USD |
| `feesToVolumeRatio24h` | number | 24h fees divided by 24h volume |

## Holdings Analysis Fields

| Field | Type | Description |
| - | - | - |
| `holdersCount` | number | Total number of holders |
| `top10HoldingsPercentage` | number | % held by top 10 holders |
| `top50HoldingsPercentage` | number | % held by top 50 holders |
| `top100HoldingsPercentage` | number | % held by top 100 holders |
| `top200HoldingsPercentage` | number | % held by top 200 holders |
| `devHoldingsPercentage` | number | % held by developers |
| `insidersHoldingsPercentage` | number | % held by insiders |
| `bundlersHoldingsPercentage` | number | % held by bundlers |
| `snipersHoldingsPercentage` | number | % held by snipers |
| `proTradersHoldingsPercentage` | number | % held by pro traders |
| `freshTradersHoldingsPercentage` | number | % held by fresh traders |
| `smartTradersHoldingsPercentage` | number | % held by smart traders |
| `lpHoldingsPercentage` | number | % held by LP-related addresses |
| `contractHoldingsPercentage` | number | % held by contract addresses |

## Trader Categories

### Trader Counts

| Field | Type | Description |
| - | - | - |
| `insidersCount` | number | Number of insider traders |
| `bundlersCount` | number | Number of bundler traders |
| `snipersCount` | number | Number of sniper traders |
| `freshTradersCount` | number | Number of fresh traders |
| `proTradersCount` | number | Number of pro traders |
| `smartTradersCount` | number | Number of smart traders |

### Trader Activity

| Field | Type | Description |
| - | - | - |
| `smartTradersBuys` | number | Buys by smart traders |
| `freshTradersBuys` | number | Buys by fresh traders |
| `proTradersBuys` | number | Buys by pro traders |

## Liquidity Fields

| Field | Type | Description |
| - | - | - |
| `liquidityUSD` | number | Current liquidity in USD |
| `liquidity` | number | Current liquidity alias |
| `liquidityMaxUSD` | number | Maximum liquidity reached |
| `liquidityMax` | number | Maximum liquidity alias |
| `approximateReserveUSD` | number | Approximate reserve in USD |
| `approximateReserveToken` | number | Approximate reserve in tokens |
| `approximateReserveTokenRaw` | string | Approximate reserve in raw token units |
| `liquidityBurnPercentage` | number | Burned LP liquidity percentage |

## Bonding Fields

| Field | Type | Description |
| - | - | - |
| `bonded` | boolean | Whether token is bonded |
| `bondingPercentage` | number | Bonding curve completion % |
| `bondingCurveAddress` | string | Bonding curve contract address |
| `preBondingFactory` | string | Factory before bonding |
| `bondedAt` | Date | When token bonded |

## Token Metadata Fields

| Field | Type | Description |
| - | - | - |
| `symbol` | string | Token symbol |
| `tokenSymbol` | string | Token symbol alias |
| `name` | string | Token name |
| `tokenName` | string | Token name alias |
| `decimals` | number | Token decimals |
| `logo` | string | Token logo URL |
| `logoStored` | boolean | Logo is stored by Mobula |
| `deployer` | string | Deployer address |
| `deployerMigrationsCount` | number | Deployer's migration count |
| `deployerTokensCount` | number | Deployer's total tokens |
| `rank` | number | Token rank |
| `cexs` | string | Centralized exchange availability metadata |
| `totalSupply` | number | Total supply |
| `circulatingSupply` | number | Circulating supply |

## Source & Factory Fields

| Field | Type | Description |
| - | - | - |
| `source` | string | Source launchpad (pumpfun, moonshot-evm, etc.) |
| `factory` | string | Factory address |
| `sourceFactory` | string | Source factory address |
| `poolAddress` | string | Primary pool address |
| `blockchain` | string | Blockchain name |
| `tokenType` | string | Token type |

## Timestamp Fields

| Field | Type | Description |
| - | - | - |
| `createdAt` | Date | Token creation date |
| `latestTradeDate` | Date | Last trade timestamp |
| `bondedAt` | Date | Bonding completion date |
| `migratedAt` | Date | Migration date |
| `athDate` | Date | ATH timestamp |
| `atlDate` | Date | ATL timestamp |
| `dexscreenerAdPaidDate` | Date | DexScreener ad payment date |
| `dexscreenerSocialPaidDate` | Date | DexScreener social payment date |
| `dexscreenerBoostedDate` | Date | DexScreener boost date |

## Social Fields

| Field | Type | Description |
| - | - | - |
| `twitter` | string | Twitter/X URL or handle |
| `telegram` | string | Telegram URL |
| `website` | string | Website URL |
| `others` | string | Other social links |
| `twitterReusesCount` | number | Times Twitter handle reused |
| `twitterRenameCount` | number | Twitter rename count |
| `twitterRenameHistory` | object | Twitter rename history payload |

## DexScreener Fields

| Field | Type | Description |
| - | - | - |
| `dexscreenerListed` | boolean | Listed on DexScreener |
| `dexscreenerHeader` | string | DexScreener header image |
| `dexscreenerAdPaid` | boolean | Paid for DexScreener ad |
| `dexscreenerAdPaidDate` | Date | DexScreener ad payment date |
| `dexscreenerSocialPaid` | boolean | Paid for social verification |
| `dexscreenerSocialPaidDate` | Date | DexScreener social payment date |
| `dexscreenerBoosted` | boolean | DexScreener boosted |
| `dexscreenerBoostedAmount` | number | Boost amount |
| `dexscreenerBoostedDate` | Date | DexScreener boost date |
| `dexscreenerPendingAt` | Date | DexScreener pending date |

## Livestream Fields

| Field | Type | Description |
| - | - | - |
| `liveStatus` | string | Livestream status ("pump\_live", "pump\_live\_end") |
| `liveThumbnail` | string | Livestream thumbnail URL |
| `livestreamTitle` | string | Livestream title |
| `liveReplyCount` | number | Livestream reply count |

## Security Fields

Filter by security analysis using nested object:

```json theme={null}
{
  "filters": {
    "security": {
      "buyTax": { "lte": 5 },
      "sellTax": { "lte": 10 },
      "noMintAuthority": { "equals": true },
      "isBlacklisted": { "equals": false },
      "balanceMutable": { "equals": false },
      "transferPausable": { "equals": false }
    }
  }
}
```

| Field | Type | Description |
| - | - | - |
| `security.buyTax` | number | Buy tax percentage |
| `security.sellTax` | number | Sell tax percentage |
| `security.transferTax` | number \| string | Transfer tax percentage |
| `security.isBlacklisted` | boolean | Has blacklist functionality |
| `security.balanceMutable` | boolean | Balances can be modified |
| `security.noMintAuthority` | boolean | Mint authority revoked (Solana) |
| `security.transferPausable` | boolean | Transfers can be paused |
| `security.isHoneypot` | boolean | Token is honeypot |
| `security.hasHoneypotMechanism` | boolean | Honeypot-like mechanism detected |
| `security.frozen` | boolean | Token or token account is frozen |

***

# Market Mode Filters (mode: "market")

<Note>
  Market mode includes all token filters above, plus pool-specific filters. Pool filters are nested under a `pool` object.
</Note>

## Pool-Specific Filters

```json theme={null}
{
  "mode": "market",
  "views": {
    "my-market-view": {
      "sortBy": "volume1hUSD",
      "sortOrder": "desc",
      "limit": 50,
      "filters": {
        "marketCapUSD": { "gte": 10000 },
        "pool": {
          "type": { "in": ["pumpfun", "raydium-v4"] },
          "factory": { "equals": "uniswap-v2" },
          "bonded": { "equals": false }
        }
      }
    }
  }
}
```

### Pool Fields

| Field | Type | Description |
| - | - | - |
| `pool.type` | string | Pool type (pumpfun, raydium-v4, uniswap-v2, etc.) |
| `pool.factory` | string | Factory name or address |
| `pool.bonded` | boolean | Pool is bonded |
| `pool.explicit` | boolean | Pool is explicit |
| `pool.createdAt` | Date | Pool creation date |
| `pool.sourceFactory` | string | Bonding curve factory |
| `pool.bondingCurveAddress` | string | Bonding curve address |
| `pool.deployer` | string | Pool deployer address |
| `pool.token0Id` | number | Token0 internal ID |
| `pool.token1Id` | number | Token1 internal ID |
| `pool.baseId` | number | Base token internal ID |
| `pool.price` | number | Pool price |
| `pool.athToken0` | number | Token0 ATH in pool terms |
| `pool.atlToken0` | number | Token0 ATL in pool terms |
| `pool.athToken1` | number | Token1 ATH in pool terms |
| `pool.atlToken1` | number | Token1 ATL in pool terms |

***

# Special Filters

## Keyword Filters

Search by token name or symbol:

```json theme={null}
{
  "filters": {
    "includeKeywords": ["meme", "doge", "cat", "pepe"],
    "excludeKeywords": ["scam", "fake", "test", "rug"]
  }
}
```

| Field | Type | Description |
| - | - | - |
| `includeKeywords` | string\[] | Must contain any of these |
| `excludeKeywords` | string\[] | Must NOT contain any of these |

## Pattern Filter

```json theme={null}
{
  "filters": {
    "pattern": "doge"
  }
}
```

| Field | Type | Description |
| - | - | - |
| `pattern` | string | Search pattern for name/symbol |

## Social Requirements

```json theme={null}
{
  "filters": {
    "minSocials": 2
  }
}
```

| Field | Type | Description |
| - | - | - |
| `minSocials` | number | Minimum social links (1-3) |

## Address Exclusions

```json theme={null}
{
  "filters": {
    "addressToExclude": ["TokenAddress1...", "TokenAddress2..."]
  }
}
```

| Field | Type | Description |
| - | - | - |
| `addressToExclude` | string\[] | Token addresses to exclude |

## Quote Token Filter

```json theme={null}
{
  "filters": {
    "filterQuotes": true
  }
}
```

| Field | Type | Description |
| - | - | - |
| `filterQuotes` | boolean | Exclude known quote/base tokens from token-mode results |

## Timeframe Offset Filter

Filter by age relative to now:

```json theme={null}
{
  "filters": {
    "createdAtOffset": {
      "gte": 1800,
      "lte": 7200
    }
  }
}
```

| Field | Type | Description |
| - | - | - |
| `createdAtOffset` | object | Age of token creation in seconds |
| `latestTradeDateOffset` | object | Age of latest trade in seconds |
| `bondedAtOffset` | object | Age of bonding completion in seconds |
| `migratedAtOffset` | object | Age of migration in seconds |
| `athDateOffset` | object | Age of ATH timestamp in seconds |
| `atlDateOffset` | object | Age of ATL timestamp in seconds |

Offset operators use age in seconds: `gte` means older than the value, `lte` means younger than the value.

**Example**: Tokens created between 30 minutes and 2 hours ago:

* `gte: 1800` (30 min × 60 sec)
* `lte: 7200` (2 hours × 60 sec × 60 min)

***

# Filter Examples

## High-Volume New Tokens

```json theme={null}
{
  "mode": "token",
  "views": {
    "high-volume-new": {
      "sortBy": "volume1hUSD",
      "sortOrder": "desc",
      "limit": 50,
      "filters": {
        "chainId": { "in": ["solana:solana"] },
        "source": { "in": ["pumpfun"] },
        "volume1hUSD": { "gte": 5000 },
        "marketCapUSD": { "gte": 10000, "lte": 500000 },
        "bonded": { "equals": false },
        "holdersCount": { "gte": 50 }
      }
    }
  }
}
```

## Safe Tokens with Low Concentration

```json theme={null}
{
  "mode": "token",
  "views": {
    "safe-distributed": {
      "sortBy": "volume1hUSD",
      "sortOrder": "desc",
      "limit": 30,
      "filters": {
        "chainId": { "in": ["solana:solana"] },
        "security": {
          "noMintAuthority": { "equals": true },
          "isBlacklisted": { "equals": false }
        },
        "top10HoldingsPercentage": { "lte": 25 },
        "devHoldingsPercentage": { "lte": 5 },
        "snipersHoldingsPercentage": { "lte": 3 },
        "holdersCount": { "gte": 100 }
      }
    }
  }
}
```

## Trending Meme Tokens

```json theme={null}
{
  "mode": "token",
  "views": {
    "trending-memes": {
      "sortBy": "priceChange1hPercentage",
      "sortOrder": "desc",
      "limit": 25,
      "filters": {
        "chainId": { "in": ["solana:solana", "evm:8453"] },
        "source": { "in": ["pumpfun", "moonshot-evm"] },
        "includeKeywords": ["meme", "doge", "pepe", "cat", "shib"],
        "excludeKeywords": ["scam", "rug"],
        "priceChange1hPercentage": { "gte": 10 },
        "volume1hUSD": { "gte": 1000 },
        "minSocials": 1
      }
    }
  }
}
```

## Whale Buy Pressure

```json theme={null}
{
  "mode": "token",
  "views": {
    "whale-buying": {
      "sortBy": "volumeBuy1hUSD",
      "sortOrder": "desc",
      "limit": 30,
      "filters": {
        "chainId": { "in": ["solana:solana"] },
        "volumeBuy1hUSD": { "gte": 10000 },
        "volumeSell1hUSD": { "lte": 5000 },
        "proTradersCount": { "gte": 3 },
        "smartTradersBuys": { "gte": 2 }
      }
    }
  }
}
```

## Recently Bonded Tokens

```json theme={null}
{
  "mode": "token",
  "views": {
    "just-bonded": {
      "sortBy": "bondedAt",
      "sortOrder": "desc",
      "limit": 50,
      "filters": {
        "chainId": { "in": ["solana:solana"] },
        "source": { "in": ["pumpfun"] },
        "bonded": { "equals": true },
        "volume1hUSD": { "gte": 500 },
        "liquidityUSD": { "gte": 10000 }
      }
    }
  }
}
```

## Low Tax Tokens

```json theme={null}
{
  "mode": "token",
  "views": {
    "low-tax": {
      "sortBy": "volumeUSD24h",
      "sortOrder": "desc",
      "limit": 40,
      "filters": {
        "chainId": { "in": ["evm:8453", "evm:1"] },
        "security": {
          "buyTax": { "lte": 2 },
          "sellTax": { "lte": 5 },
          "isHoneypot": { "equals": false }
        },
        "volumeUSD24h": { "gte": 10000 }
      }
    }
  }
}
```

## Fresh Tokens (Last 30 Minutes)

```json theme={null}
{
  "mode": "token",
  "views": {
    "just-launched": {
      "sortBy": "createdAt",
      "sortOrder": "desc",
      "limit": 50,
      "filters": {
        "chainId": { "in": ["solana:solana"] },
        "source": { "in": ["pumpfun"] },
        "createdAtOffset": { "lte": 1800 },
        "volumeUSD5min": { "gte": 100 }
      }
    }
  }
}
```

***

# Mapping from Pulse V2 to Token Filters

If migrating from Pulse V2, here's the field name mapping:

| Pulse V2 (snake\_case) | Token Filters (camelCase) |
| - | - |
| `market_cap` | `marketCapUSD` |
| `volume_1h` | `volume1hUSD` |
| `volume_buy_1h` | `volumeBuy1hUSD` |
| `volume_sell_1h` | `volumeSell1hUSD` |
| `price_change_1h` | `priceChange1hPercentage` |
| `trades_1h` | `trades1h` |
| `buys_1h` | `buys1h` |
| `sells_1h` | `sells1h` |
| `buyers_1h` | `buyers1h` |
| `sellers_1h` | `sellers1h` |
| `traders_1h` | `traders1h` |
| `fees_paid_1h` | `feesPaid1hUSD` |
| `holders_count` | `holdersCount` |
| `top_10_holdings_percentage` | `top10HoldingsPercentage` |
| `dev_holdings_percentage` | `devHoldingsPercentage` |
| `insiders_holdings_percentage` | `insidersHoldingsPercentage` |
| `snipers_holdings_percentage` | `snipersHoldingsPercentage` |
| `bonding_percentage` | `bondingPercentage` |
| `created_at` | `createdAt` |
| `latest_trade_date` | `latestTradeDate` |
| `bonded_at` | `bondedAt` |
| `organic_trades_1h` | `organicTrades1h` |
| `organic_volume_1h` | `organicVolume1hUSD` |

<Tip>
  See the [Migration Guide](/indexing-stream/stream/websocket/token-filters-migration) for complete migration instructions.
</Tip>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.