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

# List Pegged Tokens with Depeg Risk

> Returns paginated rows of pegged tokens with score, tier, market data, optional cross-chain rollups (WEB-3554), DEX market entries (WEB-3557), migration lifecycle (WEB-3560), audit provenance (WEB-3561), and score deltas (WEB-3558). Aggregates (`tier_counts`, `total_mcap`, `total_volume_24h`, leaderboards) are computed pre-filter so dashboards show ecosystem-wide context regardless of the active filter. `stale: true` indicates the response is served from the fallback Redis cache during an S3 outage.

**CU cost:** 2 CU per request (`rwa-list`).



## OpenAPI

````yaml GET /rwa
openapi: 3.0.1
info:
  title: Risk Score API
  description: API definition for Webacy Risk Scores
  version: 1.2.0
servers:
  - url: https://api.webacy.com
    description: Webacy Risk Score API (Production)
  - url: https://api-development.webacy.com
    description: Webacy Risk Score API (Development)
  - url: http://0.0.0.0:3030/api/v1/risk-score
    description: Webacy Risk Score API - Local
security:
  - api_key: []
tags:
  - name: Threat Risks
    description: Analyze addresses for security threats and malicious activity
  - name: Sanction Checks
    description: Check addresses against OFAC and other sanction lists
  - name: Approval Risks
    description: Analyze token approvals and associated risks
  - name: Transaction Risks
    description: Assess risk details for blockchain transactions
  - name: Exposure Risk
    description: Understand risk profile and exposure of addresses
  - name: Contract Risk
    description: Real-time smart contract security analysis
  - name: URL Risks
    description: Analyze URLs for phishing and security threats
  - name: API Usage
    description: Monitor and manage API consumption
  - name: Holder Analysis
    description: Token holder distribution and sniper detection
  - name: Address Poisoning
    description: Detect address poisoning attack patterns
  - name: Token Analysis
    description: Comprehensive token security and market analysis
  - name: Pool Analysis
    description: Liquidity pool data and analysis
  - name: Transaction Scanning
    description: Scan and simulate transactions for risks
  - name: trading-lite
    description: Lightweight trading risk assessment
  - name: RWA & Pegged Tokens
    description: >-
      Real-world asset and pegged-token analytics (supply flows, mint/burn
      velocity)
  - name: Vault Risk v3
    description: >-
      Webacy-native v3 vault risk surface — composite grade, categories,
      coverage, and the framework taxonomy (RFC-019).
  - name: RWA Risk v3
    description: >-
      Webacy-native v3 RWA / stablecoin risk surface — composite grade,
      structural-health criteria, and batch (RFC-019).
