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

# The discovery boards.

> One request names the chains and the columns it wants. Each column is
ranked and filtered on its own, and answers with its whole ranked set.



## OpenAPI

````yaml /specs/openapi.json post /v1/discovery
openapi: 3.1.0
info:
  title: Metastreams API
  description: >-
    Click's B2B market-data API. Amounts are decimal strings, timestamps are
    Unix milliseconds, and every field name is camelCase.
  license:
    name: Proprietary
    identifier: Proprietary
  version: 1.0.0
servers:
  - url: https://{host}
    variables:
      host:
        default: api.metastreams.dev
        description: API host.
security:
  - bearerKey: []
paths:
  /v1/discovery:
    post:
      tags:
        - discovery
      summary: The discovery boards.
      description: |-
        One request names the chains and the columns it wants. Each column is
        ranked and filtered on its own, and answers with its whole ranked set.
      operationId: discovery_board
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SpotPulseSubscriptionConfig'
        required: true
      responses:
        '200':
          description: One snapshot per requested column, in page order.
          headers:
            X-Credits-Cost:
              schema:
                type: integer
              description: >-
                Credits charged for this request. Zero on any non-2xx. Sent on a
                metered tier only.
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credit balance after this request. Sent on a metered tier only.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left in the current rate-limit window.
            X-Request-ID:
              schema:
                type: string
              description: >-
                This request's trace ID. Echoed from the request, or generated
                when it sent none.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UiSpotPulseResponse'
        '400':
          description: >-
            Unsupported chain, no chain or column requested, or a malformed
            body.
          headers:
            X-Credits-Cost:
              schema:
                type: integer
              description: >-
                Credits charged for this request. Zero on any non-2xx. Sent on a
                metered tier only.
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credit balance after this request. Sent on a metered tier only.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left in the current rate-limit window.
            X-Request-ID:
              schema:
                type: string
              description: >-
                This request's trace ID. Echoed from the request, or generated
                when it sent none.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '401':
          description: Missing or invalid API key.
          headers:
            X-Credits-Cost:
              schema:
                type: integer
              description: >-
                Credits charged for this request. Zero on any non-2xx. Sent on a
                metered tier only.
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credit balance after this request. Sent on a metered tier only.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left in the current rate-limit window.
            X-Request-ID:
              schema:
                type: string
              description: >-
                This request's trace ID. Echoed from the request, or generated
                when it sent none.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '429':
          description: Rate limit exceeded.
          headers:
            Retry-After:
              schema:
                type: integer
              description: Seconds to wait before retrying.
            X-Credits-Cost:
              schema:
                type: integer
              description: >-
                Credits charged for this request. Zero on any non-2xx. Sent on a
                metered tier only.
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credit balance after this request. Sent on a metered tier only.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left in the current rate-limit window.
            X-Request-ID:
              schema:
                type: string
              description: >-
                This request's trace ID. Echoed from the request, or generated
                when it sent none.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '500':
          description: Unexpected server failure.
          headers:
            X-Credits-Cost:
              schema:
                type: integer
              description: >-
                Credits charged for this request. Zero on any non-2xx. Sent on a
                metered tier only.
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credit balance after this request. Sent on a metered tier only.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left in the current rate-limit window.
            X-Request-ID:
              schema:
                type: string
              description: >-
                This request's trace ID. Echoed from the request, or generated
                when it sent none.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '503':
          description: Dependency down or maintenance.
          headers:
            X-Credits-Cost:
              schema:
                type: integer
              description: >-
                Credits charged for this request. Zero on any non-2xx. Sent on a
                metered tier only.
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credit balance after this request. Sent on a metered tier only.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left in the current rate-limit window.
            X-Request-ID:
              schema:
                type: string
              description: >-
                This request's trace ID. Echoed from the request, or generated
                when it sent none.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
components:
  schemas:
    SpotPulseSubscriptionConfig:
      type: object
      description: 'A discovery request: one or more chains, up to three columns.'
      required:
        - chains
      properties:
        chains:
          type: array
          items:
            $ref: '#/components/schemas/SpotChain'
          description: Chains every column ranks over, as one mixed set.
        graduated:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/SpotPulseColumnConfig'
              description: Graduated column; omitted means not requested.
          description: Graduated column; omitted means not requested.
        graduating:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/SpotPulseColumnConfig'
              description: Graduating column; omitted means not requested.
          description: Graduating column; omitted means not requested.
        newPairs:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/SpotPulseColumnConfig'
              description: New-pairs column; omitted means not requested.
          description: New-pairs column; omitted means not requested.
    UiSpotPulseResponse:
      type: object
      description: >-
        `POST /v1/discovery` response: one snapshot per requested column, in
        page order.
      required:
        - columns
      properties:
        columns:
          type: array
          items:
            $ref: '#/components/schemas/UiSpotPulseUpdate'
          description: The requested columns' snapshots.
    ErrorEnvelope:
      type: object
      description: The complete error response body — every error is exactly this.
      required:
        - error
      properties:
        error:
          $ref: '#/components/schemas/ErrorDetail'
          description: The error.
    SpotChain:
      type: string
      description: >-
        Chain slug. One spelling per chain, in paths and bodies alike. Only a
        chain with spot data is published.
      enum:
        - solana
        - base
        - bsc
        - robinhood
        - arc
    SpotPulseColumnConfig:
      type: object
      description: How one discovery column is ranked and filtered.
      properties:
        filters:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/DiscoveryTokenFilters'
              description: Filters over the column, before the stage floors merge in.
          description: Filters over the column, before the stage floors merge in.
        limit:
          type:
            - integer
            - 'null'
          format: int32
          description: Ranked-set size, clamped to 1-100; 20 when absent.
          minimum: 0
        order:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/SortOrder'
              description: Rank direction; descending when absent.
          description: Rank direction; descending when absent.
        sortBy:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/DiscoverySortField'
              description: Field to rank on; the column's default when absent.
          description: Field to rank on; the column's default when absent.
    UiSpotPulseUpdate:
      type: object
      description: One column's ranked tokens.
      required:
        - column
        - deltas
      properties:
        column:
          $ref: '#/components/schemas/PulseColumn'
          description: Column these deltas apply to.
        deltas:
          type: array
          items:
            $ref: '#/components/schemas/UiSpotPulseDelta'
          description: The whole column, one entry per rank.
    ErrorDetail:
      type: object
      description: The `error` object inside the envelope.
      required:
        - code
        - message
      properties:
        code:
          $ref: '#/components/schemas/ErrorCode'
          description: >-
            Stable, machine-readable. Clients switch on this, never on
            `message`.
        details:
          description: Optional; shape is fixed per code.
        message:
          type: string
          description: |-
            Human-readable, written for the integrating developer:
            `[What happened]. [What to do next — if actionable].`
    DiscoveryTokenFilters:
      type: object
      description: >-
        Filters over a discovery column. Every range is inclusive on both ends,
        and an absent bound is unbounded.
      properties:
        ageMinutes:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_u64'
              description: Minutes since the token was created.
          description: Minutes since the token was created.
        anchorSymbols:
          type:
            - array
            - 'null'
          items:
            type: string
          description: >-
            Keep tokens whose deepest pool prices against any of these quote
            assets, such as `WSOL`, `USDC` or `WBNB`.
        bondingCurvePercent:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_f64'
              description: Bonding-curve completion, 0-100.
          description: Bonding-curve completion, 0-100.
        buys:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_u64'
              description: Buys over the last 24 hours.
          description: Buys over the last 24 hours.
        devHoldingPercent:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_f64'
              description: Share of supply the creator holds, 0-100.
          description: Share of supply the creator holds, 0-100.
        excludeDevAddresses:
          type:
            - array
            - 'null'
          items:
            type: string
          description: Drop tokens created by any of these wallets.
        excludeFundingAddresses:
          type:
            - array
            - 'null'
          items:
            type: string
          description: Drop tokens whose creator was funded by any of these wallets.
        excludeSymbolOrName:
          type:
            - array
            - 'null'
          items:
            type: string
          description: >-
            Drop tokens whose symbol or name contains any of these words,
            ignoring case.
        excludeTwitter:
          type:
            - array
            - 'null'
          items:
            type: string
          description: Drop tokens whose X handle matches any entry, as a handle or a URL.
        excludeWebsites:
          type:
            - array
            - 'null'
          items:
            type: string
          description: >-
            Drop tokens whose website host matches any entry, as a URL or a bare
            domain.
        globalFeesPaidUsd:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_Decimal'
              description: All-time USD fees traders paid to pools and launchpads.
          description: All-time USD fees traders paid to pools and launchpads.
        holderCount:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_u64'
              description: Current holders.
          description: Current holders.
        lastActivityMinutes:
          type:
            - integer
            - 'null'
          format: int64
          description: Keep tokens updated within this many minutes.
          minimum: 0
        liquidityUsd:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_Decimal'
              description: USD liquidity.
          description: USD liquidity.
        marketCapUsd:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_Decimal'
              description: USD market cap.
          description: USD market cap.
        maxGraduationStaleMinutes:
          type:
            - integer
            - 'null'
          format: int32
          description: >-
            Drop tokens with no update within this many minutes, unless they are
            at 99.5% of their curve or more.
          minimum: 0
        protocols:
          type:
            - array
            - 'null'
          items:
            type: string
          description: >-
            Keep tokens from any of these launchpads, such as `pumpfun`. The
            value `mayhem_mode` keeps Pump.fun Mayhem Mode tokens.
        sells:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_u64'
              description: Sells over the last 24 hours.
          description: Sells over the last 24 hours.
        snipersSupplyPercent:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_f64'
              description: Share of supply sniper wallets hold, 0-100.
          description: Share of supply sniper wallets hold, 0-100.
        symbolOrName:
          type:
            - array
            - 'null'
          items:
            type: string
          description: >-
            Keep tokens whose symbol or name contains any of these words,
            ignoring case. A word shaped like an address matches the token's
            address exactly instead.
        top10HoldersPercent:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_f64'
              description: Share of supply the 10 largest holders hold, 0-100.
          description: Share of supply the 10 largest holders hold, 0-100.
        twitterReuseCount:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_u64'
              description: >-
                Filter by how many times the Twitter account has been reused.
                Not yet counted, so every token passes.
          description: >-
            Filter by how many times the Twitter account has been reused. Not
            yet counted, so every token passes.
        txns:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_u64'
              description: Buys plus sells over the last 24 hours.
          description: Buys plus sells over the last 24 hours.
        volumeUsd:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FilterRange_Decimal'
              description: USD volume over the last 24 hours.
          description: USD volume over the last 24 hours.
        withAtLeastOneSocial:
          type:
            - boolean
            - 'null'
          description: '`true` keeps tokens with at least one social link.'
    SortOrder:
      type: string
      description: Rank direction; descending when absent.
      enum:
        - asc
        - desc
    DiscoverySortField:
      type: string
      description: The field a discovery column ranks on.
      enum:
        - createdAt
        - volume24hUsd
        - marketCapUsd
        - liquidityUsd
        - holdersCount
        - tradeCount24h
        - bondingCurvePct
        - bondingCurveActivity
        - graduatedAt
    PulseColumn:
      type: string
      description: One of the three discovery columns.
      enum:
        - newPairs
        - graduating
        - graduated
    UiSpotPulseDelta:
      type: object
      description: One token's place within a column.
      required:
        - chain
        - address
      properties:
        address:
          type: string
          description: Token address.
        chain:
          $ref: '#/components/schemas/SpotChain'
          description: Chain the token trades on; with `address` it keys the row.
        data:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/UiSpotToken'
              description: Token state; absent on eviction.
          description: Token state; absent on eviction.
        rank:
          type:
            - integer
            - 'null'
          format: int32
          description: 1-indexed rank; `null` drops the token out of the column.
          minimum: 0
    ErrorCode:
      type: string
      description: |-
        Every wire error code the API can return.

        Append-only: a new code is non-breaking, since clients fall back on the
        HTTP status for one they do not recognize, and a published code is never
        renamed or removed.
      enum:
        - UNAUTHORIZED
        - FORBIDDEN
        - VALIDATION_ERROR
        - UNSUPPORTED_CHAIN
        - NOT_FOUND
        - RATE_LIMITED
        - CREDITS_EXHAUSTED
        - INTERNAL_ERROR
        - SERVICE_UNAVAILABLE
    FilterRange_u64:
      type: object
      description: An inclusive range of counts; an absent bound is unbounded.
      properties:
        max:
          type: integer
          format: int64
          description: Largest value kept, inclusive; absent means unbounded.
          minimum: 0
        min:
          type: integer
          format: int64
          description: Smallest value kept, inclusive; absent means unbounded.
          minimum: 0
    FilterRange_f64:
      type: object
      description: An inclusive range of numbers; an absent bound is unbounded.
      properties:
        max:
          type: number
          format: double
          description: Largest value kept, inclusive; absent means unbounded.
        min:
          type: number
          format: double
          description: Smallest value kept, inclusive; absent means unbounded.
    FilterRange_Decimal:
      type: object
      description: An inclusive range of decimal strings; an absent bound is unbounded.
      properties:
        max:
          type: string
          format: decimal
          description: Largest value kept, inclusive; absent means unbounded.
          example: '123.456789'
        min:
          type: string
          format: decimal
          description: Smallest value kept, inclusive; absent means unbounded.
          example: '123.456789'
    UiSpotToken:
      type: object
      description: '`GET /v1/tokens/{chain}/{address}` response.'
      required:
        - chain
        - address
        - name
        - symbol
        - decimals
        - supply
        - creator
        - devFunding
        - createdAt
        - dexes
        - price
        - marketCap
        - liquidity
        - ath
        - stats
        - totals
        - holders
        - security
        - metadata
        - updatedAt
      properties:
        address:
          type: string
          description: Token address.
        anchorAddress:
          type:
            - string
            - 'null'
          description: >-
            Address of the quote asset in the token's deepest pool; `null` where
            it is not known.
        anchorSymbol:
          type:
            - string
            - 'null'
          description: Display symbol of that quote asset, on `anchorAddress`'s terms.
        annotations:
          type: array
          items:
            $ref: '#/components/schemas/TokenAnnotation'
          description: Platform-scoped quirk flags the launch carried.
          example:
            - kind: mayhem_mode
        ath:
          $ref: '#/components/schemas/UiTokenAth'
          description: All-time-high price and market cap.
        bondingCurvePct:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/Decimal'
              description: Bonding-curve completion, 0-100; `null` off launchpad curves.
          description: Bonding-curve completion, 0-100; `null` off launchpad curves.
        chain:
          $ref: '#/components/schemas/SpotChain'
          description: Chain the token trades on.
        createdAt:
          $ref: '#/components/schemas/UnixMilliseconds'
          description: Creation timestamp.
        creator:
          type: string
          description: Creator address.
        decimals:
          type: integer
          format: int32
          description: Token decimals.
          minimum: 0
        devFunding:
          $ref: '#/components/schemas/UiDevFunding'
          description: >-
            The creator wallet's first inbound funding. Always present; its
            status says whether the

            lookup has settled.
        dexes:
          type: array
          items:
            type: string
          description: Venues the token's top pools trade on, deepest first.
          example:
            - pumpswap
            - raydium
        graduatedAt:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/UnixMilliseconds'
              description: >-
                When the token graduated off its launchpad; `null` until
                graduation.
          description: When the token graduated off its launchpad; `null` until graduation.
        graduatedToDex:
          type:
            - string
            - 'null'
          description: Venue the graduation pool trades on; `null` until graduation.
        graduatedToPool:
          type:
            - string
            - 'null'
          description: Pool the launchpad pool migrated into; `null` until graduation.
        holders:
          $ref: '#/components/schemas/UiTokenHolders'
          description: Holder-risk breakdown.
        launchpad:
          type:
            - string
            - 'null'
          description: >-
            Launchpad the token launched through; `null` for non-launchpad
            tokens.
        liquidity:
          $ref: '#/components/schemas/UiMoney'
          description: Current liquidity.
        marketCap:
          $ref: '#/components/schemas/UiMoney'
          description: Current market cap.
        metadata:
          $ref: '#/components/schemas/UiTokenMetadata'
          description: Off-chain project metadata.
        name:
          type: string
          description: Token name.
        platforms:
          type: array
          items:
            $ref: '#/components/schemas/UiPlatform'
          description: The token's external-platform listings.
        price:
          $ref: '#/components/schemas/UiMoney'
          description: Current price.
        security:
          $ref: '#/components/schemas/UiTokenSecurity'
          description: On-chain security flags.
        stats:
          $ref: '#/components/schemas/UiTokenStats'
          description: Trailing-window stats, one key per rolling window.
        supply:
          $ref: '#/components/schemas/Decimal'
          description: Total supply.
        symbol:
          type: string
          description: Token symbol.
        totals:
          $ref: '#/components/schemas/UiTokenTotals'
          description: All-time volume and fee totals.
        updatedAt:
          $ref: '#/components/schemas/UnixMilliseconds'
          description: Last update timestamp.
    TokenAnnotation:
      oneOf:
        - type: object
          required:
            - kind
          properties:
            kind:
              type: string
              enum:
                - mayhem_mode
        - type: object
          required:
            - kind
          properties:
            kind:
              type: string
              enum:
                - cashback_coin
        - type: object
          required:
            - kind
          properties:
            kind:
              type: string
              enum:
                - anchor
        - type: object
          required:
            - kind
          properties:
            kind:
              type: string
              enum:
                - x_mode
      description: A platform-scoped flag the launch carried, tagged by `kind`.
    UiTokenAth:
      type: object
      description: All-time-high price and market cap, each with the timestamp it was set.
      required:
        - price
        - priceAt
        - marketCap
        - marketCapAt
      properties:
        marketCap:
          $ref: '#/components/schemas/UiMoney'
          description: All-time-high market cap.
        marketCapAt:
          $ref: '#/components/schemas/UnixMilliseconds'
          description: When the all-time-high market cap was set.
        price:
          $ref: '#/components/schemas/UiMoney'
          description: All-time-high price.
        priceAt:
          $ref: '#/components/schemas/UnixMilliseconds'
          description: When the all-time-high price was set.
    Decimal:
      type: string
      format: decimal
      description: An exact decimal, as a string.
      example: '123.456789'
    UnixMilliseconds:
      type: integer
      format: int64
      description: An instant, as milliseconds since the Unix epoch.
    UiDevFunding:
      type: object
      description: >-
        The creator wallet's first inbound funding.


        `status` separates a lookup still in flight from one that settled on a
        wallet with no

        funder to name. Every other field is `null` in both cases.
      required:
        - status
      properties:
        address:
          type:
            - string
            - 'null'
          description: Funder wallet or exchange address.
        sourceKind:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FundingSourceKind'
              description: What the funder is (exchange, bridge, wallet, …).
          description: What the funder is (exchange, bridge, wallet, …).
        sourceLabel:
          type:
            - string
            - 'null'
          description: Display label for the funder, e.g. an exchange name.
        status:
          $ref: '#/components/schemas/FundingStatus'
          description: Whether the lookup has settled.
    UiTokenHolders:
      type: object
      description: Holder-risk breakdown. Every `*Pct` field is a percent.
      required:
        - count
        - top10Pct
        - devPct
        - sniperPct
        - sniperCount
        - bundlerPct
        - bundlerCount
        - insiderPct
        - insiderCount
        - phishingPct
        - phishingCount
        - freshWalletPct
        - freshWalletCount
        - fomoPct
        - fomoCount
        - proTraderPct
        - proTraderCount
        - fundedByCexPct
      properties:
        bundlerCount:
          type: integer
          format: int64
          description: Bundler wallet count.
          minimum: 0
        bundlerPct:
          $ref: '#/components/schemas/Decimal'
          description: Bundler wallets' share of supply.
        count:
          type: integer
          format: int64
          description: Current holder count.
          minimum: 0
        devPct:
          $ref: '#/components/schemas/Decimal'
          description: Dev wallet's share of supply.
        fomoCount:
          type: integer
          format: int64
          description: fomo.family wallet count.
          minimum: 0
        fomoPct:
          $ref: '#/components/schemas/Decimal'
          description: fomo.family wallets' share of supply.
        freshWalletCount:
          type: integer
          format: int64
          description: Fresh wallet count.
          minimum: 0
        freshWalletPct:
          $ref: '#/components/schemas/Decimal'
          description: Fresh-wallet share of supply.
        fundedByCexPct:
          $ref: '#/components/schemas/Decimal'
          description: >-
            Share of current holders a known exchange funded, 0-100. Counted
            against every holder,

            so a token with funding lookups still in flight reads low rather
            than absent.
        insiderCount:
          type: integer
          format: int64
          description: Insider wallet count.
          minimum: 0
        insiderPct:
          $ref: '#/components/schemas/Decimal'
          description: Insider wallets' share of supply.
        phishingCount:
          type: integer
          format: int64
          description: >-
            Wallets that ever traded this token while carrying a malicious-actor
            label. The count

            never falls, unlike `phishingPct`.
          minimum: 0
        phishingPct:
          $ref: '#/components/schemas/Decimal'
          description: Phishing wallets' share of supply.
        proTraderCount:
          type: integer
          format: int64
          description: Pro-trader wallet count.
          minimum: 0
        proTraderPct:
          $ref: '#/components/schemas/Decimal'
          description: Pro-trader wallets' share of supply.
        sniperCount:
          type: integer
          format: int64
          description: Sniper wallet count.
          minimum: 0
        sniperPct:
          $ref: '#/components/schemas/Decimal'
          description: Sniper wallets' share of supply.
        top10Pct:
          $ref: '#/components/schemas/Decimal'
          description: Share of supply held by the top 10 current holders.
    UiMoney:
      type: object
      description: >-
        A chain-denominated value with its USD equivalent. The enclosing object
        carries the

        `chain` that names `native`'s unit.
      required:
        - native
      properties:
        native:
          $ref: '#/components/schemas/Decimal'
          description: Value in the owning chain's gas asset.
        usd:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/Decimal'
              description: Value in USD; `null` when the native asset is unpriced.
          description: Value in USD; `null` when the native asset is unpriced.
    UiTokenMetadata:
      type: object
      description: Off-chain project metadata; every field nullable.
      required:
        - twitterReuseCount
      properties:
        description:
          type:
            - string
            - 'null'
          description: Project description.
        discord:
          type:
            - string
            - 'null'
          description: Project Discord invite URL.
        telegram:
          type:
            - string
            - 'null'
          description: Project Telegram handle or URL.
        twitter:
          type:
            - string
            - 'null'
          description: Project Twitter/X handle or URL.
        twitterReuseCount:
          type: integer
          format: int64
          description: >-
            How many other tokens have claimed the same Twitter/X account. Above
            zero, the handle

            is recycled, which is the scam signal it exists to carry.
          minimum: 0
        website:
          type:
            - string
            - 'null'
          description: Project website.
    UiPlatform:
      oneOf:
        - type: object
          description: >-
            fomo.family, the terminal that routed the trade. The trader's
            profile is the `fomoscan`

            element of `identities`.
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - fomo
        - type: object
          description: >-
            A token's DexScreener listing; present only while its profile is
            paid.
          required:
            - isPaid
            - platform
          properties:
            isPaid:
              type: boolean
              description: Whether the token's DexScreener profile is paid.
            paidAt:
              oneOf:
                - type: 'null'
                - $ref: '#/components/schemas/UnixMilliseconds'
                  description: Earliest profile payment time.
            platform:
              type: string
              enum:
                - dexScreener
        - type: object
          description: Axiom.
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - axiom
        - type: object
          description: '"Banana Gun".'
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - bananaGun
        - type: object
          description: Bloom.
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - bloom
        - type: object
          description: '"BONKbot".'
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - bonkbot
        - type: object
          description: BtcTurk.
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - btcTurk
        - type: object
          description: BullX.
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - bullX
        - type: object
          description: Click's own router, identified by its fee vault.
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - click
        - type: object
          description: '"GMGN".'
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - gmgn
        - type: object
          description: '"Lucky Block".'
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - luckyBlock
        - type: object
          description: Maestro.
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - maestro
        - type: object
          description: '"Manifold Trading".'
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - manifoldTrading
        - type: object
          description: '"MEVX".'
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - mevx
        - type: object
          description: Mintech.
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - mintech
        - type: object
          description: Nighthawk.
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - nighthawk
        - type: object
          description: Nova.
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - nova
        - type: object
          description: '"OX.FUN".'
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - oxFun
        - type: object
          description: Padre.
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - padre
        - type: object
          description: PepeBoost.
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - pepeBoost
        - type: object
          description: Phantom.
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - phantom
        - type: object
          description: Photon.
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - photon
        - type: object
          description: SexBotSolana.
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - sexBotSolana
        - type: object
          description: Shuriken.
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - shuriken
        - type: object
          description: '"SOL Sniper Bot".'
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - solSniperBot
        - type: object
          description: '"Sol Trading Bot".'
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - solTradingBot
        - type: object
          description: Trojan.
          required:
            - platform
          properties:
            platform:
              type: string
              enum:
                - trojan
      description: >-
        A platform attached to a token, a wallet, or a trade.


        The fieldless variants are trading terminals. Each doc gives the
        producer string its

        variant maps from.
    UiTokenSecurity:
      type: object
      description: >-
        Contract-security flags. Solana reads them on-chain; a contract scan
        reads them on the EVM

        chains.
      required:
        - mintDisabled
        - transferBlockable
        - rugPct
      properties:
        lpBurntPct:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/Decimal'
              description: LP permanently unavailable (burnt + locked), 0-100.
          description: LP permanently unavailable (burnt + locked), 0-100.
        mintDisabled:
          type: boolean
          description: Mint authority revoked.
        rugPct:
          $ref: '#/components/schemas/Decimal'
          description: Share of supply held by wallets scored as rug risks, 0-100.
        transferBlockable:
          type: boolean
          description: Freeze authority present.
        transferFeeBps:
          type:
            - integer
            - 'null'
          format: int32
          description: >-
            Transfer fee the token's own contract charges, in basis points —
            `250` is 2.50%.

            `null` when no source has scored the contract.
          example: 250
          minimum: 0
    UiTokenStats:
      type: object
      description: Trade stats over a trailing window that ends now, not a calendar bucket.
      required:
        - 5m
        - 30m
        - 1h
        - 6h
        - 24h
      properties:
        1h:
          $ref: '#/components/schemas/UiTokenWindowStats'
          description: Trailing 1 hour.
        24h:
          $ref: '#/components/schemas/UiTokenWindowStats'
          description: Trailing 24 hours.
        30m:
          $ref: '#/components/schemas/UiTokenWindowStats'
          description: Trailing 30 minutes.
        5m:
          $ref: '#/components/schemas/UiTokenWindowStats'
          description: Trailing 5 minutes.
        6h:
          $ref: '#/components/schemas/UiTokenWindowStats'
          description: Trailing 6 hours.
    UiTokenTotals:
      type: object
      description: All-time trade volume and fee totals.
      required:
        - volume
        - fees
      properties:
        fees:
          $ref: '#/components/schemas/UiTokenFees'
          description: All-time fee totals by kind.
        volume:
          $ref: '#/components/schemas/UiMoney'
          description: All-time trade volume.
    FundingSourceKind:
      type: string
      description: Whether a known exchange or another wallet funded the creator.
      enum:
        - cex
        - wallet
    FundingStatus:
      type: string
      description: Whether the creator wallet's funding lookup has settled.
      enum:
        - unresolved
        - resolved
    UiTokenWindowStats:
      type: object
      description: Trade activity over one trailing window.
      required:
        - priceChangePct
        - volume
        - buyCount
        - sellCount
        - buyVolume
        - sellVolume
      properties:
        buyCount:
          type: integer
          format: int64
          description: Buy-side trade count.
          minimum: 0
        buyVolume:
          $ref: '#/components/schemas/UiMoney'
          description: Buy-side volume.
        priceChangePct:
          $ref: '#/components/schemas/Decimal'
          description: Price change over the window, percent.
        sellCount:
          type: integer
          format: int64
          description: Sell-side trade count.
          minimum: 0
        sellVolume:
          $ref: '#/components/schemas/UiMoney'
          description: Sell-side volume.
        volume:
          $ref: '#/components/schemas/UiMoney'
          description: Trade volume over the window.
    UiTokenFees:
      type: object
      description: All-time fee totals by kind.
      required:
        - transaction
        - validator
        - platform
      properties:
        dex:
          $ref: '#/components/schemas/UiMoney'
          description: 'Venue fees: what traders paid the pools and launchpads.'
        platform:
          $ref: '#/components/schemas/UiMoney'
          description: Platform fees.
        transaction:
          $ref: '#/components/schemas/UiMoney'
          description: >-
            Transaction fees. On Solana this leg also holds the venue fee for
            trades predating the

            split, so the legs are a mixed basis and must not be summed.
        validator:
          $ref: '#/components/schemas/UiMoney'
          description: Validator fees.
  securitySchemes:
    bearerKey:
      type: http
      scheme: bearer
      description: 'Send the API key as `Authorization: Bearer <key>`.'

````

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