paths:
  /rwa:
    get:
      tags:
        - RWA & Pegged Tokens
      summary: List pegged tokens with depeg risk data and aggregates
      description: >-
        Returns paginated rows of pegged tokens with score, tier, market data,
        optional cross-chain rollups (WEB-3554), DEX market entries (WEB-3557),
        migration lifecycle (WEB-3560), audit provenance (WEB-3561), and score
        deltas (WEB-3558). Aggregates (`tier_counts`, `total_mcap`,
        `total_volume_24h`, leaderboards) are computed pre-filter so dashboards
        show ecosystem-wide context regardless of the active filter. `stale:
        true` indicates the response is served from the fallback Redis cache
        during an S3 outage.


        **CU cost:** 2 CU per request (`rwa-list`).
      operationId: listRwaTokens
      parameters:
        - name: chain
          in: query
          required: false
          schema:
            type: string
          description: >-
            Filter by short chain code (e.g. `eth`, `arb`, `pol`, `opt`, `base`,
            `bsc`, `sol`).
        - name: denomination
          in: query
          required: false
          schema:
            type: string
          description: Filter by denomination code (e.g. `USD`, `EUR`, `XAU`).
        - name: tier
          in: query
          required: false
          schema:
            type: string
            enum:
              - critical
              - warning
              - watch
              - ok
              - premium
          description: Filter by display tier.
        - name: tags
          in: query
          required: false
          schema:
            type: string
          description: >-
            Comma-separated token labels: `standard`, `yield`, `rwa`, `gold`,
            `bridged`, `vault`.
        - name: minScore
          in: query
          required: false
          schema:
            type: number
            minimum: 0
            maximum: 100
          description: Minimum risk score (0-100).
        - name: maxScore
          in: query
          required: false
          schema:
            type: number
            minimum: 0
            maximum: 100
          description: Maximum risk score (0-100).
        - name: minMcap
          in: query
          required: false
          schema:
            type: number
            minimum: 0
          description: Minimum market cap in USD.
        - name: liquidity
          in: query
          required: false
          schema:
            type: string
            enum:
              - high
              - medium
              - low
              - very_low
          description: Filter by liquidity tier.
        - name: q
          in: query
          required: false
          schema:
            type: string
            maxLength: 100
          description: Substring match on `symbol`, `name`, or `address`.
        - name: sort
          in: query
          required: false
          schema:
            type: string
            enum:
              - score
              - symbol
              - chain
              - tier
              - abs_dev_clean
              - market_cap_usd
              - ts
            default: score
        - name: order
          in: query
          required: false
          schema:
            type: string
            enum:
              - asc
              - desc
            default: desc
        - name: showAll
          in: query
          required: false
          schema:
            type: boolean
            default: false
          description: >-
            When `true`, include excluded/problematic tokens that are normally
            suppressed.
        - name: collapsedOnly
          in: query
          required: false
          schema:
            type: boolean
            default: false
          description: When `true`, return only collapsed/dead tokens (graveyard view).
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            default: 1
        - name: pageSize
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
      responses:
        '200':
          description: >-
            Paginated list of pegged tokens with depeg risk data and ecosystem
            aggregates
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RwaTokenListResponse'
        '400':
          description: Unsupported chain, tier, sort, or order value
        '401':
          $ref: '#/components/responses/UnauthorizedError'
      security:
        - api_key: []
components:
  schemas:
    RwaTokenListResponse:
      type: object
      required:
        - items
        - pagination
        - aggregates
        - tier_counts
        - stale
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/RwaTokenListItem'
        pagination:
          $ref: '#/components/schemas/RwaPagination'
        aggregates:
          $ref: '#/components/schemas/RwaAggregates'
        tier_counts:
          type: object
          description: Post-filter tier counts (after query filters, before pagination).
          required:
            - critical
            - warning
            - watch
            - ok
          properties:
            critical:
              type: integer
              minimum: 0
            warning:
              type: integer
              minimum: 0
            watch:
              type: integer
              minimum: 0
            ok:
              type: integer
              minimum: 0
        stale:
          type: boolean
          description: >-
            true when the snapshot is served from the fallback cache during an
            S3 outage.
    RwaTokenListItem:
      type: object
      description: >-
        Single token row in the paginated list response, combining S3 pipeline
        data with DB identity. Most numeric fields are nullable to reflect
        partial pipeline coverage.
      required:
        - address
        - chain
        - symbol
        - name
        - assetType
        - denomination
        - ts
        - score
        - tier
        - drivers
        - price
        - peg_value
        - abs_dev_clean
        - reference_price
        - within_expected_range
        - token_type
        - token_labels
        - peg_range
        - is_collapsed
        - rwa_nav_usd
        - rwa_classification
        - rwa_nav_as_of
        - market_cap_usd
        - total_market_cap_usd
        - market_cap_by_chain
        - circulating_supply
        - total_supply_on_chain
        - total_supply_cross_chain
        - fdv_usd
        - volume_24h
        - volume_24h_usd
        - dex_volume_24h_usd
        - volume_mcap_ratio
        - markets
        - migration
        - project_info
        - score_delta_24h
        - score_delta_7d
        - liquidity_tier
        - slippage_bps_100k
        - liquidity_available_100k
        - liquidity_decay_pct
        - liquidity_decay_flag
        - volume_60m
        - volatility_burst
        - volatility_ratio
        - max_drawdown_5m
        - mins_over_50bp_60m
        - mins_over_100bp_60m
        - streak_over_50bp_min
        - streak_over_100bp_min
        - chain_spread_5m
        - chain_spread_60m
        - price_source_deviation
        - volume_z_5m
        - volume_z_60m
        - oracle_price
        - oracle_deviation_bps
        - oracle_deviation_flag
        - risk
      properties:
        address:
          type: string
        chain:
          type: string
        symbol:
          type: string
        name:
          type: string
          nullable: true
        assetType:
          type: string
        denomination:
          $ref: '#/components/schemas/RwaDenominationSummary'
        ts:
          type: string
          format: date-time
          nullable: true
        score:
          type: number
          nullable: true
        tier:
          $ref: '#/components/schemas/RwaRiskTier'
        drivers:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/RwaScoreDriver'
        price:
          type: number
          nullable: true
        peg_value:
          type: number
          nullable: true
        abs_dev_clean:
          type: number
          nullable: true
        reference_price:
          type: number
          nullable: true
        within_expected_range:
          type: boolean
          nullable: true
        token_type:
          $ref: '#/components/schemas/RwaTokenType'
        token_labels:
          type: array
          items:
            type: string
        peg_range:
          type: array
          nullable: true
          description: '[min, max] tuple.'
          items:
            type: number
          minItems: 2
          maxItems: 2
        is_collapsed:
          type: boolean
        rwa_nav_usd:
          type: number
          nullable: true
        rwa_classification:
          $ref: '#/components/schemas/RwaClassification'
        rwa_nav_as_of:
          type: string
          nullable: true
        market_cap_usd:
          type: number
          nullable: true
          description: >-
            Single-chain market cap (this token's chain only). Use
            `total_market_cap_usd` for the cross-chain rollup — that's the
            headline number for multi-chain tokens like USDC.
        total_market_cap_usd:
          type: number
          nullable: true
          description: >-
            Cross-chain market cap rollup across every chain the token is
            deployed on (WEB-3554). Headline mcap for multi-chain tokens; may
            exceed `market_cap_usd`.
        market_cap_by_chain:
          type: object
          nullable: true
          description: >-
            Per-chain market cap breakdown keyed by short chain code (WEB-3554).
            `null` when no per-chain data is available.
          additionalProperties:
            type: number
            format: double
        circulating_supply:
          type: number
          nullable: true
          description: >-
            Circulating supply — producer-derived from mcap/price (WEB-3555).
            See `total_supply_*` for the breakdown.
        total_supply_on_chain:
          type: number
          nullable: true
          description: >-
            On-chain supply on this token's chain only (WEB-3555). Use
            `total_supply_cross_chain` for the cross-chain total.
        total_supply_cross_chain:
          type: number
          nullable: true
          description: >-
            Cross-chain aggregated supply across every chain the token is
            deployed on (WEB-3555). Headline supply for multi-chain tokens.
        fdv_usd:
          type: number
          nullable: true
          description: Fully-diluted valuation in USD (WEB-3555).
        volume_24h:
          type: number
          nullable: true
          deprecated: true
          description: >-
            Deprecated. Use `volume_24h_usd` (WEB-3559); `volume_24h` is the
            legacy alias kept only while consumers migrate.
        volume_24h_usd:
          type: number
          nullable: true
          description: Canonical 24h volume in USD (WEB-3559).
        dex_volume_24h_usd:
          type: number
          nullable: true
          description: 24h DEX-only volume in USD (WEB-3559).
        volume_mcap_ratio:
          type: number
          nullable: true
        markets:
          type: array
          nullable: true
          description: >-
            DEX market entries surfaced by the producer (WEB-3557). `null` =
            outside the top-N liquidity scope (not computed); `[]` = in scope
            but no DEX markets found; populated = real entries.
          items:
            $ref: '#/components/schemas/RwaMarket'
        migration:
          $ref: '#/components/schemas/RwaMigration'
        project_info:
          $ref: '#/components/schemas/RwaProjectInfo'
        score_delta_24h:
          type: number
          nullable: true
          description: Score change over the trailing 24h (WEB-3558).
        score_delta_7d:
          type: number
          nullable: true
          description: Score change over the trailing 7d (WEB-3558).
        liquidity_tier:
          $ref: '#/components/schemas/RwaLiquidityTier'
        slippage_bps_100k:
          type: number
          nullable: true
        liquidity_available_100k:
          type: boolean
          nullable: true
        liquidity_decay_pct:
          type: number
          nullable: true
        liquidity_decay_flag:
          type: boolean
          nullable: true
        volume_60m:
          type: number
          nullable: true
        volatility_burst:
          type: boolean
          nullable: true
        volatility_ratio:
          type: number
          nullable: true
        max_drawdown_5m:
          type: number
          nullable: true
        mins_over_50bp_60m:
          type: number
          nullable: true
        mins_over_100bp_60m:
          type: number
          nullable: true
        streak_over_50bp_min:
          type: number
          nullable: true
        streak_over_100bp_min:
          type: number
          nullable: true
        chain_spread_5m:
          type: number
          nullable: true
        chain_spread_60m:
          type: number
          nullable: true
        price_source_deviation:
          type: number
          nullable: true
        volume_z_5m:
          type: number
          nullable: true
        volume_z_60m:
          type: number
          nullable: true
        oracle_price:
          type: number
          nullable: true
        oracle_deviation_bps:
          type: number
          nullable: true
        oracle_deviation_flag:
          type: boolean
          nullable: true
        risk:
          type: object
          nullable: true
          description: Standard risk response (same shape as token/pool risk endpoints).
          additionalProperties: true
    RwaPagination:
      type: object
      required:
        - total
        - page
        - pageSize
        - totalPages
      properties:
        total:
          type: integer
          minimum: 0
        page:
          type: integer
          minimum: 1
        pageSize:
          type: integer
          minimum: 1
          maximum: 500
        totalPages:
          type: integer
          minimum: 0
    RwaAggregates:
      type: object
      description: >-
        Ecosystem-wide aggregates computed before filters (RFC-006 Decision
        #24).
      required:
        - generated_at
        - tier_counts
        - total_mcap
        - total_volume_24h
        - at_peg_count
        - at_peg_total
        - stability_index
        - biggest_depegs
        - highest_risk
        - most_stable
      properties:
        generated_at:
          type: string
          nullable: true
        tier_counts:
          type: object
          required:
            - critical
            - warning
            - watch
            - ok
          properties:
            critical:
              type: integer
              minimum: 0
            warning:
              type: integer
              minimum: 0
            watch:
              type: integer
              minimum: 0
            ok:
              type: integer
              minimum: 0
        total_mcap:
          type: number
        total_volume_24h:
          type: number
        at_peg_count:
          type: integer
        at_peg_total:
          type: integer
        stability_index:
          type: number
        biggest_depegs:
          type: array
          items:
            $ref: '#/components/schemas/RwaDepegSummary'
        highest_risk:
          type: array
          items:
            $ref: '#/components/schemas/RwaRiskSummary'
        most_stable:
          type: array
          items:
            $ref: '#/components/schemas/RwaRiskSummary'
    RwaDenominationSummary:
      type: object
      description: Denomination context for a pegged token (e.g. USD, EUR, XAU).
      nullable: true
      required:
        - code
        - name
        - category
        - pegRatio
        - pegType
      properties:
        code:
          type: string
        name:
          type: string
        category:
          type: string
          description: e.g. fiat, commodity, crypto, index
        pegRatio:
          type: string
        pegType:
          type: string
    RwaRiskTier:
      type: string
      description: >-
        Base risk tier from the depeg pipeline. `premium` is an API-layer
        override added when a token trades above its peg.
      enum:
        - critical
        - warning
        - watch
        - ok
        - premium
    RwaScoreDriver:
      type: object
      description: A single component of the 12-factor depeg risk score decomposition.
      required:
        - name
        - raw
        - normalized
        - weight
        - contribution
      properties:
        name:
          type: string
        raw:
          oneOf:
            - type: number
              nullable: true
            - type: string
              nullable: true
            - type: boolean
              nullable: true
        normalized:
          type: number
          nullable: true
        weight:
          type: number
        contribution:
          type: number
          nullable: true
    RwaTokenType:
      type: string
      description: Pipeline-assigned token sub-classification.
      enum:
        - standard
        - yield
        - rwa
        - gold
        - bridged
        - vault
      nullable: true
    RwaClassification:
      type: string
      description: >-
        Producer-assigned RWA category when a token is classified as a
        NAV-pegged real-world asset.
      enum:
        - tbill
        - money_market
        - tokenized_fund
      nullable: true
    RwaMarket:
      type: object
      description: >-
        A single DEX market entry surfaced by the producer (WEB-3557). The
        producer emits the top-N pools by liquidity per token.
      required:
        - dex
        - pair
        - pool_address
        - chain
        - liquidity_usd
        - volume_24h_usd
      properties:
        dex:
          type: string
          description: DEX identifier, e.g. `curve`, `uniswap`.
        pair:
          type: string
          description: Trading pair label, e.g. `DAI/USDT`.
        pool_address:
          type: string
          nullable: true
        chain:
          type: string
          description: Short chain code, e.g. `eth`.
        liquidity_usd:
          type: number
          format: double
        volume_24h_usd:
          type: number
          format: double
    RwaMigration:
      type: object
      description: >-
        Migration lifecycle grouping for a token (WEB-3560). `null` at the
        parent level means the producer has emitted no migration data at all; a
        non-null object means at least one migration field is available, with
        each leaf independently nullable.
      nullable: true
      required:
        - status
        - target_symbol
        - target_address
        - ratio
        - notes
      properties:
        status:
          $ref: '#/components/schemas/RwaMigrationStatus'
        target_symbol:
          type: string
          nullable: true
        target_address:
          type: string
          nullable: true
        ratio:
          type: number
          nullable: true
        notes:
          type: string
          nullable: true
    RwaProjectInfo:
      type: object
      description: >-
        Issuer / audit provenance sourced from `stablecoin_audit_lookup.json`
        (WEB-3561). All leaf fields are independently nullable except
        `audit_firms` / `audit_report_urls`, which are always-arrays (empty =
        checked, none found).
      nullable: true
      required:
        - issuer
        - audit_count
        - audit_firms
        - auditor_tier
        - last_audit_date
        - audit_report_urls
        - notes
      properties:
        issuer:
          type: string
          nullable: true
        audit_count:
          type: integer
          nullable: true
        audit_firms:
          type: array
          items:
            type: string
        auditor_tier:
          $ref: '#/components/schemas/RwaAuditorTier'
        last_audit_date:
          type: string
          nullable: true
          description: '`YYYY-MM` form.'
        audit_report_urls:
          type: array
          items:
            type: string
        notes:
          type: string
          nullable: true
    RwaLiquidityTier:
      type: string
      description: Liquidity tier based on 60-minute DEX volume thresholds.
      enum:
        - high
        - medium
        - low
        - very_low
      nullable: true
    RwaDepegSummary:
      type: object
      required:
        - symbol
        - chain
        - address
        - price
        - peg_value
        - abs_dev_clean
        - score
        - tier
      properties:
        symbol:
          type: string
        chain:
          type: string
        address:
          type: string
        price:
          type: number
          nullable: true
        peg_value:
          type: number
          nullable: true
        abs_dev_clean:
          type: number
        score:
          type: number
        tier:
          type: string
          enum:
            - critical
            - warning
            - watch
            - ok
    RwaRiskSummary:
      type: object
      required:
        - symbol
        - chain
        - address
        - score
        - tier
        - market_cap_usd
      properties:
        symbol:
          type: string
        chain:
          type: string
        address:
          type: string
        score:
          type: number
        tier:
          type: string
          enum:
            - critical
            - warning
            - watch
            - ok
        market_cap_usd:
          type: number
          nullable: true
    RwaMigrationStatus:
      type: string
      description: >-
        Token migration lifecycle status from the producer (WEB-3560). `null` =
        producer has not yet classified this token.
      enum:
        - active
        - migrating
        - deprecated
      nullable: true
    RwaAuditorTier:
      type: string
      description: >-
        Auditor quality tier, normalised to the canonical API vocabulary. Same
        vocabulary as `/rwa/grades`.
      enum:
        - top
        - mid
        - low
        - basic
      nullable: true
  responses:
    UnauthorizedError:
      description: Authorization information is missing or invalid
      content:
        application/json:
          example:
            message: Unauthorized
  securitySchemes:
    api_key:
      type: apiKey
      in: header
      name: x-api-key

````