openapi: 3.1.0
paths:
  /api/v1/catalog/assets:
    get:
      operationId: CatalogController_listAssets_v1
      parameters:
        - name: cursor
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 512
        - name: limit
          required: false
          in: query
          schema:
            default: 24
            type: integer
            minimum: 1
            maximum: 100
        - name: category
          required: false
          in: query
          schema:
            type: string
            enum:
              - infrastructure
              - payment
              - real-world-asset
              - utility
        - name: featured
          required: false
          in: query
          schema:
            type: boolean
        - name: q
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 100
        - name: sort
          required: false
          in: query
          schema:
            default: featured
            type: string
            enum:
              - featured
              - market-cap
              - name
        - name: status
          required: false
          in: query
          schema:
            type: string
            enum:
              - active
              - paused
              - upcoming
        - name: tradable
          required: false
          in: query
          schema:
            type: boolean
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Public asset catalog.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        accentColor:
                          type: string
                        category:
                          type: string
                          enum:
                            - infrastructure
                            - payment
                            - real-world-asset
                            - utility
                        description:
                          type: string
                        displayDecimals:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                        iconText:
                          type: string
                        id:
                          type: string
                        instrumentId:
                          type: object
                          properties:
                            admin:
                              type: string
                            id:
                              type: string
                          required:
                            - admin
                            - id
                          additionalProperties: false
                        isFeatured:
                          type: boolean
                        isTradable:
                          type: boolean
                        ledgerDecimalScale:
                          type: number
                          const: 10
                        marketCapUsd:
                          type: string
                        name:
                          type: string
                        priceChange24hPct:
                          type: string
                        priceUsd:
                          type: string
                        slug:
                          type: string
                        status:
                          type: string
                          enum:
                            - active
                            - paused
                            - upcoming
                        symbol:
                          type: string
                        tokenStandard:
                          type: object
                          properties:
                            capabilities:
                              type: object
                              properties:
                                allocations:
                                  type: boolean
                                holdings:
                                  type: boolean
                                metadata:
                                  type: boolean
                                transfers:
                                  type: boolean
                              required:
                                - allocations
                                - holdings
                                - metadata
                                - transfers
                              additionalProperties: false
                            name:
                              type: string
                              const: CIP-0056
                            version:
                              type: string
                              const: v1
                          required:
                            - capabilities
                            - name
                            - version
                          additionalProperties: false
                        totalSupply:
                          type: string
                      required:
                        - accentColor
                        - category
                        - description
                        - displayDecimals
                        - iconText
                        - id
                        - instrumentId
                        - isFeatured
                        - isTradable
                        - ledgerDecimalScale
                        - marketCapUsd
                        - name
                        - priceChange24hPct
                        - priceUsd
                        - slug
                        - status
                        - symbol
                        - tokenStandard
                        - totalSupply
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      provenance:
                        type: object
                        properties:
                          asOf:
                            type: string
                          dataMode:
                            type: string
                            enum:
                              - projected
                              - simulated
                          disclaimer:
                            type: string
                          label:
                            type: string
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                        required:
                          - asOf
                          - dataMode
                          - disclaimer
                          - label
                          - networkId
                        additionalProperties: false
                      schemaVersion:
                        type: string
                        const: '1'
                    required:
                      - provenance
                      - schemaVersion
                    additionalProperties: false
                  page:
                    type: object
                    properties:
                      hasMore:
                        type: boolean
                      limit:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      nextCursor:
                        type:
                          - string
                          - 'null'
                      total:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                    required:
                      - hasMore
                      - limit
                      - nextCursor
                      - total
                    additionalProperties: false
                required:
                  - items
                  - meta
                  - page
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: 'Invalid filters or pagination cursor. Also: `VALIDATION_FAILED`.'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `CATALOG_PROJECTION_NOT_CONFIGURED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security: []
      summary: List curated public assets.
      tags:
        - catalog
  /api/v1/catalog/markets:
    get:
      operationId: CatalogController_listMarkets_v1
      parameters:
        - name: cursor
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 512
        - name: limit
          required: false
          in: query
          schema:
            default: 24
            type: integer
            minimum: 1
            maximum: 100
        - name: baseAssetId
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 100
            pattern: ^[a-z0-9][a-z0-9_-]*$
        - name: featured
          required: false
          in: query
          schema:
            type: boolean
        - name: q
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 100
        - name: quoteAssetId
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 100
            pattern: ^[a-z0-9][a-z0-9_-]*$
        - name: sort
          required: false
          in: query
          schema:
            default: volume
            type: string
            enum:
              - name
              - price-change
              - volume
        - name: status
          required: false
          in: query
          schema:
            type: string
            enum:
              - active
              - paused
              - upcoming
        - name: venueType
          required: false
          in: query
          schema:
            type: string
            enum:
              - amm
              - bonding-curve
              - order-book
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Public market catalog.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        baseAsset:
                          type: object
                          properties:
                            id:
                              type: string
                            instrumentId:
                              type: object
                              properties:
                                admin:
                                  type: string
                                id:
                                  type: string
                              required:
                                - admin
                                - id
                              additionalProperties: false
                            name:
                              type: string
                            symbol:
                              type: string
                          required:
                            - id
                            - instrumentId
                            - name
                            - symbol
                          additionalProperties: false
                        baseVolume24h:
                          type: string
                        feeRatePct:
                          type: string
                        high24h:
                          type: string
                        id:
                          type: string
                        isFeatured:
                          type: boolean
                        lastPrice:
                          type: string
                        liquidityQuote:
                          type: string
                        low24h:
                          type: string
                        priceChange24hPct:
                          type: string
                        quoteAsset:
                          type: object
                          properties:
                            id:
                              type: string
                            instrumentId:
                              type: object
                              properties:
                                admin:
                                  type: string
                                id:
                                  type: string
                              required:
                                - admin
                                - id
                              additionalProperties: false
                            name:
                              type: string
                            symbol:
                              type: string
                          required:
                            - id
                            - instrumentId
                            - name
                            - symbol
                          additionalProperties: false
                        quoteVolume24h:
                          type: string
                        settlement:
                          type: string
                          const: atomic-dvp
                        slug:
                          type: string
                        status:
                          type: string
                          enum:
                            - active
                            - paused
                            - upcoming
                        updatedAt:
                          type: string
                        venue:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                            type:
                              type: string
                              enum:
                                - amm
                                - bonding-curve
                                - order-book
                          required:
                            - id
                            - name
                            - type
                          additionalProperties: false
                      required:
                        - baseAsset
                        - baseVolume24h
                        - feeRatePct
                        - high24h
                        - id
                        - isFeatured
                        - lastPrice
                        - liquidityQuote
                        - low24h
                        - priceChange24hPct
                        - quoteAsset
                        - quoteVolume24h
                        - settlement
                        - slug
                        - status
                        - updatedAt
                        - venue
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      provenance:
                        type: object
                        properties:
                          asOf:
                            type: string
                          dataMode:
                            type: string
                            enum:
                              - projected
                              - simulated
                          disclaimer:
                            type: string
                          label:
                            type: string
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                        required:
                          - asOf
                          - dataMode
                          - disclaimer
                          - label
                          - networkId
                        additionalProperties: false
                      schemaVersion:
                        type: string
                        const: '1'
                    required:
                      - provenance
                      - schemaVersion
                    additionalProperties: false
                  page:
                    type: object
                    properties:
                      hasMore:
                        type: boolean
                      limit:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      nextCursor:
                        type:
                          - string
                          - 'null'
                      total:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                    required:
                      - hasMore
                      - limit
                      - nextCursor
                      - total
                    additionalProperties: false
                required:
                  - items
                  - meta
                  - page
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: 'Invalid filters or pagination cursor. Also: `VALIDATION_FAILED`.'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `CATALOG_PROJECTION_NOT_CONFIGURED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security: []
      summary: List curated public markets.
      tags:
        - catalog
  /api/v1/catalog/launches:
    get:
      operationId: CatalogController_listLaunches_v1
      parameters:
        - name: cursor
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 512
        - name: limit
          required: false
          in: query
          schema:
            default: 24
            type: integer
            minimum: 1
            maximum: 100
        - name: category
          required: false
          in: query
          schema:
            type: string
            enum:
              - climate
              - consumer
              - infrastructure
              - rwa
        - name: featured
          required: false
          in: query
          schema:
            type: boolean
        - name: q
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 100
        - name: sort
          required: false
          in: query
          schema:
            default: featured
            type: string
            enum:
              - closing-soon
              - featured
              - newest
              - progress
        - name: status
          required: false
          in: query
          schema:
            type: string
            enum:
              - ended
              - graduated
              - live
              - upcoming
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Public launch catalog.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        category:
                          type: string
                          enum:
                            - climate
                            - consumer
                            - infrastructure
                            - rwa
                        closesAt:
                          type: string
                        id:
                          type: string
                        isFeatured:
                          type: boolean
                        name:
                          type: string
                        offeredAsset:
                          type: object
                          properties:
                            id:
                              type: string
                            instrumentId:
                              type: object
                              properties:
                                admin:
                                  type: string
                                id:
                                  type: string
                              required:
                                - admin
                                - id
                              additionalProperties: false
                            name:
                              type: string
                            symbol:
                              type: string
                          required:
                            - id
                            - instrumentId
                            - name
                            - symbol
                          additionalProperties: false
                        opensAt:
                          type: string
                        sale:
                          type: object
                          properties:
                            allocationAmount:
                              type: string
                            hardCap:
                              type: string
                            maxContribution:
                              type: string
                            minContribution:
                              type: string
                            paymentAsset:
                              type: object
                              properties:
                                id:
                                  type: string
                                instrumentId:
                                  type: object
                                  properties:
                                    admin:
                                      type: string
                                    id:
                                      type: string
                                  required:
                                    - admin
                                    - id
                                  additionalProperties: false
                                name:
                                  type: string
                                symbol:
                                  type: string
                              required:
                                - id
                                - instrumentId
                                - name
                                - symbol
                              additionalProperties: false
                            pricePerToken:
                              type: string
                            softCap:
                              type: string
                          required:
                            - allocationAmount
                            - hardCap
                            - maxContribution
                            - minContribution
                            - paymentAsset
                            - pricePerToken
                            - softCap
                          additionalProperties: false
                        slug:
                          type: string
                        stats:
                          type: object
                          properties:
                            participantCount:
                              type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                            progressPct:
                              type: string
                            raisedAmount:
                              type: string
                          required:
                            - participantCount
                            - progressPct
                            - raisedAmount
                          additionalProperties: false
                        status:
                          type: string
                          enum:
                            - ended
                            - graduated
                            - live
                            - upcoming
                        summary:
                          type: string
                        theme:
                          type: object
                          properties:
                            accentColor:
                              type: string
                            iconText:
                              type: string
                          required:
                            - accentColor
                            - iconText
                          additionalProperties: false
                      required:
                        - category
                        - closesAt
                        - id
                        - isFeatured
                        - name
                        - offeredAsset
                        - opensAt
                        - sale
                        - slug
                        - stats
                        - status
                        - summary
                        - theme
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      provenance:
                        type: object
                        properties:
                          asOf:
                            type: string
                          dataMode:
                            type: string
                            enum:
                              - projected
                              - simulated
                          disclaimer:
                            type: string
                          label:
                            type: string
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                        required:
                          - asOf
                          - dataMode
                          - disclaimer
                          - label
                          - networkId
                        additionalProperties: false
                      schemaVersion:
                        type: string
                        const: '1'
                    required:
                      - provenance
                      - schemaVersion
                    additionalProperties: false
                  page:
                    type: object
                    properties:
                      hasMore:
                        type: boolean
                      limit:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      nextCursor:
                        type:
                          - string
                          - 'null'
                      total:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                    required:
                      - hasMore
                      - limit
                      - nextCursor
                      - total
                    additionalProperties: false
                required:
                  - items
                  - meta
                  - page
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: 'Invalid filters or pagination cursor. Also: `VALIDATION_FAILED`.'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `CATALOG_PROJECTION_NOT_CONFIGURED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security: []
      summary: List public Supanova launches.
      tags:
        - catalog
  /api/v1/catalog/launches/{launchReference}:
    get:
      operationId: CatalogController_getLaunch_v1
      parameters:
        - name: launchReference
          required: true
          in: path
          schema:
            type: string
            minLength: 1
            maxLength: 100
            pattern: ^[a-z0-9][a-z0-9_-]*$
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Public launch detail.
          content:
            application/json:
              schema:
                type: object
                properties:
                  item:
                    type: object
                    properties:
                      category:
                        type: string
                        enum:
                          - climate
                          - consumer
                          - infrastructure
                          - rwa
                      closesAt:
                        type: string
                      id:
                        type: string
                      isFeatured:
                        type: boolean
                      name:
                        type: string
                      offeredAsset:
                        type: object
                        properties:
                          id:
                            type: string
                          instrumentId:
                            type: object
                            properties:
                              admin:
                                type: string
                              id:
                                type: string
                            required:
                              - admin
                              - id
                            additionalProperties: false
                          name:
                            type: string
                          symbol:
                            type: string
                        required:
                          - id
                          - instrumentId
                          - name
                          - symbol
                        additionalProperties: false
                      opensAt:
                        type: string
                      sale:
                        type: object
                        properties:
                          allocationAmount:
                            type: string
                          hardCap:
                            type: string
                          maxContribution:
                            type: string
                          minContribution:
                            type: string
                          paymentAsset:
                            type: object
                            properties:
                              id:
                                type: string
                              instrumentId:
                                type: object
                                properties:
                                  admin:
                                    type: string
                                  id:
                                    type: string
                                required:
                                  - admin
                                  - id
                                additionalProperties: false
                              name:
                                type: string
                              symbol:
                                type: string
                            required:
                              - id
                              - instrumentId
                              - name
                              - symbol
                            additionalProperties: false
                          pricePerToken:
                            type: string
                          softCap:
                            type: string
                        required:
                          - allocationAmount
                          - hardCap
                          - maxContribution
                          - minContribution
                          - paymentAsset
                          - pricePerToken
                          - softCap
                        additionalProperties: false
                      slug:
                        type: string
                      stats:
                        type: object
                        properties:
                          participantCount:
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          progressPct:
                            type: string
                          raisedAmount:
                            type: string
                        required:
                          - participantCount
                          - progressPct
                          - raisedAmount
                        additionalProperties: false
                      status:
                        type: string
                        enum:
                          - ended
                          - graduated
                          - live
                          - upcoming
                      summary:
                        type: string
                      theme:
                        type: object
                        properties:
                          accentColor:
                            type: string
                          iconText:
                            type: string
                        required:
                          - accentColor
                          - iconText
                        additionalProperties: false
                      disclosure:
                        type: string
                      longDescription:
                        type: string
                      milestones:
                        type: array
                        items:
                          type: object
                          properties:
                            date:
                              type: string
                            label:
                              type: string
                            status:
                              type: string
                              enum:
                                - complete
                                - planned
                          required:
                            - date
                            - label
                            - status
                          additionalProperties: false
                      tokenAllocations:
                        type: array
                        items:
                          type: object
                          properties:
                            label:
                              type: string
                            percentage:
                              type: string
                            vesting:
                              type: string
                          required:
                            - label
                            - percentage
                            - vesting
                          additionalProperties: false
                    required:
                      - category
                      - closesAt
                      - id
                      - isFeatured
                      - name
                      - offeredAsset
                      - opensAt
                      - sale
                      - slug
                      - stats
                      - status
                      - summary
                      - theme
                      - disclosure
                      - longDescription
                      - milestones
                      - tokenAllocations
                    additionalProperties: false
                  meta:
                    type: object
                    properties:
                      provenance:
                        type: object
                        properties:
                          asOf:
                            type: string
                          dataMode:
                            type: string
                            enum:
                              - projected
                              - simulated
                          disclaimer:
                            type: string
                          label:
                            type: string
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                        required:
                          - asOf
                          - dataMode
                          - disclaimer
                          - label
                          - networkId
                        additionalProperties: false
                      schemaVersion:
                        type: string
                        const: '1'
                    required:
                      - provenance
                      - schemaVersion
                    additionalProperties: false
                required:
                  - item
                  - meta
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: 'Invalid launch reference. Also: `VALIDATION_FAILED`.'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: Launch not found.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `CATALOG_PROJECTION_NOT_CONFIGURED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security: []
      summary: Get one public launch by stable ID or slug.
      tags:
        - catalog
  /api/v1/app-config:
    get:
      operationId: AppConfigController_getConfig_v1
      parameters:
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Only public, non-secret configuration.
          content:
            application/json:
              schema:
                type: object
                properties:
                  apiVersion:
                    type: string
                    const: v1
                  appStage:
                    type: string
                    enum:
                      - local
                      - preview
                      - devnet
                      - mainnet
                  auth:
                    type: object
                    properties:
                      customerProviders:
                        type: array
                        items:
                          type: string
                          enum:
                            - mock
                            - privy
                            - supabase
                      transport:
                        type: string
                        const: bearer
                      workforceProvider:
                        type: string
                        const: supabase
                    required:
                      - customerProviders
                      - transport
                      - workforceProvider
                    additionalProperties: false
                  capabilities:
                    type: object
                    properties:
                      accountClosure:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      activity:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      cantonExecution:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      creatorProjection:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      customAvatarUpload:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      dappBridge:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      depositInstructions:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      depositInitiation:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      issuerDocuments:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      favoritesSync:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      launchApplications:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      launchCreation:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      launchParticipation:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      launchMedia:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      marketData:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      marketStreaming:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      marketingEmail:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      missionControl:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      novaAirdrop:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      novaWaitlist:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      operations:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      pendingTransfers:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      personalTradeHistory:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      pointsLeaderboard:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      pointsProgram:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      portfolioValuation:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      productAnalytics:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      portfolio:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      referenceRates:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      referrals:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      restrictedVault:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      support:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      supportCases:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      swaps:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      transactionDetails:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      transferPreapprovals:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      transfers:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      transactionalEmail:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      usdcxRouting:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                      walletVerification:
                        type: object
                        properties:
                          dataMode:
                            type: string
                            enum:
                              - none
                              - projected
                              - simulated
                          reasonCode:
                            type:
                              - string
                              - 'null'
                          status:
                            type: string
                            enum:
                              - blocked
                              - disabled
                              - preview
                              - ready
                        required:
                          - dataMode
                          - reasonCode
                          - status
                        additionalProperties: false
                    required:
                      - accountClosure
                      - activity
                      - cantonExecution
                      - creatorProjection
                      - customAvatarUpload
                      - dappBridge
                      - depositInstructions
                      - depositInitiation
                      - issuerDocuments
                      - favoritesSync
                      - launchApplications
                      - launchCreation
                      - launchParticipation
                      - launchMedia
                      - marketData
                      - marketStreaming
                      - marketingEmail
                      - missionControl
                      - novaAirdrop
                      - novaWaitlist
                      - operations
                      - pendingTransfers
                      - personalTradeHistory
                      - pointsLeaderboard
                      - pointsProgram
                      - portfolioValuation
                      - productAnalytics
                      - portfolio
                      - referenceRates
                      - referrals
                      - restrictedVault
                      - support
                      - supportCases
                      - swaps
                      - transactionDetails
                      - transferPreapprovals
                      - transfers
                      - transactionalEmail
                      - usdcxRouting
                      - walletVerification
                    additionalProperties: false
                  cantonNetworkId:
                    type: string
                  contractVersion:
                    type: string
                    const: 2026-08-17.2
                  features:
                    type: object
                    properties:
                      activity:
                        type: boolean
                      adminPreview:
                        type: boolean
                      cantonMock:
                        type: boolean
                      catalog:
                        type: boolean
                      launchCreation:
                        type: boolean
                      launchApplications:
                        type: boolean
                      launchMarket:
                        type: boolean
                      launchMedia:
                        type: boolean
                      novaWaitlist:
                        type: boolean
                      launchParticipation:
                        type: boolean
                      portfolio:
                        type: boolean
                      swaps:
                        type: boolean
                      transfers:
                        type: boolean
                    required:
                      - activity
                      - adminPreview
                      - cantonMock
                      - catalog
                      - launchCreation
                      - launchApplications
                      - launchMarket
                      - launchMedia
                      - novaWaitlist
                      - launchParticipation
                      - portfolio
                      - swaps
                      - transfers
                    additionalProperties: false
                  productLegal:
                    type: object
                    properties:
                      documents:
                        type: array
                        minItems: 3
                        maxItems: 3
                        prefixItems:
                          - type: object
                            properties:
                              action:
                                type: string
                                const: agree
                              digest:
                                type: string
                                const: >-
                                  sha256:ae3001c9110291ba6d97fe27343218a23ec93427ac7f7654e45e77b3fe08523d
                              slug:
                                type: string
                                const: terms
                            required:
                              - action
                              - digest
                              - slug
                            additionalProperties: false
                          - type: object
                            properties:
                              action:
                                type: string
                                const: acknowledge
                              digest:
                                type: string
                                const: >-
                                  sha256:5cdce14744e77bd382a30b10469918d64b556c62af995ab1c84601304446ab5f
                              slug:
                                type: string
                                const: privacy
                            required:
                              - action
                              - digest
                              - slug
                            additionalProperties: false
                          - type: object
                            properties:
                              action:
                                type: string
                                const: acknowledge
                              digest:
                                type: string
                                const: >-
                                  sha256:3d54b4c54d38211c9cb5b5789e97607bd7c49157f7cff5928d2e348c66d04c84
                              slug:
                                type: string
                                const: risk
                            required:
                              - action
                              - digest
                              - slug
                            additionalProperties: false
                      effectiveAt:
                        type: string
                        const: '2026-08-04T00:00:00.000Z'
                      id:
                        type: string
                        const: supanova-product-access-legal
                      legalApproval:
                        type: string
                        const: required-before-connected-release
                      reacceptance:
                        type: string
                        const: material-version-only
                      setDigest:
                        type: string
                        const: >-
                          sha256:b07f64b9f408addf88588d529535451f0421aadaecc665a5e461406597ce77b2
                      updatedAt:
                        type: string
                        const: '2026-08-12T00:00:00.000Z'
                      version:
                        type: string
                        const: '1'
                    required:
                      - documents
                      - effectiveAt
                      - id
                      - legalApproval
                      - reacceptance
                      - setDigest
                      - updatedAt
                      - version
                    additionalProperties: false
                  release:
                    anyOf:
                      - type: string
                        const: development
                      - type: string
                        pattern: ^(?:[0-9a-f]{40}|[0-9a-f]{64}|sha256:[0-9a-f]{64})$
                  service:
                    type: string
                    const: supanova-superapp-backend
                required:
                  - apiVersion
                  - appStage
                  - auth
                  - capabilities
                  - cantonNetworkId
                  - contractVersion
                  - features
                  - productLegal
                  - release
                  - service
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '429':
          $ref: '#/components/responses/RateLimited'
        default:
          $ref: '#/components/responses/ApiError'
      security: []
      summary: Return the safe runtime and feature configuration for the frontend.
      tags:
        - configuration
  /api/v1/me/created-launches:
    get:
      operationId: CreatorController_createdLaunches_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Owned creator launch projection.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    maxItems: 1000
                    type: array
                    items:
                      type: object
                      properties:
                        createdAt:
                          type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                        token:
                          type: object
                          properties:
                            amm:
                              anyOf:
                                - type: object
                                  properties:
                                    ccReserve:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                    feeRate:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                    invariant:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                    marginalPriceCcPerToken:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                                    revision:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    tokenReserve:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                  required:
                                    - ccReserve
                                    - feeRate
                                    - invariant
                                    - marginalPriceCcPerToken
                                    - revision
                                    - tokenReserve
                                  additionalProperties: false
                                - type: 'null'
                            art:
                              type: string
                              enum:
                                - rings
                                - grid
                                - halo
                                - waves
                                - monolith
                                - comet
                            banner:
                              anyOf:
                                - anyOf:
                                    - type: string
                                      maxLength: 2048
                                      format: uri
                                      description: >-
                                        Public navigation-only HTTPS URL with a
                                        DNS hostname; credentials, IP literals,
                                        localhost and private/local DNS suffixes
                                        are forbidden. This is not permission
                                        for server-side fetching.
                                      pattern: ^https://
                                    - type: string
                                      minLength: 2
                                      maxLength: 2048
                                - type: 'null'
                            bannerMimeType:
                              anyOf:
                                - type: string
                                  maxLength: 100
                                - type: 'null'
                            category:
                              type: string
                              enum:
                                - defi
                                - payments
                                - infrastructure
                                - real_world_assets
                                - capital_markets
                                - stablecoins
                                - identity_compliance
                                - data_oracles
                                - consumer
                                - culture
                                - other
                            change24h:
                              type: string
                              pattern: ^-?(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            createdAt:
                              type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                            creatorRevenue:
                              oneOf:
                                - type: object
                                  properties:
                                    eligibility:
                                      type: string
                                      const: eligible
                                    policy:
                                      type: object
                                      properties:
                                        hash:
                                          type: string
                                          const: >-
                                            sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                                        id:
                                          type: string
                                          const: supanova-creator-revenue-policy
                                        version:
                                          type: string
                                          const: '1'
                                      required:
                                        - hash
                                        - id
                                        - version
                                      additionalProperties: false
                                    reason:
                                      type: string
                                      const: accepted-policy-creator-route
                                  required:
                                    - eligibility
                                    - policy
                                    - reason
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    eligibility:
                                      type: string
                                      const: ineligible
                                    policy:
                                      type: 'null'
                                    reason:
                                      type: string
                                      enum:
                                        - legacy-no-policy
                                        - trader-cashback
                                  required:
                                    - eligibility
                                    - policy
                                    - reason
                                  additionalProperties: false
                            creator:
                              type: string
                              minLength: 1
                              maxLength: 100
                            creatorHandle:
                              type: string
                              minLength: 1
                              maxLength: 100
                            creatorAvatarPresetId:
                              anyOf:
                                - type: string
                                  enum:
                                    - supanova-01
                                    - supanova-02
                                    - supanova-03
                                    - supanova-04
                                    - supanova-05
                                    - supanova-06
                                    - supanova-07
                                    - supanova-08
                                    - supanova-09
                                    - supanova-10
                                    - supanova-11
                                    - supanova-12
                                - type: 'null'
                            creatorAvatarUrl:
                              description: >-
                                Public token-scoped custom avatar image path;
                                version changes when the selected image changes.
                              anyOf:
                                - type: string
                                  maxLength: 113
                                  pattern: >-
                                    ^\/api\/v1\/tokens\/[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?\/creator-avatar\?v=[a-f0-9]{16}$
                                - type: 'null'
                            description:
                              type: string
                              minLength: 1
                              maxLength: 2000
                            disclaimer:
                              type: string
                              minLength: 1
                              maxLength: 1000
                            docs:
                              anyOf:
                                - type: string
                                  maxLength: 2048
                                  format: uri
                                  description: >-
                                    Public navigation-only HTTPS URL with a DNS
                                    hostname; credentials, IP literals,
                                    localhost and private/local DNS suffixes are
                                    forbidden. This is not permission for
                                    server-side fetching.
                                  pattern: ^https://
                                - type: 'null'
                            fullyDilutedValue:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            holderChange24h:
                              type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                            holders:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                            id:
                              type: string
                              minLength: 1
                              maxLength: 100
                            image:
                              anyOf:
                                - anyOf:
                                    - type: string
                                      maxLength: 2048
                                      format: uri
                                      description: >-
                                        Public navigation-only HTTPS URL with a
                                        DNS hostname; credentials, IP literals,
                                        localhost and private/local DNS suffixes
                                        are forbidden. This is not permission
                                        for server-side fetching.
                                      pattern: ^https://
                                    - type: string
                                      minLength: 2
                                      maxLength: 2048
                                - type: 'null'
                            imageKind:
                              anyOf:
                                - type: string
                                  enum:
                                    - image
                                    - video
                                - type: 'null'
                            imageMimeType:
                              anyOf:
                                - type: string
                                  maxLength: 100
                                - type: 'null'
                            instrumentId:
                              type: object
                              properties:
                                admin:
                                  type: string
                                  minLength: 1
                                  maxLength: 512
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 512
                              required:
                                - admin
                                - id
                              additionalProperties: false
                            lastBuyAt:
                              anyOf:
                                - type: string
                                  format: date-time
                                  pattern: >-
                                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                - type: 'null'
                              description: >-
                                Ledger time of the newest confirmed buy. Null
                                when the coin has no buy on record
                                (meta.marketActivity.lastBuy is 'published') or
                                when the figure is not published.
                            launchProgress:
                              type: object
                              properties:
                                curveAllocation:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                graduationPercent:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                graduationThresholdCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                liquidityReserve:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                remainingCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                stage:
                                  type: string
                                  enum:
                                    - ignition
                                    - near_escape
                                    - graduating
                                    - in_orbit
                                supplyPolicy:
                                  type: object
                                  properties:
                                    kind:
                                      type: string
                                      const: fixed
                                    postCreationMinting:
                                      type: string
                                      const: disabled
                                    version:
                                      type: string
                                      minLength: 1
                                      maxLength: 100
                                  required:
                                    - kind
                                    - postCreationMinting
                                    - version
                                  additionalProperties: false
                                totalSupply:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              required:
                                - curveAllocation
                                - graduationPercent
                                - graduationThresholdCc
                                - liquidityReserve
                                - remainingCc
                                - stage
                                - supplyPolicy
                                - totalSupply
                              additionalProperties: false
                            marketCap:
                              anyOf:
                                - type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                - type: 'null'
                              description: >-
                                Fully diluted: price x
                                launchProgress.totalSupply (equals
                                fullyDilutedValue).
                            name:
                              type: string
                              minLength: 1
                              maxLength: 100
                            palette:
                              type: array
                              minItems: 3
                              maxItems: 3
                              prefixItems:
                                - type: string
                                  pattern: ^#[0-9a-f]{6}$
                                - type: string
                                  pattern: ^#[0-9a-f]{6}$
                                - type: string
                                  pattern: ^#[0-9a-f]{6}$
                            price:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                            pricePerMillionTokensCc:
                              description: >-
                                CC per million tokens, a display value; present
                                for curve-package tokens.
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                            raisedCc:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            references:
                              maxItems: 20
                              type: array
                              items:
                                type: object
                                properties:
                                  href:
                                    type: string
                                    maxLength: 2048
                                    format: uri
                                    description: >-
                                      Public navigation-only HTTPS URL with a
                                      DNS hostname; credentials, IP literals,
                                      localhost and private/local DNS suffixes
                                      are forbidden. This is not permission for
                                      server-side fetching.
                                    pattern: ^https://
                                  kind:
                                    type: string
                                    enum:
                                      - website
                                      - docs
                                      - x
                                      - telegram
                                      - discord
                                      - instagram
                                      - youtube
                                      - tiktok
                                      - research
                                  label:
                                    type: string
                                    minLength: 1
                                    maxLength: 100
                                required:
                                  - href
                                  - kind
                                  - label
                                additionalProperties: false
                            rewardDestination:
                              type: string
                              enum:
                                - creator
                                - trader_cashback
                            slug:
                              type: string
                              minLength: 1
                              maxLength: 64
                            sparkline:
                              maxItems: 500
                              type: array
                              items:
                                type: string
                                pattern: ^-?(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                            tagline:
                              type: string
                              minLength: 1
                              maxLength: 200
                            ticker:
                              type: string
                              minLength: 1
                              maxLength: 16
                            tradeCount24h:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                            verified:
                              type: boolean
                            volume24h:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            volume7d:
                              anyOf:
                                - type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                - type: 'null'
                              description: >-
                                CC volume over meta.marketActivity.volume7d: "0"
                                when the coin had no fills, null when the figure
                                is not published.
                            website:
                              anyOf:
                                - type: string
                                  maxLength: 2048
                                  format: uri
                                  description: >-
                                    Public navigation-only HTTPS URL with a DNS
                                    hostname; credentials, IP literals,
                                    localhost and private/local DNS suffixes are
                                    forbidden. This is not permission for
                                    server-side fetching.
                                  pattern: ^https://
                                - type: 'null'
                          required:
                            - art
                            - banner
                            - bannerMimeType
                            - category
                            - change24h
                            - createdAt
                            - creatorRevenue
                            - creator
                            - creatorHandle
                            - description
                            - disclaimer
                            - docs
                            - fullyDilutedValue
                            - holderChange24h
                            - holders
                            - id
                            - image
                            - imageKind
                            - imageMimeType
                            - instrumentId
                            - lastBuyAt
                            - launchProgress
                            - marketCap
                            - name
                            - palette
                            - price
                            - raisedCc
                            - references
                            - rewardDestination
                            - slug
                            - sparkline
                            - tagline
                            - ticker
                            - tradeCount24h
                            - verified
                            - volume24h
                            - volume7d
                            - website
                          additionalProperties: false
                      required:
                        - createdAt
                        - token
                      additionalProperties: false
                  meta:
                    anyOf:
                      - type: object
                        properties:
                          asOf:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                          dataMode:
                            type: string
                            const: simulated
                          disclaimer:
                            type: string
                            minLength: 1
                            maxLength: 512
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                          projection:
                            type: 'null'
                        required:
                          - asOf
                          - dataMode
                          - disclaimer
                          - networkId
                          - projection
                        additionalProperties: false
                      - type: object
                        properties:
                          asOf:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                          dataMode:
                            type: string
                            const: projected
                          disclaimer:
                            type: string
                            minLength: 1
                            maxLength: 512
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                          source:
                            type: string
                            const: confirmed-launch-operations
                        required:
                          - asOf
                          - dataMode
                          - disclaimer
                          - networkId
                          - source
                        additionalProperties: false
                required:
                  - items
                  - meta
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: List token launches attributed to the active product account.
      tags:
        - creator
  /api/v1/me/creator-rewards:
    get:
      operationId: CreatorController_rewards_v1
      parameters:
        - name: limit
          required: false
          in: query
          schema:
            default: 20
            type: integer
            minimum: 1
            maximum: 100
        - name: attributionCursor
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 512
        - name: distributionCursor
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 512
        - name: launchCursor
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 512
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Entitled creator revenue projection.
          content:
            application/json:
              schema:
                type: object
                properties:
                  accounting:
                    type: object
                    properties:
                      attributions:
                        type: array
                        items:
                          type: object
                          properties:
                            attributionId:
                              type: string
                              format: uuid
                              pattern: >-
                                ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                            attributionReference:
                              type: string
                              minLength: 3
                              maxLength: 256
                              pattern: ^[A-Za-z0-9._:-]+$
                            basisAmountCc:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,23})(?:\.\d{1,10})?$
                            beneficiaryPartyId:
                              type: string
                              description: >-
                                Opaque, case-sensitive Canton Party ID
                                containing 3-512 Unicode scalar values with no
                                normalization, edge whitespace, or C0/C1 control
                                characters.
                              minLength: 3
                              maxLength: 512
                            beneficiaryPartySource:
                              type: string
                              enum:
                                - external
                                - launcher
                            creatorRevenueCc:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,23})(?:\.\d{1,10})?$
                            distributedCreatorRevenueCc:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,23})(?:\.\d{1,10})?$
                            entryKind:
                              type: string
                              enum:
                                - accrual
                                - reversal
                            evidence:
                              oneOf:
                                - type: object
                                  properties:
                                    cantonEventId:
                                      type: string
                                      minLength: 1
                                      maxLength: 512
                                    cantonUpdateId:
                                      type: string
                                      minLength: 1
                                      maxLength: 512
                                    eventDigest:
                                      type: string
                                      pattern: ^sha256:[a-f0-9]{64}$
                                    eventReference:
                                      type: string
                                      minLength: 3
                                      maxLength: 256
                                      pattern: ^[A-Za-z0-9._:-]+$
                                    ledgerOffset:
                                      type: string
                                      minLength: 1
                                      maxLength: 512
                                    marketReference:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                    recordTime:
                                      type: string
                                      format: date-time
                                      pattern: >-
                                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                                    routeLegCount:
                                      type: integer
                                      minimum: 1
                                      maximum: 2
                                    routeLegIndex:
                                      type: integer
                                      minimum: 0
                                      maximum: 1
                                    source:
                                      type: string
                                      const: virtual-curve-trading-fee
                                  required:
                                    - cantonEventId
                                    - cantonUpdateId
                                    - eventDigest
                                    - eventReference
                                    - ledgerOffset
                                    - marketReference
                                    - recordTime
                                    - routeLegCount
                                    - routeLegIndex
                                    - source
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    cantonEventId:
                                      type: string
                                      minLength: 1
                                      maxLength: 512
                                    cantonUpdateId:
                                      type: string
                                      minLength: 1
                                      maxLength: 512
                                    eventDigest:
                                      type: string
                                      pattern: ^sha256:[a-f0-9]{64}$
                                    eventReference:
                                      type: string
                                      minLength: 3
                                      maxLength: 256
                                      pattern: ^[A-Za-z0-9._:-]+$
                                    ledgerOffset:
                                      type: string
                                      minLength: 1
                                      maxLength: 512
                                    marketReference:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                    recordTime:
                                      type: string
                                      format: date-time
                                      pattern: >-
                                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                                    routeLegCount:
                                      type: integer
                                      minimum: 1
                                      maximum: 2
                                    routeLegIndex:
                                      type: integer
                                      minimum: 0
                                      maximum: 1
                                    source:
                                      type: string
                                      const: supaswap-amm-trading-fee
                                  required:
                                    - cantonEventId
                                    - cantonUpdateId
                                    - eventDigest
                                    - eventReference
                                    - ledgerOffset
                                    - marketReference
                                    - recordTime
                                    - routeLegCount
                                    - routeLegIndex
                                    - source
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    cantonEventId:
                                      type: string
                                      minLength: 1
                                      maxLength: 512
                                    cantonUpdateId:
                                      type: string
                                      minLength: 1
                                      maxLength: 512
                                    couponContractId:
                                      type: string
                                      minLength: 1
                                      maxLength: 512
                                    eventDigest:
                                      type: string
                                      pattern: ^sha256:[a-f0-9]{64}$
                                    eventReference:
                                      type: string
                                      minLength: 3
                                      maxLength: 256
                                      pattern: ^[A-Za-z0-9._:-]+$
                                    ledgerOffset:
                                      type: string
                                      minLength: 1
                                      maxLength: 512
                                    markerContractId:
                                      type: string
                                      minLength: 1
                                      maxLength: 512
                                    recordTime:
                                      type: string
                                      format: date-time
                                      pattern: >-
                                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                                    round:
                                      type: string
                                      pattern: ^(0|[1-9][0-9]{0,18})$
                                    source:
                                      type: string
                                      const: featured-app-cc-reward
                                  required:
                                    - cantonEventId
                                    - cantonUpdateId
                                    - couponContractId
                                    - eventDigest
                                    - eventReference
                                    - ledgerOffset
                                    - markerContractId
                                    - recordTime
                                    - round
                                    - source
                                  additionalProperties: false
                            formulaId:
                              type: string
                              const: supanova-creator-revenue-v1
                            grossRevenueCc:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,23})(?:\.\d{1,10})?$
                            launchId:
                              type: string
                              format: uuid
                              pattern: >-
                                ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                            outstandingCreatorRevenueCc:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,23})(?:\.\d{1,10})?$
                            policyHash:
                              type: string
                              const: >-
                                sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                            policyId:
                              type: string
                              const: supanova-creator-revenue-policy
                            policyVersion:
                              type: string
                              const: '1'
                            protocolRootId:
                              type: string
                              minLength: 1
                              maxLength: 160
                            protocolRevenueCc:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,23})(?:\.\d{1,10})?$
                            reversesAttributionId:
                              anyOf:
                                - type: string
                                  format: uuid
                                  pattern: >-
                                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                - type: 'null'
                            source:
                              type: string
                              enum:
                                - virtual-curve-trading-fee
                                - supaswap-amm-trading-fee
                                - featured-app-cc-reward
                            tokenInstrument:
                              type: object
                              properties:
                                admin:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                              required:
                                - admin
                                - id
                              additionalProperties: false
                            tokenSlug:
                              type: string
                              pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
                            viewerRelationship:
                              type: string
                              enum:
                                - beneficiary
                                - both
                                - launch_creator
                          required:
                            - attributionId
                            - attributionReference
                            - basisAmountCc
                            - beneficiaryPartyId
                            - beneficiaryPartySource
                            - creatorRevenueCc
                            - distributedCreatorRevenueCc
                            - entryKind
                            - evidence
                            - formulaId
                            - grossRevenueCc
                            - launchId
                            - outstandingCreatorRevenueCc
                            - policyHash
                            - policyId
                            - policyVersion
                            - protocolRootId
                            - protocolRevenueCc
                            - reversesAttributionId
                            - source
                            - tokenInstrument
                            - tokenSlug
                            - viewerRelationship
                          additionalProperties: false
                      launches:
                        type: array
                        items:
                          type: object
                          properties:
                            accrualCount:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                            beneficiaryPartyId:
                              type: string
                              description: >-
                                Opaque, case-sensitive Canton Party ID
                                containing 3-512 Unicode scalar values with no
                                normalization, edge whitespace, or C0/C1 control
                                characters.
                              minLength: 3
                              maxLength: 512
                            beneficiaryPartySource:
                              type: string
                              enum:
                                - external
                                - launcher
                            distributionCount:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                            launchId:
                              type: string
                              format: uuid
                              pattern: >-
                                ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                            protocolRootId:
                              type: string
                              minLength: 1
                              maxLength: 160
                            reversalCount:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                            sources:
                              type: array
                              items:
                                type: object
                                properties:
                                  source:
                                    type: string
                                    enum:
                                      - virtual-curve-trading-fee
                                      - supaswap-amm-trading-fee
                                      - featured-app-cc-reward
                                  totals:
                                    type: object
                                    properties:
                                      creatorRevenueCc:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      distributedCreatorRevenueCc:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      grossRevenueCc:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      outstandingCreatorRevenueCc:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      protocolRevenueCc:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                    required:
                                      - creatorRevenueCc
                                      - distributedCreatorRevenueCc
                                      - grossRevenueCc
                                      - outstandingCreatorRevenueCc
                                      - protocolRevenueCc
                                    additionalProperties: false
                                required:
                                  - source
                                  - totals
                                additionalProperties: false
                            tokenSlug:
                              type: string
                              pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
                            tokenInstrument:
                              type: object
                              properties:
                                admin:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                              required:
                                - admin
                                - id
                              additionalProperties: false
                            totals:
                              type: object
                              properties:
                                creatorRevenueCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                distributedCreatorRevenueCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                grossRevenueCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                outstandingCreatorRevenueCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                protocolRevenueCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              required:
                                - creatorRevenueCc
                                - distributedCreatorRevenueCc
                                - grossRevenueCc
                                - outstandingCreatorRevenueCc
                                - protocolRevenueCc
                              additionalProperties: false
                          required:
                            - accrualCount
                            - beneficiaryPartyId
                            - beneficiaryPartySource
                            - distributionCount
                            - launchId
                            - protocolRootId
                            - reversalCount
                            - sources
                            - tokenSlug
                            - tokenInstrument
                            - totals
                          additionalProperties: false
                      policy:
                        type: object
                        properties:
                          attribution:
                            type: object
                            properties:
                              featuredApp:
                                type: string
                                const: >-
                                  authoritative-cc-event-uniquely-correlated-to-one-accepted-launch-instrument-only
                              reversal:
                                type: string
                                const: >-
                                  append-only-exact-opposite-once-and-only-before-any-distribution-allocation
                              routedTokenToToken:
                                type: string
                                const: >-
                                  one-source-event-per-supaswap-leg-attributed-to-that-leg-token-launch
                              unattributedActivity:
                                type: string
                                const: reject-never-api-prorate
                            required:
                              - featuredApp
                              - reversal
                              - routedTokenToToken
                              - unattributedActivity
                            additionalProperties: false
                          eligibility:
                            type: object
                            properties:
                              activation:
                                type: string
                                const: >-
                                  exact-policy-accepted-launches-only-no-retroactive-attribution
                              beneficiary:
                                type: string
                                const: immutable-token-launch-reward-route-party
                              rewardDestination:
                                type: string
                                const: creator
                              traderCashback:
                                type: string
                                const: ineligible-pending-explicit-product-decision
                            required:
                              - activation
                              - beneficiary
                              - rewardDestination
                              - traderCashback
                            additionalProperties: false
                          formulaId:
                            type: string
                            const: supanova-creator-revenue-v1
                          hash:
                            type: string
                            const: >-
                              sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                          id:
                            type: string
                            const: supanova-creator-revenue-policy
                          immutable:
                            type: boolean
                            const: true
                          numericScale:
                            type: number
                            const: 10
                          numericDomain:
                            type: object
                            properties:
                              dust:
                                type: string
                                const: reject-if-gross-or-creator-rounds-to-zero
                              maximumBasisAmountCc:
                                type: string
                                const: '999999999999999999999999.9999999999'
                            required:
                              - dust
                              - maximumBasisAmountCc
                            additionalProperties: false
                          rounding:
                            type: object
                            properties:
                              grossRevenue:
                                type: string
                                const: round10-half-even(source-basis-cc*source-rate)
                              split:
                                type: string
                                const: >-
                                  creator=round10-half-even(gross-revenue-cc*creator-share-rate);protocol=gross-revenue-cc-creator-revenue-cc
                            required:
                              - grossRevenue
                              - split
                            additionalProperties: false
                          settlement:
                            type: object
                            properties:
                              execution:
                                type: string
                                const: not-enabled
                              featuredAppExternalPartyRequirement:
                                type: string
                                const: >-
                                  beneficiary-mint-delegation-or-manual-mint-each-round-required
                              legalApproval:
                                type: string
                                const: required-before-live
                              readiness:
                                type: string
                                const: >-
                                  canton-attribution-and-distribution-writers-not-configured
                            required:
                              - execution
                              - featuredAppExternalPartyRequirement
                              - legalApproval
                              - readiness
                            additionalProperties: false
                          sources:
                            type: array
                            minItems: 3
                            maxItems: 3
                            prefixItems:
                              - type: object
                                properties:
                                  basis:
                                    type: string
                                    const: gross-curve-trade-notional-cc
                                  creatorShareRate:
                                    type: string
                                    const: '0.80'
                                  id:
                                    type: string
                                    const: virtual-curve-trading-fee
                                  protocolShareRate:
                                    type: string
                                    const: '0.20'
                                  revenueRate:
                                    type: string
                                    const: '0.01'
                                  settlementStrategy:
                                    type: string
                                    const: accounted-then-ledger-distribution
                                required:
                                  - basis
                                  - creatorShareRate
                                  - id
                                  - protocolShareRate
                                  - revenueRate
                                  - settlementStrategy
                                additionalProperties: false
                              - type: object
                                properties:
                                  basis:
                                    type: string
                                    const: gross-supaswap-trade-notional-cc
                                  creatorShareRate:
                                    type: string
                                    const: '0.80'
                                  id:
                                    type: string
                                    const: supaswap-amm-trading-fee
                                  protocolShareRate:
                                    type: string
                                    const: '0.20'
                                  revenueRate:
                                    type: string
                                    const: '0.01'
                                  settlementStrategy:
                                    type: string
                                    const: accounted-then-ledger-distribution
                                required:
                                  - basis
                                  - creatorShareRate
                                  - id
                                  - protocolShareRate
                                  - revenueRate
                                  - settlementStrategy
                                additionalProperties: false
                              - type: object
                                properties:
                                  basis:
                                    type: string
                                    const: coin-attributable-featured-app-reward-cc
                                  creatorShareRate:
                                    type: string
                                    const: '0.50'
                                  id:
                                    type: string
                                    const: featured-app-cc-reward
                                  protocolShareRate:
                                    type: string
                                    const: '0.50'
                                  revenueRate:
                                    type: string
                                    const: '1.00'
                                  settlementStrategy:
                                    type: string
                                    const: weighted-featured-app-marker-direct
                                required:
                                  - basis
                                  - creatorShareRate
                                  - id
                                  - protocolShareRate
                                  - revenueRate
                                  - settlementStrategy
                                additionalProperties: false
                          version:
                            type: string
                            const: '1'
                        required:
                          - attribution
                          - eligibility
                          - formulaId
                          - hash
                          - id
                          - immutable
                          - numericScale
                          - numericDomain
                          - rounding
                          - settlement
                          - sources
                          - version
                        additionalProperties: false
                      settlement:
                        type: object
                        properties:
                          distributionMutationAvailable:
                            type: boolean
                            const: false
                          execution:
                            type: string
                            const: not-enabled
                          featuredAppStrategy:
                            type: string
                            const: weighted-featured-app-marker-direct
                          readiness:
                            type: string
                            const: >-
                              canton-attribution-and-distribution-writers-not-configured
                        required:
                          - distributionMutationAvailable
                          - execution
                          - featuredAppStrategy
                          - readiness
                        additionalProperties: false
                      totals:
                        type: object
                        properties:
                          creatorRevenueCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          distributedCreatorRevenueCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          grossRevenueCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          outstandingCreatorRevenueCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          protocolRevenueCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                        required:
                          - creatorRevenueCc
                          - distributedCreatorRevenueCc
                          - grossRevenueCc
                          - outstandingCreatorRevenueCc
                          - protocolRevenueCc
                        additionalProperties: false
                    required:
                      - attributions
                      - launches
                      - policy
                      - settlement
                      - totals
                    additionalProperties: false
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        amountCc:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                        attributionIds:
                          type: array
                          items:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        creatorRewardPartyId:
                          type: string
                          description: >-
                            Opaque, case-sensitive Canton Party ID containing
                            3-512 Unicode scalar values with no normalization,
                            edge whitespace, or C0/C1 control characters.
                          minLength: 3
                          maxLength: 512
                        creatorRewardPartySource:
                          type: string
                          enum:
                            - launcher
                            - external
                        distributionId:
                          type: string
                          minLength: 3
                          maxLength: 256
                          pattern: ^[A-Za-z0-9._:-]+$
                        evidenceStatus:
                          type: string
                          enum:
                            - ledger-confirmed-value-movement
                            - simulated
                        occurredAt:
                          type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                        rewardRoutingPolicyHash:
                          type: string
                          const: >-
                            sha256:fe83c99bff082060a46d8a30ea9de61fc1f165ccd2c28c595b85f393accd86dd
                        tokenSlug:
                          type: string
                          pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
                        valueMovementProven:
                          type: boolean
                        viewerRelationship:
                          type: string
                          enum:
                            - beneficiary
                            - both
                            - launch_creator
                      required:
                        - amountCc
                        - attributionIds
                        - creatorRewardPartyId
                        - creatorRewardPartySource
                        - distributionId
                        - evidenceStatus
                        - occurredAt
                        - rewardRoutingPolicyHash
                        - tokenSlug
                        - valueMovementProven
                        - viewerRelationship
                      additionalProperties: false
                  meta:
                    oneOf:
                      - type: object
                        properties:
                          asOf:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                          dataMode:
                            type: string
                            const: simulated
                          disclaimer:
                            type: string
                            minLength: 1
                            maxLength: 512
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                          projection:
                            type: 'null'
                        required:
                          - asOf
                          - dataMode
                          - disclaimer
                          - networkId
                          - projection
                        additionalProperties: false
                      - type: object
                        properties:
                          asOf:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                          dataMode:
                            type: string
                            const: projected
                          disclaimer:
                            type: string
                            minLength: 1
                            maxLength: 512
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                          projection:
                            type: object
                            properties:
                              ledgerOffset:
                                type: string
                                minLength: 1
                                maxLength: 512
                              policyHash:
                                type: string
                                const: >-
                                  sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                              recordTime:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                              semanticDecoder:
                                type: string
                                const: supanova-creator-revenue-v1
                              version:
                                type: string
                                const: '1'
                            required:
                              - ledgerOffset
                              - policyHash
                              - recordTime
                              - semanticDecoder
                              - version
                            additionalProperties: false
                        required:
                          - asOf
                          - dataMode
                          - disclaimer
                          - networkId
                          - projection
                        additionalProperties: false
                  page:
                    type: object
                    properties:
                      attributions:
                        type: object
                        properties:
                          hasMore:
                            type: boolean
                          limit:
                            type: integer
                            minimum: 1
                            maximum: 100
                          nextCursor:
                            type:
                              - string
                              - 'null'
                        required:
                          - hasMore
                          - limit
                          - nextCursor
                        additionalProperties: false
                      distributions:
                        type: object
                        properties:
                          hasMore:
                            type: boolean
                          limit:
                            type: integer
                            minimum: 1
                            maximum: 100
                          nextCursor:
                            type:
                              - string
                              - 'null'
                        required:
                          - hasMore
                          - limit
                          - nextCursor
                        additionalProperties: false
                      launches:
                        type: object
                        properties:
                          hasMore:
                            type: boolean
                          limit:
                            type: integer
                            minimum: 1
                            maximum: 100
                          nextCursor:
                            type:
                              - string
                              - 'null'
                        required:
                          - hasMore
                          - limit
                          - nextCursor
                        additionalProperties: false
                    required:
                      - attributions
                      - distributions
                      - launches
                    additionalProperties: false
                  totalCc:
                    type: string
                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                required:
                  - accounting
                  - items
                  - meta
                  - page
                  - totalCc
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Read bounded creator revenue accounting and distribution history.
      tags:
        - creator
  /api/v1/me/creator-rewards/summary:
    get:
      operationId: CreatorController_rewardsSummary_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: >-
            Creator reward totals at one ledger offset; zeros when the account
            has no launch.
          content:
            application/json:
              schema:
                type: object
                properties:
                  pendingCc:
                    type: string
                    pattern: ^(?:0|[1-9]\d{0,37})(?:\.\d{1,10})?$
                  accruedCc:
                    type: string
                    pattern: ^(?:0|[1-9]\d{0,37})(?:\.\d{1,10})?$
                  claimedCc:
                    type: string
                    pattern: ^(?:0|[1-9]\d{0,37})(?:\.\d{1,10})?$
                  claimedSource:
                    type: string
                    const: confirmed-maker-claims
                  confirmedClaims:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  totalCc:
                    type: string
                    pattern: ^(?:0|[1-9]\d{0,37})(?:\.\d{1,10})?$
                  launches:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  asOf:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                  ledgerOffset:
                    anyOf:
                      - type: string
                        pattern: ^\d+$
                      - type: 'null'
                  dataMode:
                    type: string
                    const: ledger
                  networkId:
                    type: string
                    pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                required:
                  - pendingCc
                  - accruedCc
                  - claimedCc
                  - claimedSource
                  - confirmedClaims
                  - totalCc
                  - launches
                  - asOf
                  - ledgerOffset
                  - dataMode
                  - networkId
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            A product account is required. Also: `AUTHENTICATION_REQUIRED`,
            `INVALID_AUTHORIZATION_HEADER`, `INVALID_ACCESS_TOKEN`,
            `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A ledger, market or claim read failed; never represented as a zero
            or partial total. Also: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: >-
        Total, claimed and pending creator rewards of the caller's launches,
        from live maker fee accruals and confirmed maker claims.
      tags:
        - creator
  /api/v1/fee-claims/maker:
    get:
      operationId: FeeClaimController_makerBalance_v1
      parameters:
        - name: instrumentId
          required: true
          in: query
          schema:
            type: string
            pattern: ^[A-Za-z0-9][A-Za-z0-9._-]{0,159}$
        - name: walletConnectionId
          required: false
          in: query
          schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Current curve and AMM maker fee balances at one ledger offset.
          content:
            application/json:
              schema:
                type: object
                properties:
                  partyId:
                    type: string
                    minLength: 1
                  instrumentId:
                    type: string
                    minLength: 1
                    maxLength: 160
                  walletConnectionId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  networkId:
                    type: string
                    minLength: 1
                  asOf:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                  ledgerOffset:
                    type: string
                    pattern: ^\d+$
                  venues:
                    minItems: 1
                    maxItems: 2
                    type: array
                    items:
                      type: object
                      properties:
                        venue:
                          type: string
                          enum:
                            - curve
                            - amm
                        accruedCc:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                        minimumClaimCc:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                        claimableCc:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      required:
                        - venue
                        - accruedCc
                        - minimumClaimCc
                        - claimableCc
                      additionalProperties: false
                  totalAccruedCc:
                    type: string
                    pattern: ^(?:0|[1-9]\d{0,28})(?:\.\d{1,10})?$
                  totalClaimableCc:
                    type: string
                    pattern: ^(?:0|[1-9]\d{0,28})(?:\.\d{1,10})?$
                required:
                  - partyId
                  - instrumentId
                  - walletConnectionId
                  - networkId
                  - asOf
                  - ledgerOffset
                  - venues
                  - totalAccruedCc
                  - totalClaimableCc
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            Not the token creator, or the Party is not allowed. Also:
            `ACCOUNT_RESTRICTED`, `ANONYMOUS_ACCOUNT_NOT_ALLOWED`,
            `API_KEY_ROUTE_NOT_ALLOWED`, `SERVICE_PARTY_NOT_ALLOWED`,
            `SERVICE_PRINCIPAL_NOT_ALLOWED`, `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No wallet, or no pool for the token.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            The ledger is unavailable; never represented as a zero balance.
            Also: `AUTHENTICATION_UNAVAILABLE`, `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: >-
        Read the connected creator wallet’s accrued and claimable maker fees
        without preparing or submitting a claim.
      tags:
        - fee claims
  /api/v1/fee-claims/maker/prepare:
    post:
      operationId: FeeClaimController_prepareMakerClaim_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                instrumentId:
                  type: string
                  pattern: ^[A-Za-z0-9][A-Za-z0-9._-]{0,159}$
                walletConnectionId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              required:
                - instrumentId
              additionalProperties: false
      responses:
        '201':
          description: The claim command for sendTransaction.
          content:
            application/json:
              schema:
                type: object
                properties:
                  commandId:
                    type: string
                    minLength: 1
                    maxLength: 255
                  partyId:
                    type: string
                    minLength: 1
                  instrumentId:
                    type: string
                    minLength: 1
                    maxLength: 160
                  venue:
                    type: string
                    enum:
                      - curve
                      - amm
                  claimableCc:
                    type: string
                  minimumClaimCc:
                    type: string
                  balanceCid:
                    type: string
                    minLength: 1
                  balanceCreated:
                    type: boolean
                  actAs:
                    minItems: 1
                    maxItems: 1
                    type: array
                    items:
                      type: string
                      minLength: 1
                  commands:
                    minItems: 1
                    maxItems: 1
                    type: array
                    items:
                      type: object
                      propertyNames:
                        type: string
                      additionalProperties: {}
                  disclosedContracts:
                    maxItems: 1
                    type: array
                    items:
                      type: object
                      properties:
                        contractId:
                          type: string
                          minLength: 1
                          maxLength: 255
                        createdEventBlob:
                          type: string
                          minLength: 1
                        synchronizerId:
                          type: string
                          minLength: 1
                          maxLength: 512
                        templateId:
                          type: string
                          minLength: 1
                          maxLength: 255
                      required:
                        - contractId
                        - createdEventBlob
                        - synchronizerId
                        - templateId
                      additionalProperties: false
                  packageIdSelectionPreference:
                    maxItems: 4
                    type: array
                    items:
                      type: string
                      pattern: ^[0-9a-f]{64}$
                required:
                  - commandId
                  - partyId
                  - instrumentId
                  - venue
                  - claimableCc
                  - minimumClaimCc
                  - balanceCid
                  - balanceCreated
                  - actAs
                  - commands
                  - disclosedContracts
                  - packageIdSelectionPreference
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            Not the token creator, or the Party is not allowed. Also:
            `ACCOUNT_RESTRICTED`, `ANONYMOUS_ACCOUNT_NOT_ALLOWED`,
            `API_KEY_ROUTE_NOT_ALLOWED`, `SERVICE_PARTY_NOT_ALLOWED`,
            `SERVICE_PRINCIPAL_NOT_ALLOWED`, `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No wallet, or no pool for the token.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '422':
          description: The accrual is below the claim minimum.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            The ledger is unavailable. Also: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Prepare the creator's wallet-signed maker fee claim of one token.
      tags:
        - fee claims
  /api/v1/wallet/connections/challenges:
    post:
      operationId: WalletController_createConnectionChallenge_v1
      parameters:
        - name: Origin
          in: header
          description: Exact browser origin to bind into the signed challenge.
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                partyId:
                  type: string
                  description: >-
                    Opaque, case-sensitive Canton Party ID containing 3-512
                    Unicode scalar values with no normalization, edge
                    whitespace, or C0/C1 control characters.
                  minLength: 3
                  maxLength: 512
                publicKey:
                  type: string
                  pattern: >-
                    ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$
                walletProvider:
                  type: string
                  minLength: 3
                  maxLength: 64
                  pattern: ^[a-z0-9](?:[a-z0-9.-]{1,62}[a-z0-9])$
              required:
                - partyId
                - walletProvider
              additionalProperties: false
      responses:
        '201':
          description: >-
            A one-time binding challenge: sign signingRequest.params.hash with
            the Party key.
          content:
            application/json:
              schema:
                type: object
                properties:
                  binding:
                    type: object
                    properties:
                      appOrigin:
                        type: string
                        format: uri
                      appStage:
                        type: string
                        enum:
                          - local
                          - preview
                          - devnet
                          - mainnet
                      networkId:
                        type: string
                      partyId:
                        type: string
                        description: >-
                          Opaque, case-sensitive Canton Party ID containing
                          3-512 Unicode scalar values with no normalization,
                          edge whitespace, or C0/C1 control characters.
                        minLength: 3
                        maxLength: 512
                      walletProvider:
                        type: string
                        minLength: 3
                        maxLength: 64
                        pattern: ^[a-z0-9](?:[a-z0-9.-]{1,62}[a-z0-9])$
                    required:
                      - appOrigin
                      - appStage
                      - networkId
                      - partyId
                      - walletProvider
                    additionalProperties: false
                  challengeId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  expiresAt:
                    type: string
                  message:
                    type: string
                  signingRequest:
                    type: object
                    properties:
                      method:
                        type: string
                        const: signHash
                      params:
                        type: object
                        properties:
                          hash:
                            type: string
                          message:
                            type: string
                        required:
                          - hash
                          - message
                        additionalProperties: false
                      standard:
                        type: string
                        const: supanova-launchpad-binding-v1
                    required:
                      - method
                      - params
                      - standard
                    additionalProperties: false
                required:
                  - binding
                  - challengeId
                  - expiresAt
                  - message
                  - signingRequest
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Create a short-lived, origin-bound CIP-0103 wallet ownership challenge.
      tags:
        - wallet
  /api/v1/wallet/connections/verify:
    post:
      operationId: WalletController_verifyConnectionChallenge_v1
      parameters:
        - name: Origin
          in: header
          description: Exact browser origin used when the challenge was created.
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                challengeId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                message:
                  type: string
                  minLength: 1
                  maxLength: 4096
                publicKey:
                  type: string
                  pattern: >-
                    ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$
                signature:
                  type: string
                  minLength: 16
                  maxLength: 8192
              required:
                - challengeId
                - message
                - signature
              additionalProperties: false
      responses:
        '200':
          description: The server-verified wallet connection.
          content:
            application/json:
              schema:
                type: object
                properties:
                  connection:
                    type: object
                    properties:
                      cantonPartyId:
                        type: string
                        description: >-
                          Opaque, case-sensitive Canton Party ID containing
                          3-512 Unicode scalar values with no normalization,
                          edge whitespace, or C0/C1 control characters.
                        minLength: 3
                        maxLength: 512
                      dataMode:
                        type: string
                        enum:
                          - projected
                          - simulated
                      id:
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      isPrimary:
                        type: boolean
                      label:
                        type:
                          - string
                          - 'null'
                      networkId:
                        type: string
                      status:
                        type: string
                        const: verified
                      verifiedAt:
                        type: string
                      verificationMethod:
                        type: string
                        const: cip-0103-sign-message
                      walletKind:
                        type: string
                        const: canton
                      walletProvider:
                        type: string
                        minLength: 3
                        maxLength: 64
                        pattern: ^[a-z0-9](?:[a-z0-9.-]{1,62}[a-z0-9])$
                    required:
                      - cantonPartyId
                      - dataMode
                      - id
                      - isPrimary
                      - label
                      - networkId
                      - status
                      - verifiedAt
                      - verificationMethod
                      - walletKind
                      - walletProvider
                    additionalProperties: false
                  verification:
                    type: object
                    properties:
                      method:
                        type: string
                        const: cip-0103-sign-message
                      standard:
                        type: string
                        const: CIP-0103
                      verifiedAt:
                        type: string
                    required:
                      - method
                      - standard
                      - verifiedAt
                    additionalProperties: false
                required:
                  - connection
                  - verification
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: >-
        Consume a challenge and verify the Party-key signature over its binding
        digest once.
      tags:
        - wallet
  /api/v1/wallet/portfolio:
    get:
      operationId: WalletController_portfolio_v1
      parameters:
        - name: walletConnectionId
          required: false
          in: query
          schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: The owned wallet portfolio read model.
          content:
            application/json:
              schema:
                type: object
                properties:
                  asOf:
                    type: string
                  balances:
                    type: array
                    items:
                      type: object
                      properties:
                        actions:
                          type: object
                          properties:
                            swapBuy:
                              type: object
                              properties:
                                dataMode:
                                  type: string
                                  enum:
                                    - none
                                    - projected
                                    - simulated
                                reasonCode:
                                  anyOf:
                                    - type: string
                                      minLength: 1
                                      maxLength: 128
                                    - type: 'null'
                                status:
                                  type: string
                                  enum:
                                    - blocked
                                    - disabled
                                    - preview
                                    - ready
                              required:
                                - dataMode
                                - reasonCode
                                - status
                              additionalProperties: false
                            swapSell:
                              type: object
                              properties:
                                dataMode:
                                  type: string
                                  enum:
                                    - none
                                    - projected
                                    - simulated
                                reasonCode:
                                  anyOf:
                                    - type: string
                                      minLength: 1
                                      maxLength: 128
                                    - type: 'null'
                                status:
                                  type: string
                                  enum:
                                    - blocked
                                    - disabled
                                    - preview
                                    - ready
                              required:
                                - dataMode
                                - reasonCode
                                - status
                              additionalProperties: false
                            transfer:
                              type: object
                              properties:
                                dataMode:
                                  type: string
                                  enum:
                                    - none
                                    - projected
                                    - simulated
                                reasonCode:
                                  anyOf:
                                    - type: string
                                      minLength: 1
                                      maxLength: 128
                                    - type: 'null'
                                status:
                                  type: string
                                  enum:
                                    - blocked
                                    - disabled
                                    - preview
                                    - ready
                              required:
                                - dataMode
                                - reasonCode
                                - status
                              additionalProperties: false
                          required:
                            - swapBuy
                            - swapSell
                            - transfer
                          additionalProperties: false
                        asset:
                          type: object
                          properties:
                            assetType:
                              type: string
                              enum:
                                - native
                                - stablecoin
                                - utility
                                - governance
                                - security
                                - other
                            canonicalSlug:
                              type: string
                              minLength: 3
                              maxLength: 64
                              pattern: ^[a-z0-9][a-z0-9-]{1,62}[a-z0-9]$
                            decimals:
                              type: integer
                              minimum: 0
                              maximum: 18
                            logoPath:
                              anyOf:
                                - type: string
                                  minLength: 1
                                  maxLength: 512
                                - type: 'null'
                            marketSlug:
                              anyOf:
                                - type: string
                                  minLength: 3
                                  maxLength: 64
                                  pattern: ^[a-z0-9][a-z0-9-]{1,62}[a-z0-9]$
                                - type: 'null'
                          required:
                            - assetType
                            - canonicalSlug
                            - decimals
                            - logoPath
                            - marketSlug
                          additionalProperties: false
                        availableAmount:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                        depositAccount:
                          type: object
                          properties:
                            frozen:
                              type: boolean
                            walletCcAmount:
                              anyOf:
                                - type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                - type: 'null'
                            walletCcUnavailableReason:
                              anyOf:
                                - type: string
                                  minLength: 1
                                  maxLength: 64
                                - type: 'null'
                          required:
                            - frozen
                            - walletCcAmount
                            - walletCcUnavailableReason
                          additionalProperties: false
                        instrumentId:
                          type: object
                          properties:
                            admin:
                              type: string
                              minLength: 1
                              maxLength: 512
                            id:
                              type: string
                              minLength: 1
                              maxLength: 512
                          required:
                            - admin
                            - id
                          additionalProperties: false
                        lockedAmount:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                        name:
                          type: string
                        publicHolderHints:
                          maxItems: 4
                          type: array
                          items:
                            type: string
                            pattern: ^holder_[0-9a-f]{24}$
                        symbol:
                          type: string
                        totalAmount:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      required:
                        - actions
                        - asset
                        - availableAmount
                        - instrumentId
                        - lockedAmount
                        - name
                        - symbol
                        - totalAmount
                      additionalProperties: false
                  dataMode:
                    type: string
                    enum:
                      - projected
                      - simulated
                  disclaimer:
                    type: string
                  networkId:
                    type: string
                    pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                  partyId:
                    type: string
                  walletConnectionId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                required:
                  - asOf
                  - balances
                  - dataMode
                  - disclaimer
                  - networkId
                  - partyId
                  - walletConnectionId
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`, `API_KEY_INVALID`,
            `API_KEY_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Owner routes accept only a
            customer API key: an internal master key answers
            `API_KEY_ROUTE_NOT_ALLOWED`. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`, `API_KEY_IP_NOT_ALLOWED`,
            `PRODUCT_ACCOUNT_RESTRICTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
        - apiKey: []
      summary: Read the authenticated user’s wallet portfolio projection.
      tags:
        - wallet
      x-api-key-scope: read
  /api/v1/wallet/transfers/prepare:
    post:
      operationId: WalletController_prepareTransfer_v1
      parameters:
        - name: Idempotency-Key
          in: header
          required: true
          schema:
            type: string
            minLength: 8
            maxLength: 256
            pattern: ^[A-Za-z0-9._:-]+$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                amount:
                  type: string
                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                instrumentId:
                  type: object
                  properties:
                    admin:
                      type: string
                      minLength: 1
                      maxLength: 512
                    id:
                      type: string
                      minLength: 1
                      maxLength: 512
                  required:
                    - admin
                    - id
                  additionalProperties: false
                memo:
                  type: string
                  minLength: 1
                  maxLength: 280
                recipientPartyId:
                  type: string
                  description: >-
                    Opaque, case-sensitive Canton Party ID containing 3-512
                    Unicode scalar values with no normalization, edge
                    whitespace, or C0/C1 control characters.
                  minLength: 3
                  maxLength: 512
                walletConnectionId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              required:
                - amount
                - instrumentId
                - recipientPartyId
                - walletConnectionId
              additionalProperties: false
      responses:
        '201':
          description: A wallet-neutral action and operation.
          content:
            application/json:
              schema:
                type: object
                properties:
                  execution:
                    type: string
                    const: simulated
                  fee:
                    type: object
                    properties:
                      amount:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      asset:
                        type: object
                        properties:
                          admin:
                            type: string
                            minLength: 1
                            maxLength: 512
                          id:
                            type: string
                            minLength: 1
                            maxLength: 512
                        required:
                          - admin
                          - id
                        additionalProperties: false
                      policy:
                        type: string
                        const: cip-0078-no-cc-transfer-fee
                    required:
                      - amount
                      - asset
                      - policy
                    additionalProperties: false
                  feeLineItems:
                    type: array
                    items:
                      type: object
                      properties:
                        amount:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                        instrument:
                          type: object
                          properties:
                            admin:
                              type: string
                              minLength: 1
                              maxLength: 512
                            id:
                              type: string
                              minLength: 1
                              maxLength: 512
                          required:
                            - admin
                            - id
                          additionalProperties: false
                        kind:
                          type: string
                          const: transfer
                        label:
                          type: string
                      required:
                        - amount
                        - instrument
                        - kind
                        - label
                      additionalProperties: false
                  operation:
                    type: object
                    properties:
                      expiresAt:
                        type: string
                      id:
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      status:
                        type: string
                        enum:
                          - received
                          - validating
                          - awaiting_signature
                          - ready
                          - submitted
                          - confirmed
                          - failed
                          - rejected
                          - expired
                          - cancelled
                    required:
                      - expiresAt
                      - id
                      - status
                    additionalProperties: false
                  walletAction:
                    type: object
                    properties:
                      expiresAt:
                        type: string
                      intent:
                        type: object
                        properties:
                          amount:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          feeAmountCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          instrumentId:
                            type: object
                            properties:
                              admin:
                                type: string
                                minLength: 1
                                maxLength: 512
                              id:
                                type: string
                                minLength: 1
                                maxLength: 512
                            required:
                              - admin
                              - id
                            additionalProperties: false
                          memo:
                            type: string
                          recipientPartyId:
                            type: string
                          senderPartyId:
                            type: string
                          type:
                            type: string
                            const: transfer.execute
                        required:
                          - amount
                          - feeAmountCc
                          - instrumentId
                          - recipientPartyId
                          - senderPartyId
                          - type
                        additionalProperties: false
                      kind:
                        type: string
                        const: canton.prepare-execute
                      method:
                        type: string
                        const: prepareExecute
                      networkId:
                        type: string
                        pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                      operationId:
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      readiness:
                        type: string
                        enum:
                          - daml-command-builder-not-configured
                          - ready
                      request:
                        anyOf:
                          - type: object
                            properties:
                              kind:
                                type: string
                                enum:
                                  - application-submission
                                  - interactive-submission
                                  - wallet-submission
                              commandId:
                                type: string
                                minLength: 1
                                maxLength: 255
                              actAs:
                                minItems: 1
                                maxItems: 8
                                type: array
                                items:
                                  type: string
                                  minLength: 3
                                  maxLength: 512
                              synchronizerId:
                                type: string
                                minLength: 1
                                maxLength: 512
                              hashingSchemeVersion:
                                type: string
                                minLength: 1
                                maxLength: 64
                              signatureFormat:
                                type: string
                                const: SIGNATURE_FORMAT_RAW
                              signingAlgorithmSpec:
                                type: string
                                const: SIGNING_ALGORITHM_SPEC_ED25519
                              signedBy:
                                anyOf:
                                  - type: string
                                    minLength: 4
                                    maxLength: 160
                                  - type: 'null'
                              preparedTransaction:
                                anyOf:
                                  - type: string
                                    maxLength: 4194304
                                  - type: 'null'
                              preparedTransactionHash:
                                anyOf:
                                  - type: string
                                    maxLength: 512
                                  - type: 'null'
                            required:
                              - kind
                              - commandId
                              - actAs
                              - synchronizerId
                              - hashingSchemeVersion
                              - signatureFormat
                              - signingAlgorithmSpec
                              - signedBy
                              - preparedTransaction
                              - preparedTransactionHash
                            additionalProperties: false
                          - type: 'null'
                      standard:
                        type: string
                        const: CIP-0103
                    required:
                      - expiresAt
                      - intent
                      - kind
                      - method
                      - networkId
                      - operationId
                      - readiness
                      - request
                      - standard
                    additionalProperties: false
                required:
                  - execution
                  - fee
                  - feeLineItems
                  - operation
                  - walletAction
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `IDEMPOTENCY_KEY_REQUIRED`,
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '409':
          description: >-
            The request conflicts with current state, or the Idempotency-Key was
            reused with a different request (`IDEMPOTENCY_KEY_CONFLICT`; the
            former `IDEMPOTENCY_CONFLICT` is a deprecated alias, no longer
            returned, that clients handle the same way for one release). Codes:
            `IDEMPOTENCY_KEY_CONFLICT`, `IDEMPOTENCY_CONFLICT`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Create an idempotent wallet-authorized transfer intent.
      tags:
        - wallet
  /api/v1/operations:
    get:
      operationId: OperationController_list_v1
      parameters:
        - name: cursor
          required: false
          in: query
          schema:
            maxLength: 512
            minLength: 1
            type: string
        - name: limit
          required: false
          in: query
          schema:
            default: 24
            maximum: 100
            minimum: 1
            type: integer
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Cursor-paginated owned operations.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        cantonCommandId:
                          type:
                            - string
                            - 'null'
                        cantonUpdateId:
                          description: >-
                            The ledger update that completed the operation, when
                            it is the only operation that update completed.
                            Always null for swap.execute operations of trade
                            orders and user-signed trades: their status follows
                            the order or trade (submitted, confirmed, rejected,
                            cancelled, expired) and the update id, offset and
                            record time are in result.ledgerExecution, since one
                            batch-fill update settles many orders.
                          type:
                            - string
                            - 'null'
                        completedAt:
                          anyOf:
                            - type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                            - type: 'null'
                        correlationId:
                          type: string
                          format: uuid
                          pattern: >-
                            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        createdAt:
                          type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        error:
                          anyOf:
                            - type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type:
                                    - string
                                    - 'null'
                              required:
                                - code
                                - message
                              additionalProperties: false
                            - type: 'null'
                        expiresAt:
                          anyOf:
                            - type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                            - type: 'null'
                        id:
                          type: string
                          format: uuid
                          pattern: >-
                            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        networkId:
                          type: string
                          pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                        result:
                          anyOf:
                            - anyOf:
                                - type: object
                                  properties:
                                    ledgerPreparation:
                                      type: object
                                      properties:
                                        kind:
                                          type: string
                                          enum:
                                            - application-submission
                                            - interactive-submission
                                            - wallet-submission
                                        commandId:
                                          type: string
                                          minLength: 1
                                          maxLength: 255
                                        actAs:
                                          minItems: 1
                                          maxItems: 8
                                          type: array
                                          items:
                                            type: string
                                            minLength: 1
                                            maxLength: 512
                                        synchronizerId:
                                          type: string
                                          minLength: 1
                                          maxLength: 512
                                        hashingSchemeVersion:
                                          type: string
                                          minLength: 1
                                          maxLength: 64
                                        preparedAt:
                                          type: string
                                          format: date-time
                                          pattern: >-
                                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                        signedBy:
                                          anyOf:
                                            - type: string
                                              minLength: 4
                                              maxLength: 160
                                            - type: 'null'
                                        preparedTransaction:
                                          anyOf:
                                            - type: string
                                              maxLength: 4194304
                                            - type: 'null'
                                        preparedTransactionHash:
                                          anyOf:
                                            - type: string
                                              maxLength: 512
                                            - type: 'null'
                                        applicationChoice:
                                          anyOf:
                                            - type: object
                                              propertyNames:
                                                type: string
                                              additionalProperties: {}
                                            - type: 'null'
                                        applicationPolicy:
                                          anyOf:
                                            - type: object
                                              propertyNames:
                                                type: string
                                              additionalProperties: {}
                                            - type: 'null'
                                        disclosedContracts:
                                          anyOf:
                                            - maxItems: 64
                                              type: array
                                              items:
                                                type: object
                                                properties:
                                                  contractId:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 255
                                                  createdEventBlob:
                                                    type: string
                                                    minLength: 1
                                                  synchronizerId:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 512
                                                  templateId:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 255
                                                required:
                                                  - contractId
                                                  - createdEventBlob
                                                  - synchronizerId
                                                  - templateId
                                                additionalProperties: false
                                            - type: 'null'
                                        submissionAttempt:
                                          anyOf:
                                            - type: object
                                              properties:
                                                submissionId:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 255
                                                beginExclusive:
                                                  type: integer
                                                  minimum: 0
                                                  maximum: 9007199254740991
                                                startedAt:
                                                  type: string
                                                  format: date-time
                                                  pattern: >-
                                                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                              required:
                                                - submissionId
                                                - beginExclusive
                                                - startedAt
                                              additionalProperties: false
                                            - type: 'null'
                                      required:
                                        - kind
                                        - commandId
                                        - actAs
                                        - synchronizerId
                                        - hashingSchemeVersion
                                        - preparedAt
                                        - signedBy
                                        - preparedTransaction
                                        - preparedTransactionHash
                                        - applicationChoice
                                        - applicationPolicy
                                        - submissionAttempt
                                      additionalProperties: false
                                  required:
                                    - ledgerPreparation
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    ledgerExecution:
                                      type: object
                                      properties:
                                        updateId:
                                          type: string
                                          minLength: 1
                                          maxLength: 255
                                        offset:
                                          type: string
                                          minLength: 1
                                          maxLength: 64
                                        recordTime:
                                          anyOf:
                                            - type: string
                                              maxLength: 64
                                            - type: 'null'
                                        synchronizerId:
                                          anyOf:
                                            - type: string
                                              minLength: 1
                                              maxLength: 512
                                            - type: 'null'
                                        recovered:
                                          type: boolean
                                        exercised:
                                          type: object
                                          propertyNames:
                                            type: string
                                          additionalProperties: {}
                                      required:
                                        - updateId
                                        - offset
                                        - recordTime
                                        - synchronizerId
                                        - recovered
                                        - exercised
                                      additionalProperties: false
                                  required:
                                    - ledgerExecution
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    walletReport:
                                      type: object
                                      properties:
                                        commandId:
                                          anyOf:
                                            - type: string
                                              minLength: 1
                                              maxLength: 512
                                            - type: 'null'
                                        errorCode:
                                          anyOf:
                                            - type: string
                                              minLength: 1
                                              maxLength: 128
                                            - type: 'null'
                                        reportedAt:
                                          type: string
                                          format: date-time
                                          pattern: >-
                                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                        source:
                                          type: string
                                          const: wallet
                                        status:
                                          type: string
                                          enum:
                                            - submitted
                                            - rejected
                                        updateId:
                                          anyOf:
                                            - type: string
                                              minLength: 1
                                              maxLength: 512
                                            - type: 'null'
                                      required:
                                        - commandId
                                        - errorCode
                                        - reportedAt
                                        - source
                                        - status
                                        - updateId
                                      additionalProperties: false
                                  required:
                                    - walletReport
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    confirmed:
                                      type: boolean
                                      const: true
                                    execution:
                                      type: string
                                      const: simulated
                                  required:
                                    - confirmed
                                    - execution
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    expiredAt:
                                      type: string
                                      format: date-time
                                      pattern: >-
                                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                    reason:
                                      type: string
                                      const: operation_deadline_elapsed
                                  required:
                                    - expiredAt
                                    - reason
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    cancelledAt:
                                      type: string
                                      format: date-time
                                      pattern: >-
                                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                    reason:
                                      type: string
                                      enum:
                                        - account_closed_before_submission
                                        - order_cancelled
                                  required:
                                    - cancelledAt
                                    - reason
                                  additionalProperties: false
                            - type: 'null'
                          description: >-
                            Status-specific evidence: ledgerExecution (updateId,
                            offset, recordTime) for a confirmed operation,
                            ledgerPreparation while a signature is awaited,
                            expiredAt or cancelledAt for those terminal states,
                            walletReport for a wallet-reported outcome, else
                            null.
                        status:
                          type: string
                          enum:
                            - received
                            - validating
                            - awaiting_signature
                            - ready
                            - submitted
                            - confirmed
                            - failed
                            - rejected
                            - expired
                            - cancelled
                        type:
                          type: string
                          minLength: 1
                          maxLength: 128
                        updatedAt:
                          type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      required:
                        - cantonCommandId
                        - cantonUpdateId
                        - completedAt
                        - correlationId
                        - createdAt
                        - error
                        - expiresAt
                        - id
                        - networkId
                        - result
                        - status
                        - type
                        - updatedAt
                      additionalProperties: false
                  nextCursor:
                    type:
                      - string
                      - 'null'
                required:
                  - items
                  - nextCursor
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`, `API_KEY_INVALID`,
            `API_KEY_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Owner routes accept only a
            customer API key: an internal master key answers
            `API_KEY_ROUTE_NOT_ALLOWED`. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`, `API_KEY_IP_NOT_ALLOWED`,
            `PRODUCT_ACCOUNT_RESTRICTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
        - apiKey: []
      summary: List the authenticated user’s operation lifecycle.
      tags:
        - operations
      x-api-key-scope: read
  /api/v1/operations/{operationId}:
    get:
      operationId: OperationController_get_v1
      parameters:
        - name: operationId
          required: true
          in: path
          schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: The owned operation.
          content:
            application/json:
              schema:
                type: object
                properties:
                  cantonCommandId:
                    type:
                      - string
                      - 'null'
                  cantonUpdateId:
                    description: >-
                      The ledger update that completed the operation, when it is
                      the only operation that update completed. Always null for
                      swap.execute operations of trade orders and user-signed
                      trades: their status follows the order or trade
                      (submitted, confirmed, rejected, cancelled, expired) and
                      the update id, offset and record time are in
                      result.ledgerExecution, since one batch-fill update
                      settles many orders.
                    type:
                      - string
                      - 'null'
                  completedAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: 'null'
                  correlationId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  createdAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  error:
                    anyOf:
                      - type: object
                        properties:
                          code:
                            type: string
                          message:
                            type:
                              - string
                              - 'null'
                        required:
                          - code
                          - message
                        additionalProperties: false
                      - type: 'null'
                  expiresAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: 'null'
                  id:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  networkId:
                    type: string
                    pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                  result:
                    anyOf:
                      - anyOf:
                          - type: object
                            properties:
                              ledgerPreparation:
                                type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - application-submission
                                      - interactive-submission
                                      - wallet-submission
                                  commandId:
                                    type: string
                                    minLength: 1
                                    maxLength: 255
                                  actAs:
                                    minItems: 1
                                    maxItems: 8
                                    type: array
                                    items:
                                      type: string
                                      minLength: 1
                                      maxLength: 512
                                  synchronizerId:
                                    type: string
                                    minLength: 1
                                    maxLength: 512
                                  hashingSchemeVersion:
                                    type: string
                                    minLength: 1
                                    maxLength: 64
                                  preparedAt:
                                    type: string
                                    format: date-time
                                    pattern: >-
                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                  signedBy:
                                    anyOf:
                                      - type: string
                                        minLength: 4
                                        maxLength: 160
                                      - type: 'null'
                                  preparedTransaction:
                                    anyOf:
                                      - type: string
                                        maxLength: 4194304
                                      - type: 'null'
                                  preparedTransactionHash:
                                    anyOf:
                                      - type: string
                                        maxLength: 512
                                      - type: 'null'
                                  applicationChoice:
                                    anyOf:
                                      - type: object
                                        propertyNames:
                                          type: string
                                        additionalProperties: {}
                                      - type: 'null'
                                  applicationPolicy:
                                    anyOf:
                                      - type: object
                                        propertyNames:
                                          type: string
                                        additionalProperties: {}
                                      - type: 'null'
                                  disclosedContracts:
                                    anyOf:
                                      - maxItems: 64
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            contractId:
                                              type: string
                                              minLength: 1
                                              maxLength: 255
                                            createdEventBlob:
                                              type: string
                                              minLength: 1
                                            synchronizerId:
                                              type: string
                                              minLength: 1
                                              maxLength: 512
                                            templateId:
                                              type: string
                                              minLength: 1
                                              maxLength: 255
                                          required:
                                            - contractId
                                            - createdEventBlob
                                            - synchronizerId
                                            - templateId
                                          additionalProperties: false
                                      - type: 'null'
                                  submissionAttempt:
                                    anyOf:
                                      - type: object
                                        properties:
                                          submissionId:
                                            type: string
                                            minLength: 1
                                            maxLength: 255
                                          beginExclusive:
                                            type: integer
                                            minimum: 0
                                            maximum: 9007199254740991
                                          startedAt:
                                            type: string
                                            format: date-time
                                            pattern: >-
                                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                        required:
                                          - submissionId
                                          - beginExclusive
                                          - startedAt
                                        additionalProperties: false
                                      - type: 'null'
                                required:
                                  - kind
                                  - commandId
                                  - actAs
                                  - synchronizerId
                                  - hashingSchemeVersion
                                  - preparedAt
                                  - signedBy
                                  - preparedTransaction
                                  - preparedTransactionHash
                                  - applicationChoice
                                  - applicationPolicy
                                  - submissionAttempt
                                additionalProperties: false
                            required:
                              - ledgerPreparation
                            additionalProperties: false
                          - type: object
                            properties:
                              ledgerExecution:
                                type: object
                                properties:
                                  updateId:
                                    type: string
                                    minLength: 1
                                    maxLength: 255
                                  offset:
                                    type: string
                                    minLength: 1
                                    maxLength: 64
                                  recordTime:
                                    anyOf:
                                      - type: string
                                        maxLength: 64
                                      - type: 'null'
                                  synchronizerId:
                                    anyOf:
                                      - type: string
                                        minLength: 1
                                        maxLength: 512
                                      - type: 'null'
                                  recovered:
                                    type: boolean
                                  exercised:
                                    type: object
                                    propertyNames:
                                      type: string
                                    additionalProperties: {}
                                required:
                                  - updateId
                                  - offset
                                  - recordTime
                                  - synchronizerId
                                  - recovered
                                  - exercised
                                additionalProperties: false
                            required:
                              - ledgerExecution
                            additionalProperties: false
                          - type: object
                            properties:
                              walletReport:
                                type: object
                                properties:
                                  commandId:
                                    anyOf:
                                      - type: string
                                        minLength: 1
                                        maxLength: 512
                                      - type: 'null'
                                  errorCode:
                                    anyOf:
                                      - type: string
                                        minLength: 1
                                        maxLength: 128
                                      - type: 'null'
                                  reportedAt:
                                    type: string
                                    format: date-time
                                    pattern: >-
                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                  source:
                                    type: string
                                    const: wallet
                                  status:
                                    type: string
                                    enum:
                                      - submitted
                                      - rejected
                                  updateId:
                                    anyOf:
                                      - type: string
                                        minLength: 1
                                        maxLength: 512
                                      - type: 'null'
                                required:
                                  - commandId
                                  - errorCode
                                  - reportedAt
                                  - source
                                  - status
                                  - updateId
                                additionalProperties: false
                            required:
                              - walletReport
                            additionalProperties: false
                          - type: object
                            properties:
                              confirmed:
                                type: boolean
                                const: true
                              execution:
                                type: string
                                const: simulated
                            required:
                              - confirmed
                              - execution
                            additionalProperties: false
                          - type: object
                            properties:
                              expiredAt:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              reason:
                                type: string
                                const: operation_deadline_elapsed
                            required:
                              - expiredAt
                              - reason
                            additionalProperties: false
                          - type: object
                            properties:
                              cancelledAt:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              reason:
                                type: string
                                enum:
                                  - account_closed_before_submission
                                  - order_cancelled
                            required:
                              - cancelledAt
                              - reason
                            additionalProperties: false
                      - type: 'null'
                    description: >-
                      Status-specific evidence: ledgerExecution (updateId,
                      offset, recordTime) for a confirmed operation,
                      ledgerPreparation while a signature is awaited, expiredAt
                      or cancelledAt for those terminal states, walletReport for
                      a wallet-reported outcome, else null.
                  status:
                    type: string
                    enum:
                      - received
                      - validating
                      - awaiting_signature
                      - ready
                      - submitted
                      - confirmed
                      - failed
                      - rejected
                      - expired
                      - cancelled
                  type:
                    type: string
                    minLength: 1
                    maxLength: 128
                  updatedAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                required:
                  - cantonCommandId
                  - cantonUpdateId
                  - completedAt
                  - correlationId
                  - createdAt
                  - error
                  - expiresAt
                  - id
                  - networkId
                  - result
                  - status
                  - type
                  - updatedAt
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`, `API_KEY_INVALID`,
            `API_KEY_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Owner routes accept only a
            customer API key: an internal master key answers
            `API_KEY_ROUTE_NOT_ALLOWED`. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`, `API_KEY_IP_NOT_ALLOWED`,
            `PRODUCT_ACCOUNT_RESTRICTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No resource the caller may see matches the path.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
        - apiKey: []
      summary: Get one owned operation.
      tags:
        - operations
      x-api-key-scope: read
  /api/v1/operations/{operationId}/wallet-report:
    post:
      operationId: OperationController_reportWalletResult_v1
      parameters:
        - name: operationId
          required: true
          in: path
          schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    status:
                      type: string
                      const: submitted
                    walletReportedCommandId:
                      type: string
                      minLength: 1
                      maxLength: 512
                    walletReportedUpdateId:
                      type: string
                      minLength: 1
                      maxLength: 512
                  required:
                    - status
                    - walletReportedCommandId
                  additionalProperties: false
                - type: object
                  properties:
                    errorCode:
                      type: string
                      minLength: 1
                      maxLength: 128
                    status:
                      type: string
                      const: rejected
                    walletReportedCommandId:
                      type: string
                      minLength: 1
                      maxLength: 512
                  required:
                    - errorCode
                    - status
                  additionalProperties: false
      responses:
        '201':
          description: The updated operation hint state.
          content:
            application/json:
              schema:
                type: object
                properties:
                  cantonCommandId:
                    type:
                      - string
                      - 'null'
                  cantonUpdateId:
                    description: >-
                      The ledger update that completed the operation, when it is
                      the only operation that update completed. Always null for
                      swap.execute operations of trade orders and user-signed
                      trades: their status follows the order or trade
                      (submitted, confirmed, rejected, cancelled, expired) and
                      the update id, offset and record time are in
                      result.ledgerExecution, since one batch-fill update
                      settles many orders.
                    type:
                      - string
                      - 'null'
                  completedAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: 'null'
                  correlationId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  createdAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  error:
                    anyOf:
                      - type: object
                        properties:
                          code:
                            type: string
                          message:
                            type:
                              - string
                              - 'null'
                        required:
                          - code
                          - message
                        additionalProperties: false
                      - type: 'null'
                  expiresAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: 'null'
                  id:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  networkId:
                    type: string
                    pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                  result:
                    anyOf:
                      - anyOf:
                          - type: object
                            properties:
                              ledgerPreparation:
                                type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - application-submission
                                      - interactive-submission
                                      - wallet-submission
                                  commandId:
                                    type: string
                                    minLength: 1
                                    maxLength: 255
                                  actAs:
                                    minItems: 1
                                    maxItems: 8
                                    type: array
                                    items:
                                      type: string
                                      minLength: 1
                                      maxLength: 512
                                  synchronizerId:
                                    type: string
                                    minLength: 1
                                    maxLength: 512
                                  hashingSchemeVersion:
                                    type: string
                                    minLength: 1
                                    maxLength: 64
                                  preparedAt:
                                    type: string
                                    format: date-time
                                    pattern: >-
                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                  signedBy:
                                    anyOf:
                                      - type: string
                                        minLength: 4
                                        maxLength: 160
                                      - type: 'null'
                                  preparedTransaction:
                                    anyOf:
                                      - type: string
                                        maxLength: 4194304
                                      - type: 'null'
                                  preparedTransactionHash:
                                    anyOf:
                                      - type: string
                                        maxLength: 512
                                      - type: 'null'
                                  applicationChoice:
                                    anyOf:
                                      - type: object
                                        propertyNames:
                                          type: string
                                        additionalProperties: {}
                                      - type: 'null'
                                  applicationPolicy:
                                    anyOf:
                                      - type: object
                                        propertyNames:
                                          type: string
                                        additionalProperties: {}
                                      - type: 'null'
                                  disclosedContracts:
                                    anyOf:
                                      - maxItems: 64
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            contractId:
                                              type: string
                                              minLength: 1
                                              maxLength: 255
                                            createdEventBlob:
                                              type: string
                                              minLength: 1
                                            synchronizerId:
                                              type: string
                                              minLength: 1
                                              maxLength: 512
                                            templateId:
                                              type: string
                                              minLength: 1
                                              maxLength: 255
                                          required:
                                            - contractId
                                            - createdEventBlob
                                            - synchronizerId
                                            - templateId
                                          additionalProperties: false
                                      - type: 'null'
                                  submissionAttempt:
                                    anyOf:
                                      - type: object
                                        properties:
                                          submissionId:
                                            type: string
                                            minLength: 1
                                            maxLength: 255
                                          beginExclusive:
                                            type: integer
                                            minimum: 0
                                            maximum: 9007199254740991
                                          startedAt:
                                            type: string
                                            format: date-time
                                            pattern: >-
                                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                        required:
                                          - submissionId
                                          - beginExclusive
                                          - startedAt
                                        additionalProperties: false
                                      - type: 'null'
                                required:
                                  - kind
                                  - commandId
                                  - actAs
                                  - synchronizerId
                                  - hashingSchemeVersion
                                  - preparedAt
                                  - signedBy
                                  - preparedTransaction
                                  - preparedTransactionHash
                                  - applicationChoice
                                  - applicationPolicy
                                  - submissionAttempt
                                additionalProperties: false
                            required:
                              - ledgerPreparation
                            additionalProperties: false
                          - type: object
                            properties:
                              ledgerExecution:
                                type: object
                                properties:
                                  updateId:
                                    type: string
                                    minLength: 1
                                    maxLength: 255
                                  offset:
                                    type: string
                                    minLength: 1
                                    maxLength: 64
                                  recordTime:
                                    anyOf:
                                      - type: string
                                        maxLength: 64
                                      - type: 'null'
                                  synchronizerId:
                                    anyOf:
                                      - type: string
                                        minLength: 1
                                        maxLength: 512
                                      - type: 'null'
                                  recovered:
                                    type: boolean
                                  exercised:
                                    type: object
                                    propertyNames:
                                      type: string
                                    additionalProperties: {}
                                required:
                                  - updateId
                                  - offset
                                  - recordTime
                                  - synchronizerId
                                  - recovered
                                  - exercised
                                additionalProperties: false
                            required:
                              - ledgerExecution
                            additionalProperties: false
                          - type: object
                            properties:
                              walletReport:
                                type: object
                                properties:
                                  commandId:
                                    anyOf:
                                      - type: string
                                        minLength: 1
                                        maxLength: 512
                                      - type: 'null'
                                  errorCode:
                                    anyOf:
                                      - type: string
                                        minLength: 1
                                        maxLength: 128
                                      - type: 'null'
                                  reportedAt:
                                    type: string
                                    format: date-time
                                    pattern: >-
                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                  source:
                                    type: string
                                    const: wallet
                                  status:
                                    type: string
                                    enum:
                                      - submitted
                                      - rejected
                                  updateId:
                                    anyOf:
                                      - type: string
                                        minLength: 1
                                        maxLength: 512
                                      - type: 'null'
                                required:
                                  - commandId
                                  - errorCode
                                  - reportedAt
                                  - source
                                  - status
                                  - updateId
                                additionalProperties: false
                            required:
                              - walletReport
                            additionalProperties: false
                          - type: object
                            properties:
                              confirmed:
                                type: boolean
                                const: true
                              execution:
                                type: string
                                const: simulated
                            required:
                              - confirmed
                              - execution
                            additionalProperties: false
                          - type: object
                            properties:
                              expiredAt:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              reason:
                                type: string
                                const: operation_deadline_elapsed
                            required:
                              - expiredAt
                              - reason
                            additionalProperties: false
                          - type: object
                            properties:
                              cancelledAt:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              reason:
                                type: string
                                enum:
                                  - account_closed_before_submission
                                  - order_cancelled
                            required:
                              - cancelledAt
                              - reason
                            additionalProperties: false
                      - type: 'null'
                    description: >-
                      Status-specific evidence: ledgerExecution (updateId,
                      offset, recordTime) for a confirmed operation,
                      ledgerPreparation while a signature is awaited, expiredAt
                      or cancelledAt for those terminal states, walletReport for
                      a wallet-reported outcome, else null.
                  status:
                    type: string
                    enum:
                      - received
                      - validating
                      - awaiting_signature
                      - ready
                      - submitted
                      - confirmed
                      - failed
                      - rejected
                      - expired
                      - cancelled
                  type:
                    type: string
                    minLength: 1
                    maxLength: 128
                  updatedAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                required:
                  - cantonCommandId
                  - cantonUpdateId
                  - completedAt
                  - correlationId
                  - createdAt
                  - error
                  - expiresAt
                  - id
                  - networkId
                  - result
                  - status
                  - type
                  - updatedAt
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No resource the caller may see matches the path.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: >-
        Record a wallet submission hint; ledger observation remains
        authoritative.
      tags:
        - operations
  /api/v1/operations/{operationId}/submit:
    post:
      operationId: OperationController_submit_v1
      parameters:
        - name: operationId
          required: true
          in: path
          schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                partySignatures:
                  type: object
                  properties:
                    signatures:
                      minItems: 1
                      maxItems: 2
                      type: array
                      items:
                        type: object
                        properties:
                          party:
                            type: string
                            minLength: 1
                            maxLength: 512
                          signatures:
                            minItems: 1
                            maxItems: 4
                            type: array
                            items:
                              type: object
                              properties:
                                signature:
                                  type: string
                                  minLength: 16
                                  maxLength: 8192
                                signedBy:
                                  type: string
                                  minLength: 4
                                  maxLength: 160
                                format:
                                  type: string
                                  const: SIGNATURE_FORMAT_RAW
                                signingAlgorithmSpec:
                                  type: string
                                  const: SIGNING_ALGORITHM_SPEC_ED25519
                              required:
                                - signature
                                - signedBy
                                - format
                                - signingAlgorithmSpec
                              additionalProperties: false
                        required:
                          - party
                          - signatures
                        additionalProperties: false
                  required:
                    - signatures
                  additionalProperties: false
                walletSubmission:
                  type: object
                  properties:
                    commandId:
                      type: string
                      minLength: 1
                      maxLength: 255
                    submissionId:
                      type: string
                      minLength: 1
                      maxLength: 255
                  required:
                    - commandId
                  additionalProperties: false
              additionalProperties: false
      responses:
        '201':
          description: The operation after ledger execution.
          content:
            application/json:
              schema:
                type: object
                properties:
                  cantonCommandId:
                    type:
                      - string
                      - 'null'
                  cantonUpdateId:
                    description: >-
                      The ledger update that completed the operation, when it is
                      the only operation that update completed. Always null for
                      swap.execute operations of trade orders and user-signed
                      trades: their status follows the order or trade
                      (submitted, confirmed, rejected, cancelled, expired) and
                      the update id, offset and record time are in
                      result.ledgerExecution, since one batch-fill update
                      settles many orders.
                    type:
                      - string
                      - 'null'
                  completedAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: 'null'
                  correlationId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  createdAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  error:
                    anyOf:
                      - type: object
                        properties:
                          code:
                            type: string
                          message:
                            type:
                              - string
                              - 'null'
                        required:
                          - code
                          - message
                        additionalProperties: false
                      - type: 'null'
                  expiresAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: 'null'
                  id:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  networkId:
                    type: string
                    pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                  result:
                    anyOf:
                      - anyOf:
                          - type: object
                            properties:
                              ledgerPreparation:
                                type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - application-submission
                                      - interactive-submission
                                      - wallet-submission
                                  commandId:
                                    type: string
                                    minLength: 1
                                    maxLength: 255
                                  actAs:
                                    minItems: 1
                                    maxItems: 8
                                    type: array
                                    items:
                                      type: string
                                      minLength: 1
                                      maxLength: 512
                                  synchronizerId:
                                    type: string
                                    minLength: 1
                                    maxLength: 512
                                  hashingSchemeVersion:
                                    type: string
                                    minLength: 1
                                    maxLength: 64
                                  preparedAt:
                                    type: string
                                    format: date-time
                                    pattern: >-
                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                  signedBy:
                                    anyOf:
                                      - type: string
                                        minLength: 4
                                        maxLength: 160
                                      - type: 'null'
                                  preparedTransaction:
                                    anyOf:
                                      - type: string
                                        maxLength: 4194304
                                      - type: 'null'
                                  preparedTransactionHash:
                                    anyOf:
                                      - type: string
                                        maxLength: 512
                                      - type: 'null'
                                  applicationChoice:
                                    anyOf:
                                      - type: object
                                        propertyNames:
                                          type: string
                                        additionalProperties: {}
                                      - type: 'null'
                                  applicationPolicy:
                                    anyOf:
                                      - type: object
                                        propertyNames:
                                          type: string
                                        additionalProperties: {}
                                      - type: 'null'
                                  disclosedContracts:
                                    anyOf:
                                      - maxItems: 64
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            contractId:
                                              type: string
                                              minLength: 1
                                              maxLength: 255
                                            createdEventBlob:
                                              type: string
                                              minLength: 1
                                            synchronizerId:
                                              type: string
                                              minLength: 1
                                              maxLength: 512
                                            templateId:
                                              type: string
                                              minLength: 1
                                              maxLength: 255
                                          required:
                                            - contractId
                                            - createdEventBlob
                                            - synchronizerId
                                            - templateId
                                          additionalProperties: false
                                      - type: 'null'
                                  submissionAttempt:
                                    anyOf:
                                      - type: object
                                        properties:
                                          submissionId:
                                            type: string
                                            minLength: 1
                                            maxLength: 255
                                          beginExclusive:
                                            type: integer
                                            minimum: 0
                                            maximum: 9007199254740991
                                          startedAt:
                                            type: string
                                            format: date-time
                                            pattern: >-
                                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                        required:
                                          - submissionId
                                          - beginExclusive
                                          - startedAt
                                        additionalProperties: false
                                      - type: 'null'
                                required:
                                  - kind
                                  - commandId
                                  - actAs
                                  - synchronizerId
                                  - hashingSchemeVersion
                                  - preparedAt
                                  - signedBy
                                  - preparedTransaction
                                  - preparedTransactionHash
                                  - applicationChoice
                                  - applicationPolicy
                                  - submissionAttempt
                                additionalProperties: false
                            required:
                              - ledgerPreparation
                            additionalProperties: false
                          - type: object
                            properties:
                              ledgerExecution:
                                type: object
                                properties:
                                  updateId:
                                    type: string
                                    minLength: 1
                                    maxLength: 255
                                  offset:
                                    type: string
                                    minLength: 1
                                    maxLength: 64
                                  recordTime:
                                    anyOf:
                                      - type: string
                                        maxLength: 64
                                      - type: 'null'
                                  synchronizerId:
                                    anyOf:
                                      - type: string
                                        minLength: 1
                                        maxLength: 512
                                      - type: 'null'
                                  recovered:
                                    type: boolean
                                  exercised:
                                    type: object
                                    propertyNames:
                                      type: string
                                    additionalProperties: {}
                                required:
                                  - updateId
                                  - offset
                                  - recordTime
                                  - synchronizerId
                                  - recovered
                                  - exercised
                                additionalProperties: false
                            required:
                              - ledgerExecution
                            additionalProperties: false
                          - type: object
                            properties:
                              walletReport:
                                type: object
                                properties:
                                  commandId:
                                    anyOf:
                                      - type: string
                                        minLength: 1
                                        maxLength: 512
                                      - type: 'null'
                                  errorCode:
                                    anyOf:
                                      - type: string
                                        minLength: 1
                                        maxLength: 128
                                      - type: 'null'
                                  reportedAt:
                                    type: string
                                    format: date-time
                                    pattern: >-
                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                  source:
                                    type: string
                                    const: wallet
                                  status:
                                    type: string
                                    enum:
                                      - submitted
                                      - rejected
                                  updateId:
                                    anyOf:
                                      - type: string
                                        minLength: 1
                                        maxLength: 512
                                      - type: 'null'
                                required:
                                  - commandId
                                  - errorCode
                                  - reportedAt
                                  - source
                                  - status
                                  - updateId
                                additionalProperties: false
                            required:
                              - walletReport
                            additionalProperties: false
                          - type: object
                            properties:
                              confirmed:
                                type: boolean
                                const: true
                              execution:
                                type: string
                                const: simulated
                            required:
                              - confirmed
                              - execution
                            additionalProperties: false
                          - type: object
                            properties:
                              expiredAt:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              reason:
                                type: string
                                const: operation_deadline_elapsed
                            required:
                              - expiredAt
                              - reason
                            additionalProperties: false
                          - type: object
                            properties:
                              cancelledAt:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              reason:
                                type: string
                                enum:
                                  - account_closed_before_submission
                                  - order_cancelled
                            required:
                              - cancelledAt
                              - reason
                            additionalProperties: false
                      - type: 'null'
                    description: >-
                      Status-specific evidence: ledgerExecution (updateId,
                      offset, recordTime) for a confirmed operation,
                      ledgerPreparation while a signature is awaited, expiredAt
                      or cancelledAt for those terminal states, walletReport for
                      a wallet-reported outcome, else null.
                  status:
                    type: string
                    enum:
                      - received
                      - validating
                      - awaiting_signature
                      - ready
                      - submitted
                      - confirmed
                      - failed
                      - rejected
                      - expired
                      - cancelled
                  type:
                    type: string
                    minLength: 1
                    maxLength: 128
                  updatedAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                required:
                  - cantonCommandId
                  - cantonUpdateId
                  - completedAt
                  - correlationId
                  - createdAt
                  - error
                  - expiresAt
                  - id
                  - networkId
                  - result
                  - status
                  - type
                  - updatedAt
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No resource the caller may see matches the path.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: >-
        Execute a prepared operation on the ledger with the wallet’s signatures
        (local ledger configuration only).
      tags:
        - operations
  /api/v1/tokens:
    get:
      operationId: SuperappMarketController_listTokens_v1
      parameters:
        - name: cursor
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 512
        - name: limit
          required: false
          in: query
          schema:
            default: 24
            type: integer
            minimum: 1
            maximum: 100
        - name: category
          required: false
          in: query
          schema:
            default: all
            type: string
            enum:
              - all
              - defi
              - payments
              - infrastructure
              - real_world_assets
              - capital_markets
              - stablecoins
              - identity_compliance
              - data_oracles
              - consumer
              - culture
              - other
        - name: instrumentAdmin
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 512
            description: >-
              Exact composite instrument admin; must be supplied with
              instrumentId.
        - name: instrumentId
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 512
            description: >-
              Exact composite instrument ID; must be supplied with
              instrumentAdmin.
        - name: maxMarketCap
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 80
            pattern: ^(?:0|[1-9]\d*)(?:\.\d+)?$
        - name: maxVolume24h
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 80
            pattern: ^(?:0|[1-9]\d*)(?:\.\d+)?$
        - name: minMarketCap
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 80
            pattern: ^(?:0|[1-9]\d*)(?:\.\d+)?$
        - name: minVolume24h
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 80
            pattern: ^(?:0|[1-9]\d*)(?:\.\d+)?$
        - name: nearEscapeOnly
          required: false
          in: query
          schema:
            type: boolean
        - name: lastBuyWithin
          required: false
          in: query
          schema:
            type: string
            enum:
              - 24h
              - 7d
            description: >-
              Only coins whose newest confirmed buy is inside this window,
              ending at the request time.
        - name: q
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 1100
        - name: ranking
          required: false
          in: query
          schema:
            type: string
            enum:
              - trending
              - top
              - latest
        - name: reviewedOnly
          required: false
          in: query
          schema:
            type: boolean
        - name: sort
          required: false
          in: query
          schema:
            type: string
            enum:
              - momentum
              - market_cap
              - price
              - change_24h
              - created_at
              - graduation
              - volume_24h
              - volume_7d
              - last_buy
        - name: stages
          required: false
          in: query
          schema:
            description: >-
              Comma-separated launch stages to include (ignition, near_escape,
              graduating, in_orbit). Graduated coins are in_orbit.
            type: string
            minLength: 1
            maxLength: 100
        - name: direction
          required: false
          in: query
          schema:
            default: descending
            type: string
            enum:
              - ascending
              - descending
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Public token discovery page.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        amm:
                          anyOf:
                            - type: object
                              properties:
                                ccReserve:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                feeRate:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                invariant:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                marginalPriceCcPerToken:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                                revision:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,18})$
                                tokenReserve:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              required:
                                - ccReserve
                                - feeRate
                                - invariant
                                - marginalPriceCcPerToken
                                - revision
                                - tokenReserve
                              additionalProperties: false
                            - type: 'null'
                        art:
                          type: string
                          enum:
                            - rings
                            - grid
                            - halo
                            - waves
                            - monolith
                            - comet
                        banner:
                          anyOf:
                            - anyOf:
                                - type: string
                                  maxLength: 2048
                                  format: uri
                                  description: >-
                                    Public navigation-only HTTPS URL with a DNS
                                    hostname; credentials, IP literals,
                                    localhost and private/local DNS suffixes are
                                    forbidden. This is not permission for
                                    server-side fetching.
                                  pattern: ^https://
                                - type: string
                                  minLength: 2
                                  maxLength: 2048
                            - type: 'null'
                        bannerMimeType:
                          anyOf:
                            - type: string
                              maxLength: 100
                            - type: 'null'
                        category:
                          type: string
                          enum:
                            - defi
                            - payments
                            - infrastructure
                            - real_world_assets
                            - capital_markets
                            - stablecoins
                            - identity_compliance
                            - data_oracles
                            - consumer
                            - culture
                            - other
                        change24h:
                          type: string
                          pattern: ^-?(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                        createdAt:
                          type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        creatorRevenue:
                          oneOf:
                            - type: object
                              properties:
                                eligibility:
                                  type: string
                                  const: eligible
                                policy:
                                  type: object
                                  properties:
                                    hash:
                                      type: string
                                      const: >-
                                        sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                                    id:
                                      type: string
                                      const: supanova-creator-revenue-policy
                                    version:
                                      type: string
                                      const: '1'
                                  required:
                                    - hash
                                    - id
                                    - version
                                  additionalProperties: false
                                reason:
                                  type: string
                                  const: accepted-policy-creator-route
                              required:
                                - eligibility
                                - policy
                                - reason
                              additionalProperties: false
                            - type: object
                              properties:
                                eligibility:
                                  type: string
                                  const: ineligible
                                policy:
                                  type: 'null'
                                reason:
                                  type: string
                                  enum:
                                    - legacy-no-policy
                                    - trader-cashback
                              required:
                                - eligibility
                                - policy
                                - reason
                              additionalProperties: false
                        creator:
                          type: string
                          minLength: 1
                          maxLength: 100
                        creatorHandle:
                          type: string
                          minLength: 1
                          maxLength: 100
                        creatorAvatarPresetId:
                          anyOf:
                            - type: string
                              enum:
                                - supanova-01
                                - supanova-02
                                - supanova-03
                                - supanova-04
                                - supanova-05
                                - supanova-06
                                - supanova-07
                                - supanova-08
                                - supanova-09
                                - supanova-10
                                - supanova-11
                                - supanova-12
                            - type: 'null'
                        creatorAvatarUrl:
                          description: >-
                            Public token-scoped custom avatar image path;
                            version changes when the selected image changes.
                          anyOf:
                            - type: string
                              maxLength: 113
                              pattern: >-
                                ^\/api\/v1\/tokens\/[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?\/creator-avatar\?v=[a-f0-9]{16}$
                            - type: 'null'
                        description:
                          type: string
                          minLength: 1
                          maxLength: 2000
                        disclaimer:
                          type: string
                          minLength: 1
                          maxLength: 1000
                        docs:
                          anyOf:
                            - type: string
                              maxLength: 2048
                              format: uri
                              description: >-
                                Public navigation-only HTTPS URL with a DNS
                                hostname; credentials, IP literals, localhost
                                and private/local DNS suffixes are forbidden.
                                This is not permission for server-side fetching.
                              pattern: ^https://
                            - type: 'null'
                        fullyDilutedValue:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                        holderChange24h:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                        holders:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        id:
                          type: string
                          minLength: 1
                          maxLength: 100
                        image:
                          anyOf:
                            - anyOf:
                                - type: string
                                  maxLength: 2048
                                  format: uri
                                  description: >-
                                    Public navigation-only HTTPS URL with a DNS
                                    hostname; credentials, IP literals,
                                    localhost and private/local DNS suffixes are
                                    forbidden. This is not permission for
                                    server-side fetching.
                                  pattern: ^https://
                                - type: string
                                  minLength: 2
                                  maxLength: 2048
                            - type: 'null'
                        imageKind:
                          anyOf:
                            - type: string
                              enum:
                                - image
                                - video
                            - type: 'null'
                        imageMimeType:
                          anyOf:
                            - type: string
                              maxLength: 100
                            - type: 'null'
                        instrumentId:
                          type: object
                          properties:
                            admin:
                              type: string
                              minLength: 1
                              maxLength: 512
                            id:
                              type: string
                              minLength: 1
                              maxLength: 512
                          required:
                            - admin
                            - id
                          additionalProperties: false
                        lastBuyAt:
                          anyOf:
                            - type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                            - type: 'null'
                          description: >-
                            Ledger time of the newest confirmed buy. Null when
                            the coin has no buy on record
                            (meta.marketActivity.lastBuy is 'published') or when
                            the figure is not published.
                        launchProgress:
                          type: object
                          properties:
                            curveAllocation:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            graduationPercent:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            graduationThresholdCc:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            liquidityReserve:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            remainingCc:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            stage:
                              type: string
                              enum:
                                - ignition
                                - near_escape
                                - graduating
                                - in_orbit
                            supplyPolicy:
                              type: object
                              properties:
                                kind:
                                  type: string
                                  const: fixed
                                postCreationMinting:
                                  type: string
                                  const: disabled
                                version:
                                  type: string
                                  minLength: 1
                                  maxLength: 100
                              required:
                                - kind
                                - postCreationMinting
                                - version
                              additionalProperties: false
                            totalSupply:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          required:
                            - curveAllocation
                            - graduationPercent
                            - graduationThresholdCc
                            - liquidityReserve
                            - remainingCc
                            - stage
                            - supplyPolicy
                            - totalSupply
                          additionalProperties: false
                        marketCap:
                          anyOf:
                            - type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            - type: 'null'
                          description: >-
                            Fully diluted: price x launchProgress.totalSupply
                            (equals fullyDilutedValue).
                        name:
                          type: string
                          minLength: 1
                          maxLength: 100
                        palette:
                          type: array
                          minItems: 3
                          maxItems: 3
                          prefixItems:
                            - type: string
                              pattern: ^#[0-9a-f]{6}$
                            - type: string
                              pattern: ^#[0-9a-f]{6}$
                            - type: string
                              pattern: ^#[0-9a-f]{6}$
                        price:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                        pricePerMillionTokensCc:
                          description: >-
                            CC per million tokens, a display value; present for
                            curve-package tokens.
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                        raisedCc:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                        references:
                          maxItems: 20
                          type: array
                          items:
                            type: object
                            properties:
                              href:
                                type: string
                                maxLength: 2048
                                format: uri
                                description: >-
                                  Public navigation-only HTTPS URL with a DNS
                                  hostname; credentials, IP literals, localhost
                                  and private/local DNS suffixes are forbidden.
                                  This is not permission for server-side
                                  fetching.
                                pattern: ^https://
                              kind:
                                type: string
                                enum:
                                  - website
                                  - docs
                                  - x
                                  - telegram
                                  - discord
                                  - instagram
                                  - youtube
                                  - tiktok
                                  - research
                              label:
                                type: string
                                minLength: 1
                                maxLength: 100
                            required:
                              - href
                              - kind
                              - label
                            additionalProperties: false
                        rewardDestination:
                          type: string
                          enum:
                            - creator
                            - trader_cashback
                        slug:
                          type: string
                          minLength: 1
                          maxLength: 64
                        sparkline:
                          maxItems: 500
                          type: array
                          items:
                            type: string
                            pattern: ^-?(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                        tagline:
                          type: string
                          minLength: 1
                          maxLength: 200
                        ticker:
                          type: string
                          minLength: 1
                          maxLength: 16
                        tradeCount24h:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        verified:
                          type: boolean
                        volume24h:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                        volume7d:
                          anyOf:
                            - type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            - type: 'null'
                          description: >-
                            CC volume over meta.marketActivity.volume7d: "0"
                            when the coin had no fills, null when the figure is
                            not published.
                        website:
                          anyOf:
                            - type: string
                              maxLength: 2048
                              format: uri
                              description: >-
                                Public navigation-only HTTPS URL with a DNS
                                hostname; credentials, IP literals, localhost
                                and private/local DNS suffixes are forbidden.
                                This is not permission for server-side fetching.
                              pattern: ^https://
                            - type: 'null'
                        marketCapUsd:
                          anyOf:
                            - type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            - type: 'null'
                          description: >-
                            marketCap x meta.ccUsdQuote.rateUsdPerCc at
                            Decimal10; null without a quote.
                        priceUsd:
                          anyOf:
                            - type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                            - type: 'null'
                          description: >-
                            price x meta.ccUsdQuote.rateUsdPerCc, a display
                            value with significant digits; null without a quote.
                      required:
                        - art
                        - banner
                        - bannerMimeType
                        - category
                        - change24h
                        - createdAt
                        - creatorRevenue
                        - creator
                        - creatorHandle
                        - description
                        - disclaimer
                        - docs
                        - fullyDilutedValue
                        - holderChange24h
                        - holders
                        - id
                        - image
                        - imageKind
                        - imageMimeType
                        - instrumentId
                        - lastBuyAt
                        - launchProgress
                        - marketCap
                        - name
                        - palette
                        - price
                        - raisedCc
                        - references
                        - rewardDestination
                        - slug
                        - sparkline
                        - tagline
                        - ticker
                        - tradeCount24h
                        - verified
                        - volume24h
                        - volume7d
                        - website
                        - marketCapUsd
                        - priceUsd
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      provenance:
                        type: object
                        properties:
                          asOf:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          dataMode:
                            type: string
                            enum:
                              - projected
                              - simulated
                          disclaimer:
                            type: string
                            minLength: 1
                          label:
                            type: string
                            minLength: 1
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                          visibility:
                            type: string
                            enum:
                              - aggregated-from-entitled-views
                              - public-by-design
                        required:
                          - asOf
                          - dataMode
                          - disclaimer
                          - label
                          - networkId
                          - visibility
                        additionalProperties: false
                      schemaVersion:
                        type: string
                        const: '1'
                      ccUsdQuote:
                        anyOf:
                          - type: object
                            properties:
                              asOf:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                description: When this backend fetched the rate.
                              rateUsdPerCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                description: USD per CC.
                              roundNumber:
                                type: integer
                                minimum: 0
                                maximum: 9007199254740991
                              source:
                                type: string
                                minLength: 1
                                maxLength: 100
                              stale:
                                type: boolean
                            required:
                              - asOf
                              - rateUsdPerCc
                              - roundNumber
                              - source
                              - stale
                            additionalProperties: false
                          - type: 'null'
                      marketActivity:
                        anyOf:
                          - type: object
                            properties:
                              asOf:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                description: >-
                                  Every fill the participant query store held at
                                  this time is included.
                              lastBuy:
                                type: string
                                enum:
                                  - published
                                  - unavailable
                                description: >-
                                  'unavailable': lastBuyAt is null for every
                                  coin because it could not be read.
                              unit:
                                type: string
                                const: CC
                              volume24h:
                                type: object
                                properties:
                                  windowEnd:
                                    type: string
                                    format: date-time
                                    pattern: >-
                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                  windowStart:
                                    type: string
                                    format: date-time
                                    pattern: >-
                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                    description: >-
                                      An hour boundary; the window is whole
                                      hourly buckets.
                                required:
                                  - windowEnd
                                  - windowStart
                                additionalProperties: false
                              volume7d:
                                type: object
                                properties:
                                  windowEnd:
                                    type: string
                                    format: date-time
                                    pattern: >-
                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                  windowStart:
                                    type: string
                                    format: date-time
                                    pattern: >-
                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                    description: >-
                                      An hour boundary; the window is whole
                                      hourly buckets.
                                required:
                                  - windowEnd
                                  - windowStart
                                additionalProperties: false
                              volumeBasis:
                                type: string
                                const: net_reserve_change
                                description: >-
                                  Absolute change of the pool's net CC reserve
                                  per confirmed fill.
                            required:
                              - asOf
                              - lastBuy
                              - unit
                              - volume24h
                              - volume7d
                              - volumeBasis
                            additionalProperties: false
                          - type: 'null'
                        description: >-
                          Null when this source does not publish lastBuyAt and
                          volume7d.
                    required:
                      - provenance
                      - schemaVersion
                      - ccUsdQuote
                      - marketActivity
                    additionalProperties: false
                  page:
                    type: object
                    properties:
                      hasMore:
                        type: boolean
                      limit:
                        type: integer
                        minimum: 1
                        maximum: 100
                      nextCursor:
                        type:
                          - string
                          - 'null'
                      total:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                    required:
                      - hasMore
                      - limit
                      - nextCursor
                      - total
                    additionalProperties: false
                required:
                  - items
                  - meta
                  - page
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            Invalid filters, ordering, or cursor. Also: `VALIDATION_FAILED`,
            `AMBIGUOUS_CREDENTIALS`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `API_KEY_INVALID`, `API_KEY_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes:
            `API_KEY_IP_NOT_ALLOWED`, `PRODUCT_ACCOUNT_RESTRICTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: The stage projection is not configured.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - {}
        - apiKey: []
      summary: Discover public Supanova launch tokens.
      tags:
        - superapp tokens
      x-api-key-scope: read
  /api/v1/tokens/summary:
    get:
      operationId: SuperappMarketController_getSummary_v1
      parameters:
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Public launch-market summary.
          content:
            application/json:
              schema:
                type: object
                properties:
                  item:
                    type: object
                    properties:
                      holderPositions:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      marketCapCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      publishedMarketCapCount:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      stages:
                        type: object
                        properties:
                          graduating:
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          ignition:
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          inOrbit:
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          nearEscape:
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                        required:
                          - graduating
                          - ignition
                          - inOrbit
                          - nearEscape
                        additionalProperties: false
                      tokenCount:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      tradeCount24h:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      volume24hCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                    required:
                      - holderPositions
                      - marketCapCc
                      - publishedMarketCapCount
                      - stages
                      - tokenCount
                      - tradeCount24h
                      - volume24hCc
                    additionalProperties: false
                  meta:
                    type: object
                    properties:
                      provenance:
                        type: object
                        properties:
                          asOf:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          dataMode:
                            type: string
                            enum:
                              - projected
                              - simulated
                          disclaimer:
                            type: string
                            minLength: 1
                          label:
                            type: string
                            minLength: 1
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                          visibility:
                            type: string
                            enum:
                              - aggregated-from-entitled-views
                              - public-by-design
                        required:
                          - asOf
                          - dataMode
                          - disclaimer
                          - label
                          - networkId
                          - visibility
                        additionalProperties: false
                      schemaVersion:
                        type: string
                        const: '1'
                    required:
                      - provenance
                      - schemaVersion
                    additionalProperties: false
                required:
                  - item
                  - meta
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `AMBIGUOUS_CREDENTIALS`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `API_KEY_INVALID`, `API_KEY_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes:
            `API_KEY_IP_NOT_ALLOWED`, `PRODUCT_ACCOUNT_RESTRICTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: The stage projection is not configured.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - {}
        - apiKey: []
      summary: Get public Supanova launch-market aggregate counters.
      tags:
        - superapp tokens
      x-api-key-scope: read
  /api/v1/tokens/categories:
    get:
      operationId: SuperappMarketController_getTaxonomy_v1
      parameters:
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Canonical product taxonomy.
          content:
            application/json:
              schema:
                type: object
                properties:
                  categories:
                    type: array
                    items:
                      type: object
                      properties:
                        description:
                          type: string
                          minLength: 1
                          maxLength: 500
                        id:
                          type: string
                          enum:
                            - defi
                            - payments
                            - infrastructure
                            - real_world_assets
                            - capital_markets
                            - stablecoins
                            - identity_compliance
                            - data_oracles
                            - consumer
                            - culture
                            - other
                        label:
                          type: string
                          minLength: 1
                          maxLength: 100
                      required:
                        - description
                        - id
                        - label
                      additionalProperties: false
                  schemaVersion:
                    type: string
                    const: '1'
                required:
                  - categories
                  - schemaVersion
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `AMBIGUOUS_CREDENTIALS`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `API_KEY_INVALID`, `API_KEY_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes:
            `API_KEY_IP_NOT_ALLOWED`, `PRODUCT_ACCOUNT_RESTRICTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - {}
        - apiKey: []
      summary: >-
        Get the canonical category dictionary used by discovery and coin
        creation.
      tags:
        - superapp tokens
      x-api-key-scope: read
  /api/v1/tokens/{slug}:
    get:
      operationId: SuperappMarketController_getToken_v1
      parameters:
        - name: slug
          required: true
          in: path
          schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Public launch token detail.
          content:
            application/json:
              schema:
                type: object
                properties:
                  item:
                    type: object
                    properties:
                      amm:
                        anyOf:
                          - type: object
                            properties:
                              ccReserve:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              feeRate:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              invariant:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              marginalPriceCcPerToken:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                              revision:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,18})$
                              tokenReserve:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            required:
                              - ccReserve
                              - feeRate
                              - invariant
                              - marginalPriceCcPerToken
                              - revision
                              - tokenReserve
                            additionalProperties: false
                          - type: 'null'
                      art:
                        type: string
                        enum:
                          - rings
                          - grid
                          - halo
                          - waves
                          - monolith
                          - comet
                      banner:
                        anyOf:
                          - anyOf:
                              - type: string
                                maxLength: 2048
                                format: uri
                                description: >-
                                  Public navigation-only HTTPS URL with a DNS
                                  hostname; credentials, IP literals, localhost
                                  and private/local DNS suffixes are forbidden.
                                  This is not permission for server-side
                                  fetching.
                                pattern: ^https://
                              - type: string
                                minLength: 2
                                maxLength: 2048
                          - type: 'null'
                      bannerMimeType:
                        anyOf:
                          - type: string
                            maxLength: 100
                          - type: 'null'
                      category:
                        type: string
                        enum:
                          - defi
                          - payments
                          - infrastructure
                          - real_world_assets
                          - capital_markets
                          - stablecoins
                          - identity_compliance
                          - data_oracles
                          - consumer
                          - culture
                          - other
                      change24h:
                        type: string
                        pattern: ^-?(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      createdAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      creatorRevenue:
                        oneOf:
                          - type: object
                            properties:
                              eligibility:
                                type: string
                                const: eligible
                              policy:
                                type: object
                                properties:
                                  hash:
                                    type: string
                                    const: >-
                                      sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                                  id:
                                    type: string
                                    const: supanova-creator-revenue-policy
                                  version:
                                    type: string
                                    const: '1'
                                required:
                                  - hash
                                  - id
                                  - version
                                additionalProperties: false
                              reason:
                                type: string
                                const: accepted-policy-creator-route
                            required:
                              - eligibility
                              - policy
                              - reason
                            additionalProperties: false
                          - type: object
                            properties:
                              eligibility:
                                type: string
                                const: ineligible
                              policy:
                                type: 'null'
                              reason:
                                type: string
                                enum:
                                  - legacy-no-policy
                                  - trader-cashback
                            required:
                              - eligibility
                              - policy
                              - reason
                            additionalProperties: false
                      creator:
                        type: string
                        minLength: 1
                        maxLength: 100
                      creatorHandle:
                        type: string
                        minLength: 1
                        maxLength: 100
                      creatorAvatarPresetId:
                        anyOf:
                          - type: string
                            enum:
                              - supanova-01
                              - supanova-02
                              - supanova-03
                              - supanova-04
                              - supanova-05
                              - supanova-06
                              - supanova-07
                              - supanova-08
                              - supanova-09
                              - supanova-10
                              - supanova-11
                              - supanova-12
                          - type: 'null'
                      creatorAvatarUrl:
                        description: >-
                          Public token-scoped custom avatar image path; version
                          changes when the selected image changes.
                        anyOf:
                          - type: string
                            maxLength: 113
                            pattern: >-
                              ^\/api\/v1\/tokens\/[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?\/creator-avatar\?v=[a-f0-9]{16}$
                          - type: 'null'
                      description:
                        type: string
                        minLength: 1
                        maxLength: 2000
                      disclaimer:
                        type: string
                        minLength: 1
                        maxLength: 1000
                      docs:
                        anyOf:
                          - type: string
                            maxLength: 2048
                            format: uri
                            description: >-
                              Public navigation-only HTTPS URL with a DNS
                              hostname; credentials, IP literals, localhost and
                              private/local DNS suffixes are forbidden. This is
                              not permission for server-side fetching.
                            pattern: ^https://
                          - type: 'null'
                      fullyDilutedValue:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      holderChange24h:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      holders:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      id:
                        type: string
                        minLength: 1
                        maxLength: 100
                      image:
                        anyOf:
                          - anyOf:
                              - type: string
                                maxLength: 2048
                                format: uri
                                description: >-
                                  Public navigation-only HTTPS URL with a DNS
                                  hostname; credentials, IP literals, localhost
                                  and private/local DNS suffixes are forbidden.
                                  This is not permission for server-side
                                  fetching.
                                pattern: ^https://
                              - type: string
                                minLength: 2
                                maxLength: 2048
                          - type: 'null'
                      imageKind:
                        anyOf:
                          - type: string
                            enum:
                              - image
                              - video
                          - type: 'null'
                      imageMimeType:
                        anyOf:
                          - type: string
                            maxLength: 100
                          - type: 'null'
                      instrumentId:
                        type: object
                        properties:
                          admin:
                            type: string
                            minLength: 1
                            maxLength: 512
                          id:
                            type: string
                            minLength: 1
                            maxLength: 512
                        required:
                          - admin
                          - id
                        additionalProperties: false
                      lastBuyAt:
                        anyOf:
                          - type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          - type: 'null'
                        description: >-
                          Ledger time of the newest confirmed buy. Null when the
                          coin has no buy on record (meta.marketActivity.lastBuy
                          is 'published') or when the figure is not published.
                      launchProgress:
                        type: object
                        properties:
                          curveAllocation:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          graduationPercent:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          graduationThresholdCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          liquidityReserve:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          remainingCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          stage:
                            type: string
                            enum:
                              - ignition
                              - near_escape
                              - graduating
                              - in_orbit
                          supplyPolicy:
                            type: object
                            properties:
                              kind:
                                type: string
                                const: fixed
                              postCreationMinting:
                                type: string
                                const: disabled
                              version:
                                type: string
                                minLength: 1
                                maxLength: 100
                            required:
                              - kind
                              - postCreationMinting
                              - version
                            additionalProperties: false
                          totalSupply:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                        required:
                          - curveAllocation
                          - graduationPercent
                          - graduationThresholdCc
                          - liquidityReserve
                          - remainingCc
                          - stage
                          - supplyPolicy
                          - totalSupply
                        additionalProperties: false
                      marketCap:
                        anyOf:
                          - type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          - type: 'null'
                        description: >-
                          Fully diluted: price x launchProgress.totalSupply
                          (equals fullyDilutedValue).
                      name:
                        type: string
                        minLength: 1
                        maxLength: 100
                      palette:
                        type: array
                        minItems: 3
                        maxItems: 3
                        prefixItems:
                          - type: string
                            pattern: ^#[0-9a-f]{6}$
                          - type: string
                            pattern: ^#[0-9a-f]{6}$
                          - type: string
                            pattern: ^#[0-9a-f]{6}$
                      price:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                      pricePerMillionTokensCc:
                        description: >-
                          CC per million tokens, a display value; present for
                          curve-package tokens.
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                      raisedCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      references:
                        maxItems: 20
                        type: array
                        items:
                          type: object
                          properties:
                            href:
                              type: string
                              maxLength: 2048
                              format: uri
                              description: >-
                                Public navigation-only HTTPS URL with a DNS
                                hostname; credentials, IP literals, localhost
                                and private/local DNS suffixes are forbidden.
                                This is not permission for server-side fetching.
                              pattern: ^https://
                            kind:
                              type: string
                              enum:
                                - website
                                - docs
                                - x
                                - telegram
                                - discord
                                - instagram
                                - youtube
                                - tiktok
                                - research
                            label:
                              type: string
                              minLength: 1
                              maxLength: 100
                          required:
                            - href
                            - kind
                            - label
                          additionalProperties: false
                      rewardDestination:
                        type: string
                        enum:
                          - creator
                          - trader_cashback
                      slug:
                        type: string
                        minLength: 1
                        maxLength: 64
                      sparkline:
                        maxItems: 500
                        type: array
                        items:
                          type: string
                          pattern: ^-?(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                      tagline:
                        type: string
                        minLength: 1
                        maxLength: 200
                      ticker:
                        type: string
                        minLength: 1
                        maxLength: 16
                      tradeCount24h:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      verified:
                        type: boolean
                      volume24h:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      volume7d:
                        anyOf:
                          - type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          - type: 'null'
                        description: >-
                          CC volume over meta.marketActivity.volume7d: "0" when
                          the coin had no fills, null when the figure is not
                          published.
                      website:
                        anyOf:
                          - type: string
                            maxLength: 2048
                            format: uri
                            description: >-
                              Public navigation-only HTTPS URL with a DNS
                              hostname; credentials, IP literals, localhost and
                              private/local DNS suffixes are forbidden. This is
                              not permission for server-side fetching.
                            pattern: ^https://
                          - type: 'null'
                      marketCapUsd:
                        anyOf:
                          - type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          - type: 'null'
                        description: >-
                          marketCap x meta.ccUsdQuote.rateUsdPerCc at Decimal10;
                          null without a quote.
                      priceUsd:
                        anyOf:
                          - type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                          - type: 'null'
                        description: >-
                          price x meta.ccUsdQuote.rateUsdPerCc, a display value
                          with significant digits; null without a quote.
                    required:
                      - art
                      - banner
                      - bannerMimeType
                      - category
                      - change24h
                      - createdAt
                      - creatorRevenue
                      - creator
                      - creatorHandle
                      - description
                      - disclaimer
                      - docs
                      - fullyDilutedValue
                      - holderChange24h
                      - holders
                      - id
                      - image
                      - imageKind
                      - imageMimeType
                      - instrumentId
                      - lastBuyAt
                      - launchProgress
                      - marketCap
                      - name
                      - palette
                      - price
                      - raisedCc
                      - references
                      - rewardDestination
                      - slug
                      - sparkline
                      - tagline
                      - ticker
                      - tradeCount24h
                      - verified
                      - volume24h
                      - volume7d
                      - website
                      - marketCapUsd
                      - priceUsd
                    additionalProperties: false
                  meta:
                    type: object
                    properties:
                      provenance:
                        type: object
                        properties:
                          asOf:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          dataMode:
                            type: string
                            enum:
                              - projected
                              - simulated
                          disclaimer:
                            type: string
                            minLength: 1
                          label:
                            type: string
                            minLength: 1
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                          visibility:
                            type: string
                            enum:
                              - aggregated-from-entitled-views
                              - public-by-design
                        required:
                          - asOf
                          - dataMode
                          - disclaimer
                          - label
                          - networkId
                          - visibility
                        additionalProperties: false
                      schemaVersion:
                        type: string
                        const: '1'
                      ccUsdQuote:
                        anyOf:
                          - type: object
                            properties:
                              asOf:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                description: When this backend fetched the rate.
                              rateUsdPerCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                description: USD per CC.
                              roundNumber:
                                type: integer
                                minimum: 0
                                maximum: 9007199254740991
                              source:
                                type: string
                                minLength: 1
                                maxLength: 100
                              stale:
                                type: boolean
                            required:
                              - asOf
                              - rateUsdPerCc
                              - roundNumber
                              - source
                              - stale
                            additionalProperties: false
                          - type: 'null'
                      marketActivity:
                        anyOf:
                          - type: object
                            properties:
                              asOf:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                description: >-
                                  Every fill the participant query store held at
                                  this time is included.
                              lastBuy:
                                type: string
                                enum:
                                  - published
                                  - unavailable
                                description: >-
                                  'unavailable': lastBuyAt is null for every
                                  coin because it could not be read.
                              unit:
                                type: string
                                const: CC
                              volume24h:
                                type: object
                                properties:
                                  windowEnd:
                                    type: string
                                    format: date-time
                                    pattern: >-
                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                  windowStart:
                                    type: string
                                    format: date-time
                                    pattern: >-
                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                    description: >-
                                      An hour boundary; the window is whole
                                      hourly buckets.
                                required:
                                  - windowEnd
                                  - windowStart
                                additionalProperties: false
                              volume7d:
                                type: object
                                properties:
                                  windowEnd:
                                    type: string
                                    format: date-time
                                    pattern: >-
                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                  windowStart:
                                    type: string
                                    format: date-time
                                    pattern: >-
                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                    description: >-
                                      An hour boundary; the window is whole
                                      hourly buckets.
                                required:
                                  - windowEnd
                                  - windowStart
                                additionalProperties: false
                              volumeBasis:
                                type: string
                                const: net_reserve_change
                                description: >-
                                  Absolute change of the pool's net CC reserve
                                  per confirmed fill.
                            required:
                              - asOf
                              - lastBuy
                              - unit
                              - volume24h
                              - volume7d
                              - volumeBasis
                            additionalProperties: false
                          - type: 'null'
                        description: >-
                          Null when this source does not publish lastBuyAt and
                          volume7d.
                    required:
                      - provenance
                      - schemaVersion
                      - ccUsdQuote
                      - marketActivity
                    additionalProperties: false
                required:
                  - item
                  - meta
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            Invalid token slug. Also: `VALIDATION_FAILED`,
            `AMBIGUOUS_CREDENTIALS`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `API_KEY_INVALID`, `API_KEY_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes:
            `API_KEY_IP_NOT_ALLOWED`, `PRODUCT_ACCOUNT_RESTRICTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: Token not found.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: The stage projection is not configured.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - {}
        - apiKey: []
      summary: Get one public launch token by slug.
      tags:
        - superapp tokens
      x-api-key-scope: read
  /api/v1/tokens/{slug}/candles:
    get:
      operationId: SuperappMarketController_getCandles_v1
      parameters:
        - name: slug
          required: true
          in: path
          schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
        - name: from
          required: false
          in: query
          schema:
            type: string
            format: date-time
            pattern: >-
              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        - name: interval
          required: false
          in: query
          schema:
            default: 1h
            type: string
            enum:
              - 1m
              - 5m
              - 1h
              - 4h
              - 1d
        - name: to
          required: false
          in: query
          schema:
            type: string
            format: date-time
            pattern: >-
              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Public candle projection.
          content:
            application/json:
              schema:
                type: object
                properties:
                  candles:
                    maxItems: 500
                    type: array
                    items:
                      type: object
                      properties:
                        close:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                        high:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                        low:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                        open:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                        time:
                          type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        volume:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      required:
                        - close
                        - high
                        - low
                        - open
                        - time
                        - volume
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      provenance:
                        type: object
                        properties:
                          asOf:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          dataMode:
                            type: string
                            enum:
                              - projected
                              - simulated
                          disclaimer:
                            type: string
                            minLength: 1
                          label:
                            type: string
                            minLength: 1
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                          visibility:
                            type: string
                            enum:
                              - aggregated-from-entitled-views
                              - public-by-design
                        required:
                          - asOf
                          - dataMode
                          - disclaimer
                          - label
                          - networkId
                          - visibility
                        additionalProperties: false
                      schemaVersion:
                        type: string
                        const: '1'
                    required:
                      - provenance
                      - schemaVersion
                    additionalProperties: false
                required:
                  - candles
                  - meta
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            Invalid token slug or candle window. Also: `VALIDATION_FAILED`,
            `AMBIGUOUS_CREDENTIALS`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `API_KEY_INVALID`, `API_KEY_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes:
            `API_KEY_IP_NOT_ALLOWED`, `PRODUCT_ACCOUNT_RESTRICTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: Token not found.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: The stage projection is not configured.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - {}
        - apiKey: []
      summary: Get bounded public CC-denominated candles for a token.
      tags:
        - superapp tokens
      x-api-key-scope: read
  /api/v1/tokens/{slug}/candles/usd:
    get:
      operationId: SuperappMarketController_getUsdCandles_v1
      parameters:
        - name: slug
          required: true
          in: path
          schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
        - name: from
          required: false
          in: query
          schema:
            type: string
            format: date-time
            pattern: >-
              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        - name: interval
          required: false
          in: query
          schema:
            default: 1h
            type: string
            enum:
              - 1m
              - 5m
              - 1h
              - 4h
              - 1d
        - name: to
          required: false
          in: query
          schema:
            type: string
            format: date-time
            pattern: >-
              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Public USD candle series.
          content:
            application/json:
              schema:
                type: object
                properties:
                  candles:
                    maxItems: 500
                    type: array
                    items:
                      type: object
                      properties:
                        close:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,60})?$
                        high:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,60})?$
                        low:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,60})?$
                        open:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,60})?$
                        time:
                          type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        volume:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          description: CC volume of the fills in the candle.
                        volumeUsd:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          description: >-
                            USD volume: each fill priced at the rate in effect
                            when it traded.
                      required:
                        - close
                        - high
                        - low
                        - open
                        - time
                        - volume
                        - volumeUsd
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      provenance:
                        type: object
                        properties:
                          asOf:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          dataMode:
                            type: string
                            enum:
                              - projected
                              - simulated
                          disclaimer:
                            type: string
                            minLength: 1
                          label:
                            type: string
                            minLength: 1
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                          visibility:
                            type: string
                            enum:
                              - aggregated-from-entitled-views
                              - public-by-design
                        required:
                          - asOf
                          - dataMode
                          - disclaimer
                          - label
                          - networkId
                          - visibility
                        additionalProperties: false
                      schemaVersion:
                        type: string
                        const: '1'
                      denomination:
                        type: string
                        const: USD
                      fx:
                        type: object
                        properties:
                          coverageStart:
                            anyOf:
                              - type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              - type: 'null'
                            description: >-
                              When the oldest observed round opened. No USD
                              value exists before it; nothing is back-filled
                              from a later quote. Null: no round observed yet.
                          rates:
                            maxItems: 5000
                            type: array
                            items:
                              type: object
                              properties:
                                effectiveAt:
                                  type: string
                                  format: date-time
                                  pattern: >-
                                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                  description: >-
                                    The round's opensAt: the rate applies from
                                    here until the next round opens.
                                rateUsdPerCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                  description: USD per CC (amuletPrice).
                                roundNumber:
                                  type: integer
                                  minimum: 0
                                  maximum: 9007199254740991
                              required:
                                - effectiveAt
                                - rateUsdPerCc
                                - roundNumber
                              additionalProperties: false
                            description: >-
                              The rate in effect at the series start, then every
                              rate change inside it.
                          source:
                            type: string
                            const: splice-open-mining-round
                            description: >-
                              Splice super validators amuletPrice; a validator
                              reference, not a traded price.
                          sourceDetail:
                            type: string
                            minLength: 1
                            maxLength: 100
                        required:
                          - coverageStart
                          - rates
                          - source
                          - sourceDetail
                        additionalProperties: false
                      marketCapBasis:
                        type: string
                        const: fully_diluted
                        description: >-
                          Market cap is the price times the fixed total supply
                          (supply.totalSupply).
                      method:
                        type: string
                        const: fill-and-rate-event-union
                        description: >-
                          Fills and rate changes walked in time order; each fill
                          converted at its own rate before OHLC aggregation; a
                          rate change alone emits a candle with zero volume.
                      seriesStart:
                        anyOf:
                          - type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          - type: 'null'
                        description: >-
                          First bucket covered: the requested window clipped to
                          fx.coverageStart.
                      supply:
                        anyOf:
                          - type: object
                            properties:
                              basis:
                                type: string
                                const: fixed-total-supply
                              totalSupply:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            required:
                              - basis
                              - totalSupply
                            additionalProperties: false
                          - type: 'null'
                        description: >-
                          Market cap at a candle: its USD price times this fixed
                          total supply.
                    required:
                      - provenance
                      - schemaVersion
                      - denomination
                      - fx
                      - marketCapBasis
                      - method
                      - seriesStart
                      - supply
                    additionalProperties: false
                required:
                  - candles
                  - meta
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            Invalid token slug or candle window. Also: `VALIDATION_FAILED`,
            `AMBIGUOUS_CREDENTIALS`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `API_KEY_INVALID`, `API_KEY_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes:
            `API_KEY_IP_NOT_ALLOWED`, `PRODUCT_ACCOUNT_RESTRICTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: Token not found.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: The stage projection or the CC/USD rate history is not configured.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - {}
        - apiKey: []
      summary: >-
        Get bounded public USD candles for a token: each fill at the CC/USD rate
        of its time, with rate changes as price events.
      tags:
        - superapp tokens
      x-api-key-scope: read
  /api/v1/tokens/{slug}/holders:
    get:
      operationId: SuperappMarketController_listHolders_v1
      parameters:
        - name: slug
          required: true
          in: path
          schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
        - name: cursor
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 512
        - name: limit
          required: false
          in: query
          schema:
            default: 24
            type: integer
            minimum: 1
            maximum: 100
        - name: q
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^[a-zA-Z0-9_-]+$
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Public holder projection page.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        avatarTone:
                          type: integer
                          minimum: 0
                          maximum: 5
                        entryMarketCapCc:
                          anyOf:
                            - type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            - type: 'null'
                        holderHint:
                          type: string
                          pattern: ^holder_[0-9a-f]{24}$
                        id:
                          type: string
                          minLength: 1
                          maxLength: 100
                        pnlPercent:
                          anyOf:
                            - type: string
                              pattern: ^-?(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            - type: 'null'
                        role:
                          type: string
                          enum:
                            - creator
                            - participant
                        supplyPercent:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                        tokenAmount:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      required:
                        - avatarTone
                        - entryMarketCapCc
                        - holderHint
                        - id
                        - pnlPercent
                        - role
                        - supplyPercent
                        - tokenAmount
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      provenance:
                        type: object
                        properties:
                          asOf:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          dataMode:
                            type: string
                            enum:
                              - projected
                              - simulated
                          disclaimer:
                            type: string
                            minLength: 1
                          label:
                            type: string
                            minLength: 1
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                          visibility:
                            type: string
                            enum:
                              - aggregated-from-entitled-views
                              - public-by-design
                        required:
                          - asOf
                          - dataMode
                          - disclaimer
                          - label
                          - networkId
                          - visibility
                        additionalProperties: false
                      schemaVersion:
                        type: string
                        const: '1'
                    required:
                      - provenance
                      - schemaVersion
                    additionalProperties: false
                  page:
                    type: object
                    properties:
                      hasMore:
                        type: boolean
                      limit:
                        type: integer
                        minimum: 1
                        maximum: 100
                      nextCursor:
                        type:
                          - string
                          - 'null'
                      total:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                    required:
                      - hasMore
                      - limit
                      - nextCursor
                      - total
                    additionalProperties: false
                required:
                  - items
                  - meta
                  - page
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            Invalid token slug or cursor. Also: `VALIDATION_FAILED`,
            `AMBIGUOUS_CREDENTIALS`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `API_KEY_INVALID`, `API_KEY_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes:
            `API_KEY_IP_NOT_ALLOWED`, `PRODUCT_ACCOUNT_RESTRICTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: Token not found.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: The stage projection is not configured.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - {}
        - apiKey: []
      summary: List publication-safe holder rows for a token.
      tags:
        - superapp tokens
      x-api-key-scope: read
  /api/v1/tokens/{slug}/trades:
    get:
      operationId: SuperappMarketController_listTrades_v1
      parameters:
        - name: slug
          required: true
          in: path
          schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
        - name: cursor
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 512
        - name: limit
          required: false
          in: query
          schema:
            default: 24
            type: integer
            minimum: 1
            maximum: 100
        - name: account
          required: false
          in: query
          schema:
            default: all
            description: >-
              'creator': only the launch creator's trades, over all of the
              token's trades.
            type: string
            enum:
              - all
              - creator
        - name: minNotionalCc
          required: false
          in: query
          schema:
            default: '0'
            type: string
            minLength: 1
            maxLength: 80
            pattern: ^(?:0|[1-9]\d*)(?:\.\d+)?$
        - name: q
          required: false
          in: query
          schema:
            description: >-
              Substring of a participantHint or publicReference. Searches only
              the newest 1,000 trades (of the creator with account=creator);
              page.search reports the window and page.total counts matches
              inside it.
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^[a-zA-Z0-9_-]+$
        - name: side
          required: false
          in: query
          schema:
            type: string
            enum:
              - buy
              - sell
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Public trade projection page.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        avatarTone:
                          type: integer
                          minimum: 0
                          maximum: 5
                        id:
                          type: string
                          minLength: 1
                          maxLength: 100
                          description: >-
                            Positional list key for this page only: it shifts as
                            new fills arrive. Use `publicReference` to identify
                            a trade.
                        isCreator:
                          type: boolean
                        notionalCc:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                        occurredAt:
                          type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        participantHint:
                          type: string
                          pattern: ^holder_[0-9a-f]{24}$
                        publicReference:
                          type: string
                          pattern: ^trade_ref_[0-9a-f]{32}$
                          description: >-
                            Stable public identifier of the trade; key,
                            deduplicate and link on this field.
                        side:
                          type: string
                          enum:
                            - buy
                            - sell
                        tokenAmount:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      required:
                        - avatarTone
                        - id
                        - isCreator
                        - notionalCc
                        - occurredAt
                        - participantHint
                        - publicReference
                        - side
                        - tokenAmount
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      provenance:
                        type: object
                        properties:
                          asOf:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          dataMode:
                            type: string
                            enum:
                              - projected
                              - simulated
                          disclaimer:
                            type: string
                            minLength: 1
                          label:
                            type: string
                            minLength: 1
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                          visibility:
                            type: string
                            enum:
                              - aggregated-from-entitled-views
                              - public-by-design
                        required:
                          - asOf
                          - dataMode
                          - disclaimer
                          - label
                          - networkId
                          - visibility
                        additionalProperties: false
                      schemaVersion:
                        type: string
                        const: '1'
                    required:
                      - provenance
                      - schemaVersion
                    additionalProperties: false
                  page:
                    type: object
                    properties:
                      hasMore:
                        type: boolean
                      limit:
                        type: integer
                        minimum: 1
                        maximum: 100
                      nextCursor:
                        type:
                          - string
                          - 'null'
                      total:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      search:
                        description: >-
                          Present only for a hint search (q): the search ran
                          over the newest scanLimit trades, and total counts the
                          matches inside that window, not over all trades.
                        type: object
                        properties:
                          scanLimit:
                            type: integer
                            exclusiveMinimum: 0
                            maximum: 9007199254740991
                            description: Most trades one search scans.
                          scanned:
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                            description: Trades scanned for this search.
                          truncated:
                            type: boolean
                            description: >-
                              True when older trades exist beyond the window;
                              matches there are not counted.
                        required:
                          - scanLimit
                          - scanned
                          - truncated
                        additionalProperties: false
                    required:
                      - hasMore
                      - limit
                      - nextCursor
                      - total
                    additionalProperties: false
                required:
                  - items
                  - meta
                  - page
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            Invalid token slug, filters, or cursor. Also: `VALIDATION_FAILED`,
            `AMBIGUOUS_CREDENTIALS`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `API_KEY_INVALID`, `API_KEY_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes:
            `API_KEY_IP_NOT_ALLOWED`, `PRODUCT_ACCOUNT_RESTRICTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: Token not found.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: The stage projection is not configured.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - {}
        - apiKey: []
      summary: List publication-safe public trades for a token.
      tags:
        - superapp tokens
      x-api-key-scope: read
  /api/v1/tokens/{slug}/creator-avatar:
    get:
      operationId: PublicCreatorAvatarController_getAvatar_v1
      parameters:
        - name: slug
          required: true
          in: path
          schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
        - name: v
          required: false
          in: query
          schema:
            type: string
            pattern: ^[a-f0-9]{16}$
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: >-
            Current scanned creator image. Private storage keys and signed URLs
            are never returned.
          headers:
            Cache-Control:
              schema:
                type: string
                enum:
                  - no-store
            Cross-Origin-Resource-Policy:
              schema:
                type: string
                enum:
                  - cross-origin
            X-Content-Type-Options:
              schema:
                type: string
                enum:
                  - nosniff
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            image/png:
              schema:
                type: string
                format: binary
            image/jpeg:
              schema:
                type: string
                format: binary
            image/webp:
              schema:
                type: string
                format: binary
        '400':
          description: 'Invalid token slug or avatar version. Also: `VALIDATION_FAILED`.'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: The creator has no current published custom avatar.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: Image storage is unavailable.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security: []
      summary: Read a confirmed token creator's current published avatar.
      tags:
        - superapp tokens
  /api/v1/me/session:
    delete:
      operationId: IdentityController_revokeCurrentSession_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: >-
            The durable local session-revocation receipt. The client must still
            complete Privy logout.
          content:
            application/json:
              schema:
                type: object
                properties:
                  mode:
                    type: string
                    enum:
                      - persistent
                      - simulated
                  provider:
                    type: string
                    const: privy
                  providerLogoutRequired:
                    type: boolean
                    const: true
                  revokedAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                required:
                  - mode
                  - provider
                  - providerLogoutRequired
                  - revokedAt
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: >-
        Idempotently revoke the verified current Privy session before provider
        logout.
      tags:
        - identity
  /api/v1/me/legal-acceptance:
    get:
      operationId: IdentityController_legalAcceptanceStatus_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: >-
            The current policy and this profile’s exact version-bound acceptance
            status.
          content:
            application/json:
              schema:
                type: object
                properties:
                  accepted:
                    type: boolean
                  acceptedAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: 'null'
                  mode:
                    type: string
                    enum:
                      - persistent
                      - simulated
                  policy:
                    type: object
                    properties:
                      documents:
                        type: array
                        minItems: 3
                        maxItems: 3
                        prefixItems:
                          - type: object
                            properties:
                              action:
                                type: string
                                const: agree
                              digest:
                                type: string
                                const: >-
                                  sha256:ae3001c9110291ba6d97fe27343218a23ec93427ac7f7654e45e77b3fe08523d
                              slug:
                                type: string
                                const: terms
                            required:
                              - action
                              - digest
                              - slug
                            additionalProperties: false
                          - type: object
                            properties:
                              action:
                                type: string
                                const: acknowledge
                              digest:
                                type: string
                                const: >-
                                  sha256:5cdce14744e77bd382a30b10469918d64b556c62af995ab1c84601304446ab5f
                              slug:
                                type: string
                                const: privacy
                            required:
                              - action
                              - digest
                              - slug
                            additionalProperties: false
                          - type: object
                            properties:
                              action:
                                type: string
                                const: acknowledge
                              digest:
                                type: string
                                const: >-
                                  sha256:3d54b4c54d38211c9cb5b5789e97607bd7c49157f7cff5928d2e348c66d04c84
                              slug:
                                type: string
                                const: risk
                            required:
                              - action
                              - digest
                              - slug
                            additionalProperties: false
                      effectiveAt:
                        type: string
                        const: '2026-08-04T00:00:00.000Z'
                      id:
                        type: string
                        const: supanova-product-access-legal
                      legalApproval:
                        type: string
                        const: required-before-connected-release
                      reacceptance:
                        type: string
                        const: material-version-only
                      setDigest:
                        type: string
                        const: >-
                          sha256:b07f64b9f408addf88588d529535451f0421aadaecc665a5e461406597ce77b2
                      updatedAt:
                        type: string
                        const: '2026-08-12T00:00:00.000Z'
                      version:
                        type: string
                        const: '1'
                    required:
                      - documents
                      - effectiveAt
                      - id
                      - legalApproval
                      - reacceptance
                      - setDigest
                      - updatedAt
                      - version
                    additionalProperties: false
                required:
                  - accepted
                  - acceptedAt
                  - mode
                  - policy
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Return acceptance status for the current product legal policy.
      tags:
        - identity
    post:
      operationId: IdentityController_acceptLegalPolicy_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                accepted:
                  type: boolean
                  const: true
                documents:
                  type: array
                  minItems: 3
                  maxItems: 3
                  prefixItems:
                    - type: object
                      properties:
                        action:
                          type: string
                          const: agree
                        digest:
                          type: string
                          const: >-
                            sha256:ae3001c9110291ba6d97fe27343218a23ec93427ac7f7654e45e77b3fe08523d
                        slug:
                          type: string
                          const: terms
                      required:
                        - action
                        - digest
                        - slug
                      additionalProperties: false
                    - type: object
                      properties:
                        action:
                          type: string
                          const: acknowledge
                        digest:
                          type: string
                          const: >-
                            sha256:5cdce14744e77bd382a30b10469918d64b556c62af995ab1c84601304446ab5f
                        slug:
                          type: string
                          const: privacy
                      required:
                        - action
                        - digest
                        - slug
                      additionalProperties: false
                    - type: object
                      properties:
                        action:
                          type: string
                          const: acknowledge
                        digest:
                          type: string
                          const: >-
                            sha256:3d54b4c54d38211c9cb5b5789e97607bd7c49157f7cff5928d2e348c66d04c84
                        slug:
                          type: string
                          const: risk
                      required:
                        - action
                        - digest
                        - slug
                      additionalProperties: false
                policyId:
                  type: string
                  const: supanova-product-access-legal
                policySetDigest:
                  type: string
                  const: >-
                    sha256:b07f64b9f408addf88588d529535451f0421aadaecc665a5e461406597ce77b2
                policyVersion:
                  type: string
                  const: '1'
              required:
                - accepted
                - documents
                - policyId
                - policySetDigest
                - policyVersion
              additionalProperties: false
      responses:
        '200':
          description: The durable, server-timestamped acceptance status.
          content:
            application/json:
              schema:
                type: object
                properties:
                  accepted:
                    type: boolean
                  acceptedAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: 'null'
                  mode:
                    type: string
                    enum:
                      - persistent
                      - simulated
                  policy:
                    type: object
                    properties:
                      documents:
                        type: array
                        minItems: 3
                        maxItems: 3
                        prefixItems:
                          - type: object
                            properties:
                              action:
                                type: string
                                const: agree
                              digest:
                                type: string
                                const: >-
                                  sha256:ae3001c9110291ba6d97fe27343218a23ec93427ac7f7654e45e77b3fe08523d
                              slug:
                                type: string
                                const: terms
                            required:
                              - action
                              - digest
                              - slug
                            additionalProperties: false
                          - type: object
                            properties:
                              action:
                                type: string
                                const: acknowledge
                              digest:
                                type: string
                                const: >-
                                  sha256:5cdce14744e77bd382a30b10469918d64b556c62af995ab1c84601304446ab5f
                              slug:
                                type: string
                                const: privacy
                            required:
                              - action
                              - digest
                              - slug
                            additionalProperties: false
                          - type: object
                            properties:
                              action:
                                type: string
                                const: acknowledge
                              digest:
                                type: string
                                const: >-
                                  sha256:3d54b4c54d38211c9cb5b5789e97607bd7c49157f7cff5928d2e348c66d04c84
                              slug:
                                type: string
                                const: risk
                            required:
                              - action
                              - digest
                              - slug
                            additionalProperties: false
                      effectiveAt:
                        type: string
                        const: '2026-08-04T00:00:00.000Z'
                      id:
                        type: string
                        const: supanova-product-access-legal
                      legalApproval:
                        type: string
                        const: required-before-connected-release
                      reacceptance:
                        type: string
                        const: material-version-only
                      setDigest:
                        type: string
                        const: >-
                          sha256:b07f64b9f408addf88588d529535451f0421aadaecc665a5e461406597ce77b2
                      updatedAt:
                        type: string
                        const: '2026-08-12T00:00:00.000Z'
                      version:
                        type: string
                        const: '1'
                    required:
                      - documents
                      - effectiveAt
                      - id
                      - legalApproval
                      - reacceptance
                      - setDigest
                      - updatedAt
                      - version
                    additionalProperties: false
                required:
                  - accepted
                  - acceptedAt
                  - mode
                  - policy
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Idempotently accept the exact current Supanova product legal policy.
      tags:
        - identity
  /api/v1/me:
    get:
      operationId: IdentityController_getProfile_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: The current product profile.
          content:
            application/json:
              schema:
                type: object
                properties:
                  avatarPath:
                    type:
                      - string
                      - 'null'
                  avatarPresetId:
                    anyOf:
                      - type: string
                        enum:
                          - supanova-01
                          - supanova-02
                          - supanova-03
                          - supanova-04
                          - supanova-05
                          - supanova-06
                          - supanova-07
                          - supanova-08
                          - supanova-09
                          - supanova-10
                          - supanova-11
                          - supanova-12
                      - type: 'null'
                  createdAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  displayName:
                    anyOf:
                      - type: string
                        minLength: 2
                        maxLength: 32
                        pattern: ^[\p{L}\p{N} .']+$
                      - type: 'null'
                  email:
                    type:
                      - string
                      - 'null'
                  id:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  locale:
                    type: string
                  mode:
                    type: string
                    enum:
                      - mock
                      - persistent
                  policyVersion:
                    type: string
                    const: profile-identity-v2
                  profileComplete:
                    type: boolean
                  status:
                    type: string
                    enum:
                      - active
                      - restricted
                      - closed
                  timezone:
                    type: string
                  updatedAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  username:
                    anyOf:
                      - type: string
                        minLength: 3
                        maxLength: 24
                        pattern: ^[a-z][a-z0-9_]*$
                      - type: 'null'
                  usernameChangeAllowed:
                    type: boolean
                  usernameChangeAllowedAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: 'null'
                  usernameChangesRemaining:
                    type: integer
                    minimum: 0
                    maximum: 3
                  version:
                    type: string
                    pattern: ^[1-9]\d*$
                required:
                  - avatarPath
                  - avatarPresetId
                  - createdAt
                  - displayName
                  - email
                  - id
                  - locale
                  - mode
                  - policyVersion
                  - profileComplete
                  - status
                  - timezone
                  - updatedAt
                  - username
                  - usernameChangeAllowed
                  - usernameChangeAllowedAt
                  - usernameChangesRemaining
                  - version
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Return the authenticated Supanova profile.
      tags:
        - identity
    patch:
      operationId: IdentityController_updateProfile_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                avatarPath:
                  anyOf:
                    - type: string
                      minLength: 1
                      maxLength: 512
                    - type: 'null'
                avatarPresetId:
                  anyOf:
                    - type: string
                      enum:
                        - supanova-01
                        - supanova-02
                        - supanova-03
                        - supanova-04
                        - supanova-05
                        - supanova-06
                        - supanova-07
                        - supanova-08
                        - supanova-09
                        - supanova-10
                        - supanova-11
                        - supanova-12
                    - type: 'null'
                displayName:
                  type: string
                  minLength: 2
                  maxLength: 32
                  pattern: ^[\p{L}\p{N} .']+$
                expectedVersion:
                  type: string
                  pattern: ^[1-9]\d{0,19}$
                locale:
                  type: string
                  minLength: 2
                  maxLength: 16
                timezone:
                  type: string
                  minLength: 1
                  maxLength: 64
                username:
                  type: string
                  minLength: 3
                  maxLength: 24
                  pattern: ^[a-z][a-z0-9_]*$
              required:
                - expectedVersion
              additionalProperties: false
      responses:
        '200':
          description: The updated profile.
          content:
            application/json:
              schema:
                type: object
                properties:
                  avatarPath:
                    type:
                      - string
                      - 'null'
                  avatarPresetId:
                    anyOf:
                      - type: string
                        enum:
                          - supanova-01
                          - supanova-02
                          - supanova-03
                          - supanova-04
                          - supanova-05
                          - supanova-06
                          - supanova-07
                          - supanova-08
                          - supanova-09
                          - supanova-10
                          - supanova-11
                          - supanova-12
                      - type: 'null'
                  createdAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  displayName:
                    anyOf:
                      - type: string
                        minLength: 2
                        maxLength: 32
                        pattern: ^[\p{L}\p{N} .']+$
                      - type: 'null'
                  email:
                    type:
                      - string
                      - 'null'
                  id:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  locale:
                    type: string
                  mode:
                    type: string
                    enum:
                      - mock
                      - persistent
                  policyVersion:
                    type: string
                    const: profile-identity-v2
                  profileComplete:
                    type: boolean
                  status:
                    type: string
                    enum:
                      - active
                      - restricted
                      - closed
                  timezone:
                    type: string
                  updatedAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  username:
                    anyOf:
                      - type: string
                        minLength: 3
                        maxLength: 24
                        pattern: ^[a-z][a-z0-9_]*$
                      - type: 'null'
                  usernameChangeAllowed:
                    type: boolean
                  usernameChangeAllowedAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: 'null'
                  usernameChangesRemaining:
                    type: integer
                    minimum: 0
                    maximum: 3
                  version:
                    type: string
                    pattern: ^[1-9]\d*$
                required:
                  - avatarPath
                  - avatarPresetId
                  - createdAt
                  - displayName
                  - email
                  - id
                  - locale
                  - mode
                  - policyVersion
                  - profileComplete
                  - status
                  - timezone
                  - updatedAt
                  - username
                  - usernameChangeAllowed
                  - usernameChangeAllowedAt
                  - usernameChangesRemaining
                  - version
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Atomically update presentation-only profile fields.
      tags:
        - identity
  /api/v1/me/username-availability:
    post:
      operationId: IdentityController_usernameAvailability_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                username:
                  type: string
                  maxLength: 128
              required:
                - username
              additionalProperties: false
      responses:
        '200':
          description: >-
            Advisory availability; PATCH /me resolves concurrent claims
            authoritatively.
          content:
            application/json:
              schema:
                type: object
                properties:
                  available:
                    type: boolean
                  policyVersion:
                    type: string
                    const: profile-identity-v2
                  reason:
                    type: string
                    enum:
                      - available
                      - current
                      - invalid_format
                      - invalid_length
                      - reserved
                      - taken
                  username:
                    type: string
                required:
                  - available
                  - policyVersion
                  - reason
                  - username
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Check normalized username availability without reserving the name.
      tags:
        - identity
  /api/v1/me/account-closure:
    post:
      operationId: IdentityController_closeAccount_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                confirmation:
                  type: string
                  const: CLOSE MY SUPANOVA ACCOUNT
              required:
                - confirmation
              additionalProperties: false
      responses:
        '200':
          description: The durable account-closure receipt.
          content:
            application/json:
              schema:
                type: object
                properties:
                  closedAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                  dataMode:
                    type: string
                    const: persistent
                  retainedRecords:
                    type: array
                    items:
                      type: string
                      enum:
                        - financial
                        - launch
                        - security
                        - audit
                  status:
                    type: string
                    const: closed
                required:
                  - closedAt
                  - dataMode
                  - retainedRecords
                  - status
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            Durable account closure requires PostgreSQL. Also:
            `AUTHENTICATION_UNAVAILABLE`, `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Irreversibly close the product account and clear presentation data.
      tags:
        - identity
  /api/v1/me/wallets:
    get:
      operationId: IdentityController_listWallets_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Owned wallet connections.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    cantonPartyId:
                      type: string
                    id:
                      type: string
                      format: uuid
                      pattern: >-
                        ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    isPrimary:
                      type: boolean
                    label:
                      type:
                        - string
                        - 'null'
                    networkId:
                      type: string
                    status:
                      type: string
                    verifiedAt:
                      type:
                        - string
                        - 'null'
                    walletKind:
                      type: string
                    walletProvider:
                      type: string
                  required:
                    - cantonPartyId
                    - id
                    - isPrimary
                    - label
                    - networkId
                    - status
                    - verifiedAt
                    - walletKind
                    - walletProvider
                  additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: List wallet-neutral Canton Party connections.
      tags:
        - identity
  /api/v1/me/wallets/{connectionId}:
    patch:
      operationId: IdentityController_updateWallet_v1
      parameters:
        - name: connectionId
          required: true
          in: path
          schema:
            format: uuid
            type: string
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                label:
                  anyOf:
                    - type: string
                      minLength: 1
                      maxLength: 80
                    - type: 'null'
                makePrimary:
                  type: boolean
                  const: true
              additionalProperties: false
      responses:
        '200':
          description: The updated wallet connection.
          content:
            application/json:
              schema:
                type: object
                properties:
                  cantonPartyId:
                    type: string
                  id:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  isPrimary:
                    type: boolean
                  label:
                    type:
                      - string
                      - 'null'
                  networkId:
                    type: string
                  status:
                    type: string
                  verifiedAt:
                    type:
                      - string
                      - 'null'
                  walletKind:
                    type: string
                  walletProvider:
                    type: string
                required:
                  - cantonPartyId
                  - id
                  - isPrimary
                  - label
                  - networkId
                  - status
                  - verifiedAt
                  - walletKind
                  - walletProvider
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No resource the caller may see matches the path.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Update an owned wallet label or make it primary.
      tags:
        - identity
    delete:
      operationId: IdentityController_disconnectWallet_v1
      parameters:
        - name: connectionId
          required: true
          in: path
          schema:
            format: uuid
            type: string
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '204':
          description: Wallet connection disconnected.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No resource the caller may see matches the path.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Disconnect an owned wallet; reconnection requires a fresh proof.
      tags:
        - identity
  /api/v1/me/api-keys:
    get:
      operationId: ApiKeysController_list_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Your keys, newest first; never their secrets.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          pattern: ^[a-z2-7]{12}$
                        name:
                          type: string
                        environment:
                          type: string
                          enum:
                            - live
                            - test
                        scopes:
                          type: array
                          items:
                            type: string
                            enum:
                              - read
                              - trade
                              - withdraw
                        signed:
                          type: boolean
                        authorizedParty:
                          type:
                            - string
                            - 'null'
                        ipAllowlist:
                          type: array
                          items:
                            type: string
                        expiresAt:
                          anyOf:
                            - type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                            - type: 'null'
                        createdAt:
                          type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        lastUsedAt:
                          anyOf:
                            - type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                            - type: 'null'
                        revokedAt:
                          anyOf:
                            - type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                            - type: 'null'
                        status:
                          type: string
                          enum:
                            - active
                            - expired
                            - revoked
                      required:
                        - id
                        - name
                        - environment
                        - scopes
                        - signed
                        - authorizedParty
                        - ipAllowlist
                        - expiresAt
                        - createdAt
                        - lastUsedAt
                        - revokedAt
                        - status
                      additionalProperties: false
                  limits:
                    type: object
                    properties:
                      windowSeconds:
                        type: integer
                        exclusiveMinimum: 0
                        maximum: 9007199254740991
                      readPerWindow:
                        type: integer
                        exclusiveMinimum: 0
                        maximum: 9007199254740991
                      writePerWindow:
                        type: integer
                        exclusiveMinimum: 0
                        maximum: 9007199254740991
                      maxActiveKeys:
                        type: integer
                        exclusiveMinimum: 0
                        maximum: 9007199254740991
                      signatureWindowMs:
                        type: integer
                        exclusiveMinimum: 0
                        maximum: 9007199254740991
                    required:
                      - windowSeconds
                      - readPerWindow
                      - writePerWindow
                      - maxActiveKeys
                      - signatureWindowMs
                    additionalProperties: false
                required:
                  - items
                  - limits
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            Not an interactive session. Also: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`, `INTERACTIVE_SESSION_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: List your API keys and the limits that apply to them.
      tags:
        - api keys
    post:
      operationId: ApiKeysController_create_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 64
                scopes:
                  anyOf:
                    - type: array
                      minItems: 1
                      maxItems: 1
                      prefixItems:
                        - type: string
                          const: read
                    - type: array
                      minItems: 2
                      maxItems: 2
                      prefixItems:
                        - type: string
                          const: read
                        - type: string
                          const: trade
                signingPublicKey:
                  type: string
                  minLength: 43
                  maxLength: 88
                authorization:
                  type: object
                  properties:
                    challengeId:
                      type: string
                      format: uuid
                      pattern: >-
                        ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    message:
                      type: string
                      minLength: 1
                      maxLength: 4096
                    signature:
                      type: string
                      minLength: 1
                      maxLength: 512
                    publicKey:
                      type: string
                      minLength: 1
                      maxLength: 128
                  required:
                    - challengeId
                    - message
                    - signature
                    - publicKey
                  additionalProperties: false
                ipAllowlist:
                  default: []
                  maxItems: 16
                  type: array
                  items:
                    type: string
                    maxLength: 64
                expiresInDays:
                  type: integer
                  minimum: 1
                  maximum: 365
              required:
                - name
                - scopes
                - ipAllowlist
              additionalProperties: false
      responses:
        '201':
          description: The key and its one-time secret.
          content:
            application/json:
              schema:
                type: object
                properties:
                  key:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: ^[a-z2-7]{12}$
                      name:
                        type: string
                      environment:
                        type: string
                        enum:
                          - live
                          - test
                      scopes:
                        type: array
                        items:
                          type: string
                          enum:
                            - read
                            - trade
                            - withdraw
                      signed:
                        type: boolean
                      authorizedParty:
                        type:
                          - string
                          - 'null'
                      ipAllowlist:
                        type: array
                        items:
                          type: string
                      expiresAt:
                        anyOf:
                          - type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          - type: 'null'
                      createdAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      lastUsedAt:
                        anyOf:
                          - type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          - type: 'null'
                      revokedAt:
                        anyOf:
                          - type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          - type: 'null'
                      status:
                        type: string
                        enum:
                          - active
                          - expired
                          - revoked
                    required:
                      - id
                      - name
                      - environment
                      - scopes
                      - signed
                      - authorizedParty
                      - ipAllowlist
                      - expiresAt
                      - createdAt
                      - lastUsedAt
                      - revokedAt
                      - status
                    additionalProperties: false
                  secret:
                    type: string
                    pattern: ^sn_(live|test)_[a-z2-7]{12}_[A-Za-z0-9_-]{43}$
                required:
                  - key
                  - secret
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Not signed in. Also: `AUTHENTICATION_REQUIRED`,
            `INVALID_AUTHORIZATION_HEADER`, `INVALID_ACCESS_TOKEN`,
            `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            Not an interactive session, or a restricted account. Also:
            `ACCOUNT_RESTRICTED`, `ANONYMOUS_ACCOUNT_NOT_ALLOWED`,
            `API_KEY_ROUTE_NOT_ALLOWED`, `SERVICE_PARTY_NOT_ALLOWED`,
            `SERVICE_PRINCIPAL_NOT_ALLOWED`, `SIGNUP_NOT_INVITED`,
            `INTERACTIVE_SESSION_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '409':
          description: The per-account key limit is reached.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: >-
        Create an API key. The secret is returned once. A trade key needs an
        Ed25519 public key and a wallet-signed trade-key authorisation.
      tags:
        - api keys
  /api/v1/me/api-keys/trade-authorizations:
    post:
      operationId: ApiKeysController_authorizeTradeKey_v1
      parameters:
        - name: Origin
          in: header
          description: Exact browser origin.
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                walletConnectionId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                signingPublicKey:
                  type: string
                  minLength: 43
                  maxLength: 88
              required:
                - walletConnectionId
                - signingPublicKey
              additionalProperties: false
      responses:
        '201':
          description: Sign signingRequest.params.hash.
          content:
            application/json:
              schema:
                type: object
                properties:
                  challengeId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  expiresAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  message:
                    type: string
                  partyId:
                    type: string
                  signingRequest:
                    type: object
                    properties:
                      method:
                        type: string
                        const: signHash
                      params:
                        type: object
                        properties:
                          hash:
                            type: string
                          message:
                            type: string
                        required:
                          - hash
                          - message
                        additionalProperties: false
                      standard:
                        type: string
                    required:
                      - method
                      - params
                      - standard
                    additionalProperties: false
                required:
                  - challengeId
                  - expiresAt
                  - message
                  - partyId
                  - signingRequest
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            Not an interactive session. Also: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`, `INTERACTIVE_SESSION_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: >-
        Start a trade key: a 5-minute challenge that a bound Party’s wallet
        signs (signHash), naming the Ed25519 key the trade key will sign with.
      tags:
        - api keys
  /api/v1/me/api-keys/{keyId}:
    delete:
      operationId: ApiKeysController_revoke_v1
      parameters:
        - name: keyId
          required: true
          in: path
          schema:
            type: string
            pattern: ^[a-z2-7]{12}$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '204':
          description: Revoked.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`, `INTERACTIVE_SESSION_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No such active key of yours.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Revoke an API key. Takes effect within 5 seconds everywhere.
      tags:
        - api keys
  /api/v1/wallet/deposit-balance:
    get:
      operationId: DepositController_depositBalance_v1
      parameters:
        - name: walletConnectionId
          required: false
          in: query
          schema:
            format: uuid
            type: string
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: The deposit-model balance view.
          content:
            application/json:
              schema:
                type: object
                properties:
                  asOf:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  networkId:
                    type: string
                  partyId:
                    type: string
                  walletConnectionId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  depositBalance:
                    type: object
                    properties:
                      exists:
                        type: boolean
                      spendable:
                        type: string
                      withdrawable:
                        type: string
                      frozen:
                        type: boolean
                    required:
                      - exists
                      - spendable
                      - withdrawable
                      - frozen
                    additionalProperties: false
                  walletCc:
                    type: object
                    properties:
                      amount:
                        type:
                          - string
                          - 'null'
                      unavailableReason:
                        type: string
                        minLength: 1
                        maxLength: 64
                    required:
                      - amount
                    additionalProperties: false
                  pendingDeposits:
                    type: array
                    items:
                      type: object
                      properties:
                        depositId:
                          type: string
                          format: uuid
                          pattern: >-
                            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        amountCc:
                          type: string
                        status:
                          type: string
                          enum:
                            - transferring
                            - pending_accept
                            - accepted
                            - credited
                            - failed
                        initiatedAt:
                          type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      required:
                        - depositId
                        - amountCc
                        - status
                        - initiatedAt
                      additionalProperties: false
                  pendingWithdrawals:
                    type: array
                    items:
                      type: object
                      properties:
                        withdrawalId:
                          type: string
                          format: uuid
                          pattern: >-
                            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        amountCc:
                          type: string
                        status:
                          type: string
                          enum:
                            - awaiting_signature
                            - requesting
                            - requested
                            - paying
                            - pending_receiver_accept
                            - paid
                            - completed
                            - payout_failed
                            - cancelled
                            - failed
                        requestedAt:
                          type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      required:
                        - withdrawalId
                        - amountCc
                        - status
                        - requestedAt
                      additionalProperties: false
                required:
                  - asOf
                  - networkId
                  - partyId
                  - walletConnectionId
                  - depositBalance
                  - walletCc
                  - pendingDeposits
                  - pendingWithdrawals
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No verified wallet connection exists.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            Not a ledger-backed environment. Also: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Read the spendable deposit balance, wallet CC, and pending flows.
      tags:
        - deposit balance
  /api/v1/wallet/deposit-address:
    get:
      operationId: DepositController_depositAddress_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: The registrar deposit address.
          content:
            application/json:
              schema:
                type: object
                properties:
                  expectedCreditLatencySeconds:
                    type: integer
                    exclusiveMinimum: 0
                    maximum: 9007199254740991
                  networkId:
                    type: string
                  registrarPartyId:
                    type: string
                    minLength: 1
                  transferKind:
                    type: string
                    enum:
                      - offer+accept
                      - direct
                required:
                  - expectedCreditLatencySeconds
                  - networkId
                  - registrarPartyId
                  - transferKind
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            Not a ledger-backed environment. Also: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Where to send CC to fund trading (registrar Party).
      tags:
        - deposit balance
  /api/v1/wallet/deposits:
    post:
      operationId: DepositController_initiateDeposit_v1
      parameters:
        - name: Idempotency-Key
          in: header
          required: true
          schema:
            type: string
            minLength: 8
            maxLength: 256
            pattern: ^[A-Za-z0-9._:-]+$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                amountCc:
                  type: string
                  pattern: ^\d{1,28}(?:\.\d{1,10})?$
                walletConnectionId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              required:
                - amountCc
              additionalProperties: false
      responses:
        '201':
          description: The deposit saga; poll its status.
          content:
            application/json:
              schema:
                type: object
                properties:
                  depositId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  status:
                    type: string
                    enum:
                      - transferring
                      - pending_accept
                      - accepted
                      - credited
                      - failed
                  amountCc:
                    type: string
                  partyId:
                    type: string
                  createdAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  updatedAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  transfer:
                    anyOf:
                      - type: object
                        properties:
                          transferKind:
                            type: string
                          offerUpdateId:
                            type:
                              - string
                              - 'null'
                          acceptUpdateId:
                            type:
                              - string
                              - 'null'
                        required:
                          - transferKind
                          - offerUpdateId
                          - acceptUpdateId
                        additionalProperties: false
                      - type: 'null'
                  creditUpdateId:
                    type:
                      - string
                      - 'null'
                  error:
                    anyOf:
                      - type: object
                        properties:
                          code:
                            type: string
                          message:
                            type: string
                        required:
                          - code
                          - message
                        additionalProperties: false
                      - type: 'null'
                required:
                  - depositId
                  - status
                  - amountCc
                  - partyId
                  - createdAt
                  - updatedAt
                  - transfer
                  - creditUpdateId
                  - error
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            Malformed amount or missing Idempotency-Key. Also:
            `VALIDATION_FAILED`, `IDEMPOTENCY_KEY_REQUIRED`,
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No verified wallet connection exists.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '409':
          description: >-
            The request conflicts with current state, or the Idempotency-Key was
            reused with a different request (`IDEMPOTENCY_KEY_CONFLICT`; the
            former `IDEMPOTENCY_CONFLICT` is a deprecated alias, no longer
            returned, that clients handle the same way for one release). Codes:
            `IDEMPOTENCY_KEY_CONFLICT`, `IDEMPOTENCY_CONFLICT`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '422':
          description: The wallet holds too little CC.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            The ledger or scan proxy is unavailable. Also:
            `AUTHENTICATION_UNAVAILABLE`, `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Initiate a real-CC deposit into the trading balance.
      tags:
        - deposit balance
  /api/v1/wallet/deposits/{depositId}:
    get:
      operationId: DepositController_depositStatus_v1
      parameters:
        - name: depositId
          required: true
          in: path
          schema:
            format: uuid
            type: string
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: The deposit with its intermediate state.
          content:
            application/json:
              schema:
                type: object
                properties:
                  depositId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  status:
                    type: string
                    enum:
                      - transferring
                      - pending_accept
                      - accepted
                      - credited
                      - failed
                  amountCc:
                    type: string
                  partyId:
                    type: string
                  createdAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  updatedAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  transfer:
                    anyOf:
                      - type: object
                        properties:
                          transferKind:
                            type: string
                          offerUpdateId:
                            type:
                              - string
                              - 'null'
                          acceptUpdateId:
                            type:
                              - string
                              - 'null'
                        required:
                          - transferKind
                          - offerUpdateId
                          - acceptUpdateId
                        additionalProperties: false
                      - type: 'null'
                  creditUpdateId:
                    type:
                      - string
                      - 'null'
                  error:
                    anyOf:
                      - type: object
                        properties:
                          code:
                            type: string
                          message:
                            type: string
                        required:
                          - code
                          - message
                        additionalProperties: false
                      - type: 'null'
                required:
                  - depositId
                  - status
                  - amountCc
                  - partyId
                  - createdAt
                  - updatedAt
                  - transfer
                  - creditUpdateId
                  - error
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No such owned deposit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Read one owned deposit saga, advancing it when stalled.
      tags:
        - deposit balance
  /api/v1/wallet/deposits/by-transfer/{updateId}:
    get:
      description: >-
        Owner- and network-bound, read-only. `unknown` means nothing is recorded
        yet: poll again and never resubmit the transfer to resolve it.
      operationId: DepositController_depositByTransfer_v1
      parameters:
        - name: updateId
          required: true
          in: path
          description: Update id of the CC transfer the user signed.
          schema:
            type: string
            pattern: ^[0-9a-fA-F]{8,256}$
        - name: walletConnectionId
          required: false
          in: query
          schema:
            format: uuid
            type: string
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: The authoritative deposit state.
          content:
            application/json:
              schema:
                type: object
                properties:
                  checkedAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  networkId:
                    type: string
                  partyId:
                    type: string
                  transferUpdateId:
                    type: string
                  status:
                    type: string
                    enum:
                      - unknown
                      - pending
                      - credited
                      - failed
                  amountCc:
                    type:
                      - string
                      - 'null'
                  ccMoved:
                    type: boolean
                  creditReference:
                    type:
                      - string
                      - 'null'
                  arrivals:
                    type: array
                    items:
                      type: object
                      properties:
                        source:
                          type: string
                          enum:
                            - observed
                            - initiated
                            - ledger
                        arrivalKind:
                          type: string
                          enum:
                            - direct
                            - offer
                        amountCc:
                          type: string
                        status:
                          type: string
                          enum:
                            - pending
                            - credited
                            - failed
                        ccMoved:
                          type: boolean
                        creditReference:
                          type:
                            - string
                            - 'null'
                        creditUpdateId:
                          type:
                            - string
                            - 'null'
                        error:
                          anyOf:
                            - type: object
                              properties:
                                code:
                                  type: string
                                message:
                                  type: string
                              required:
                                - code
                                - message
                              additionalProperties: false
                            - type: 'null'
                      required:
                        - source
                        - arrivalKind
                        - amountCc
                        - status
                        - ccMoved
                        - creditReference
                        - creditUpdateId
                        - error
                      additionalProperties: false
                required:
                  - checkedAt
                  - networkId
                  - partyId
                  - transferUpdateId
                  - status
                  - amountCc
                  - ccMoved
                  - creditReference
                  - arrivals
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No verified wallet connection exists.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            Not a ledger-backed environment, or the ledger is unavailable. Also:
            `AUTHENTICATION_UNAVAILABLE`, `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Read the deposit a signed CC transfer funded, by the transfer update id.
      tags:
        - deposit balance
  /api/v1/wallet/withdrawals:
    post:
      operationId: DepositController_initiateWithdrawal_v1
      parameters:
        - name: Idempotency-Key
          in: header
          required: true
          schema:
            type: string
            minLength: 8
            maxLength: 256
            pattern: ^[A-Za-z0-9._:-]+$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                amountCc:
                  type: string
                  pattern: ^\d{1,28}(?:\.\d{1,10})?$
                memo:
                  type: string
                  minLength: 1
                  maxLength: 128
                  pattern: ^[\x20-\x7E]+$
                walletConnectionId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              required:
                - amountCc
              additionalProperties: false
      responses:
        '201':
          description: The withdrawal saga; poll its status.
          content:
            application/json:
              schema:
                type: object
                properties:
                  withdrawalId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  status:
                    type: string
                    enum:
                      - awaiting_signature
                      - requesting
                      - requested
                      - paying
                      - pending_receiver_accept
                      - paid
                      - completed
                      - payout_failed
                      - cancelled
                      - failed
                  amountCc:
                    type: string
                  partyId:
                    type: string
                  createdAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  updatedAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  requestUpdateId:
                    type:
                      - string
                      - 'null'
                  payout:
                    anyOf:
                      - type: object
                        properties:
                          transferKind:
                            type: string
                          updateId:
                            type:
                              - string
                              - 'null'
                        required:
                          - transferKind
                          - updateId
                        additionalProperties: false
                      - type: 'null'
                  completeUpdateId:
                    type:
                      - string
                      - 'null'
                  cancelUpdateId:
                    type:
                      - string
                      - 'null'
                  memo:
                    type: string
                  error:
                    anyOf:
                      - type: object
                        properties:
                          code:
                            type: string
                          message:
                            type: string
                        required:
                          - code
                          - message
                        additionalProperties: false
                      - type: 'null'
                required:
                  - withdrawalId
                  - status
                  - amountCc
                  - partyId
                  - createdAt
                  - updatedAt
                  - requestUpdateId
                  - payout
                  - completeUpdateId
                  - cancelUpdateId
                  - error
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            Malformed amount or missing Idempotency-Key. Also:
            `VALIDATION_FAILED`, `IDEMPOTENCY_KEY_REQUIRED`,
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No verified wallet connection exists.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '409':
          description: >-
            The request conflicts with current state, or the Idempotency-Key was
            reused with a different request (`IDEMPOTENCY_KEY_CONFLICT`; the
            former `IDEMPOTENCY_CONFLICT` is a deprecated alias, no longer
            returned, that clients handle the same way for one release). Codes:
            `IDEMPOTENCY_KEY_CONFLICT`, `IDEMPOTENCY_CONFLICT`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '422':
          description: Insufficient spendable balance, or the balance is frozen.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            The ledger or scan proxy is unavailable. Also:
            `AUTHENTICATION_UNAVAILABLE`, `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Initiate a real-CC withdrawal from the trading balance.
      tags:
        - deposit balance
  /api/v1/wallet/withdrawals/{withdrawalId}:
    get:
      operationId: DepositController_withdrawalStatus_v1
      parameters:
        - name: withdrawalId
          required: true
          in: path
          schema:
            format: uuid
            type: string
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: The withdrawal with its intermediate state.
          content:
            application/json:
              schema:
                type: object
                properties:
                  withdrawalId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  status:
                    type: string
                    enum:
                      - awaiting_signature
                      - requesting
                      - requested
                      - paying
                      - pending_receiver_accept
                      - paid
                      - completed
                      - payout_failed
                      - cancelled
                      - failed
                  amountCc:
                    type: string
                  partyId:
                    type: string
                  createdAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  updatedAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  requestUpdateId:
                    type:
                      - string
                      - 'null'
                  payout:
                    anyOf:
                      - type: object
                        properties:
                          transferKind:
                            type: string
                          updateId:
                            type:
                              - string
                              - 'null'
                        required:
                          - transferKind
                          - updateId
                        additionalProperties: false
                      - type: 'null'
                  completeUpdateId:
                    type:
                      - string
                      - 'null'
                  cancelUpdateId:
                    type:
                      - string
                      - 'null'
                  memo:
                    type: string
                  error:
                    anyOf:
                      - type: object
                        properties:
                          code:
                            type: string
                          message:
                            type: string
                        required:
                          - code
                          - message
                        additionalProperties: false
                      - type: 'null'
                required:
                  - withdrawalId
                  - status
                  - amountCc
                  - partyId
                  - createdAt
                  - updatedAt
                  - requestUpdateId
                  - payout
                  - completeUpdateId
                  - cancelUpdateId
                  - error
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No such owned withdrawal.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Read one owned withdrawal saga, advancing it when stalled.
      tags:
        - deposit balance
  /api/v1/wallet/withdrawals/{withdrawalId}/cancel:
    post:
      operationId: DepositController_cancelWithdrawal_v1
      parameters:
        - name: withdrawalId
          required: true
          in: path
          schema:
            format: uuid
            type: string
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: The cancelled withdrawal.
          content:
            application/json:
              schema:
                type: object
                properties:
                  withdrawalId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  status:
                    type: string
                    enum:
                      - awaiting_signature
                      - requesting
                      - requested
                      - paying
                      - pending_receiver_accept
                      - paid
                      - completed
                      - payout_failed
                      - cancelled
                      - failed
                  amountCc:
                    type: string
                  partyId:
                    type: string
                  createdAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  updatedAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  requestUpdateId:
                    type:
                      - string
                      - 'null'
                  payout:
                    anyOf:
                      - type: object
                        properties:
                          transferKind:
                            type: string
                          updateId:
                            type:
                              - string
                              - 'null'
                        required:
                          - transferKind
                          - updateId
                        additionalProperties: false
                      - type: 'null'
                  completeUpdateId:
                    type:
                      - string
                      - 'null'
                  cancelUpdateId:
                    type:
                      - string
                      - 'null'
                  memo:
                    type: string
                  error:
                    anyOf:
                      - type: object
                        properties:
                          code:
                            type: string
                          message:
                            type: string
                        required:
                          - code
                          - message
                        additionalProperties: false
                      - type: 'null'
                required:
                  - withdrawalId
                  - status
                  - amountCc
                  - partyId
                  - createdAt
                  - updatedAt
                  - requestUpdateId
                  - payout
                  - completeUpdateId
                  - cancelUpdateId
                  - error
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No such owned withdrawal.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '409':
          description: The withdrawal can no longer be cancelled.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Cancel an owned withdrawal before its payout; restores the balance.
      tags:
        - deposit balance
  /api/v1/wallet/valuation:
    get:
      operationId: WalletValuationController_value_v1
      parameters:
        - name: walletConnectionId
          required: false
          in: query
          schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: The account valuation.
          content:
            application/json:
              schema:
                type: object
                properties:
                  asOf:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    description: When this valuation was composed.
                  currency:
                    type: string
                    const: USD
                  fx:
                    anyOf:
                      - type: object
                        properties:
                          effectiveAt:
                            anyOf:
                              - type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              - type: 'null'
                            description: >-
                              The round's opensAt; null when this backend has
                              not recorded the round.
                          observedAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                            description: When this backend fetched the rate.
                          rateUsdPerCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          roundNumber:
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          source:
                            type: string
                            const: splice-open-mining-round
                            description: >-
                              Splice super validators amuletPrice; a validator
                              reference, not a traded price.
                          sourceDetail:
                            type: string
                            minLength: 1
                            maxLength: 100
                          stale:
                            type: boolean
                        required:
                          - effectiveAt
                          - observedAt
                          - rateUsdPerCc
                          - roundNumber
                          - source
                          - sourceDetail
                          - stale
                        additionalProperties: false
                      - type: 'null'
                  holdings:
                    maxItems: 500
                    type: array
                    items:
                      type: object
                      properties:
                        amount:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          description: 'Total held: available plus locked.'
                        instrumentId:
                          type: object
                          properties:
                            admin:
                              type: string
                              minLength: 1
                              maxLength: 512
                            id:
                              type: string
                              minLength: 1
                              maxLength: 512
                          required:
                            - admin
                            - id
                          additionalProperties: false
                        marketSlug:
                          anyOf:
                            - type: string
                              minLength: 1
                              maxLength: 64
                            - type: 'null'
                        priceBasis:
                          type: string
                          const: marginal-price
                          description: >-
                            Current marginal price; not what selling the whole
                            position would return.
                        priceCc:
                          anyOf:
                            - type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                            - type: 'null'
                        symbol:
                          type: string
                        valueCc:
                          anyOf:
                            - type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            - type: 'null'
                        valueUsd:
                          anyOf:
                            - type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            - type: 'null'
                      required:
                        - amount
                        - instrumentId
                        - marketSlug
                        - priceBasis
                        - priceCc
                        - symbol
                        - valueCc
                        - valueUsd
                      additionalProperties: false
                  inTransit:
                    type: object
                    properties:
                      countedInTotal:
                        type: boolean
                        const: false
                      depositsCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      pendingDeposits:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      pendingWithdrawals:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      withdrawalsCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                    required:
                      - countedInTotal
                      - depositsCc
                      - pendingDeposits
                      - pendingWithdrawals
                      - withdrawalsCc
                    additionalProperties: false
                    description: >-
                      Deposits and withdrawals in flight. Never added to the
                      total: their CC may already have left one place and not
                      reached the other.
                  networkId:
                    type: string
                    pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                  partyId:
                    type: string
                  sources:
                    type: object
                    properties:
                      balancesAsOf:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        description: Ledger read time of wallet CC and the trading balance.
                      holdingsAsOf:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        description: PQS read time of the token holdings.
                    required:
                      - balancesAsOf
                      - holdingsAsOf
                    additionalProperties: false
                  total:
                    type: object
                    properties:
                      complete:
                        type: boolean
                      gaps:
                        maxItems: 5
                        type: array
                        items:
                          type: string
                          enum:
                            - wallet-cc-unknown
                            - unpriced-holding
                            - funds-in-transit
                            - rate-unavailable
                            - rate-stale
                      knownValueCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                        description: >-
                          Sum of the components that are known; a lower bound
                          when incomplete.
                      knownValueUsd:
                        anyOf:
                          - type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          - type: 'null'
                      valueCc:
                        anyOf:
                          - type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          - type: 'null'
                        description: >-
                          Null unless every CC component is known and nothing is
                          in transit (a missing rate does not null it).
                      valueUsd:
                        anyOf:
                          - type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          - type: 'null'
                        description: Null unless complete.
                    required:
                      - complete
                      - gaps
                      - knownValueCc
                      - knownValueUsd
                      - valueCc
                      - valueUsd
                    additionalProperties: false
                  tradingBalance:
                    type: object
                    properties:
                      amountCc:
                        anyOf:
                          - type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          - type: 'null'
                        description: 'Null: unknown, not zero.'
                      valueUsd:
                        anyOf:
                          - type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          - type: 'null'
                      frozen:
                        type: boolean
                    required:
                      - amountCc
                      - valueUsd
                      - frozen
                    additionalProperties: false
                    description: Spendable launchpad deposit balance.
                  walletCc:
                    type: object
                    properties:
                      amountCc:
                        anyOf:
                          - type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          - type: 'null'
                        description: 'Null: unknown, not zero.'
                      valueUsd:
                        anyOf:
                          - type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          - type: 'null'
                      unavailableReason:
                        anyOf:
                          - type: string
                            minLength: 1
                            maxLength: 64
                          - type: 'null'
                    required:
                      - amountCc
                      - valueUsd
                      - unavailableReason
                    additionalProperties: false
                    description: The owner's on-chain CC (Amulet).
                  walletConnectionId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                required:
                  - asOf
                  - currency
                  - fx
                  - holdings
                  - inTransit
                  - networkId
                  - partyId
                  - sources
                  - total
                  - tradingBalance
                  - walletCc
                  - walletConnectionId
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`, `API_KEY_INVALID`,
            `API_KEY_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Owner routes accept only a
            customer API key: an internal master key answers
            `API_KEY_ROUTE_NOT_ALLOWED`. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`, `API_KEY_IP_NOT_ALLOWED`,
            `PRODUCT_ACCOUNT_RESTRICTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No verified wallet connection exists.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '409':
          description: The reads resolved different wallet connections.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            Not a ledger-backed environment. Also: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
        - apiKey: []
      summary: >-
        Value the connected account in USD: wallet CC, trading balance and token
        holdings, with rate source, completeness and in-flight funds.
      tags:
        - wallet
      x-api-key-scope: read
  /api/v1/wallet/valuation/history:
    get:
      operationId: WalletValuationController_history_v1
      parameters:
        - name: from
          required: false
          in: query
          schema:
            description: >-
              Start of the series. Default: `to` minus 30 days (1h) or 365 days
              (1d).
            type: string
            format: date-time
            pattern: >-
              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        - name: interval
          required: true
          in: query
          schema:
            type: string
            enum:
              - 1h
              - 1d
            description: 'Bucket length: UTC hours or UTC days.'
        - name: to
          required: false
          in: query
          schema:
            description: >-
              End of the series. Default and upper bound: now (a later value is
              clamped).
            type: string
            format: date-time
            pattern: >-
              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: The valuation series.
          content:
            application/json:
              schema:
                type: object
                properties:
                  coverage:
                    type: object
                    properties:
                      ccFrom:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        description: >-
                          Oldest ledger history the query store keeps; balances
                          before it are not recorded.
                      pricedTokens:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      unpricedTokens:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                        description: >-
                          Tokens held in the range with no price at some point;
                          counted as zero there.
                      usdFrom:
                        anyOf:
                          - type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          - type: 'null'
                        description: >-
                          First recorded CC/USD round; valueUsd and ccUsd are
                          null before it.
                    required:
                      - ccFrom
                      - pricedTokens
                      - unpricedTokens
                      - usdFrom
                    additionalProperties: false
                  from:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  interval:
                    type: string
                    enum:
                      - 1h
                      - 1d
                  partyId:
                    type: string
                    description: The account the series values (as in /wallet/valuation).
                  points:
                    maxItems: 744
                    type: array
                    items:
                      type: object
                      properties:
                        degraded:
                          description: >-
                            Present only when a running balance came out
                            negative (an archive whose creation the query store
                            no longer has, e.g. after pruning). That component
                            is counted as zero, so the point understates the
                            account.
                          type: boolean
                          const: true
                        ccUsd:
                          anyOf:
                            - type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            - type: 'null'
                          description: >-
                            USD per CC at t (the Splice open mining round in
                            effect); null before usdFrom.
                        t:
                          type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          description: >-
                            Bucket END (exclusive end of the hour or day). Every
                            value of the point is the latest state of the
                            bucket: the account as it stood at t, after every
                            change before t. The newest bucket, which ends after
                            now, holds the current state.
                        tokensCc:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          description: >-
                            Token holdings at the token price at t (last hourly
                            close, carried forward; the current pool price for a
                            token that never traded).
                        tradingBalanceCc:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          description: Launchpad trading balance.
                        valueCc:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          description: walletCc + tradingBalanceCc + tokensCc.
                        valueUsd:
                          anyOf:
                            - type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            - type: 'null'
                          description: valueCc x ccUsd; null before usdFrom.
                        walletCc:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          description: >-
                            The owner's unlocked Amulets, each net of its
                            holding fee at the round in effect at t.
                      required:
                        - ccUsd
                        - t
                        - tokensCc
                        - tradingBalanceCc
                        - valueCc
                        - valueUsd
                        - walletCc
                      additionalProperties: false
                  to:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  walletConnectionId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    description: The verified wallet connection the party came from.
                required:
                  - coverage
                  - from
                  - interval
                  - partyId
                  - points
                  - to
                  - walletConnectionId
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            Malformed range, from not before to, or more than 744 points. Also:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`, `API_KEY_INVALID`,
            `API_KEY_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Owner routes accept only a
            customer API key: an internal master key answers
            `API_KEY_ROUTE_NOT_ALLOWED`. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`, `API_KEY_IP_NOT_ALLOWED`,
            `PRODUCT_ACCOUNT_RESTRICTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No verified wallet connection exists.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            Not a PQS-backed ledger environment, or HISTORY_BUSY: history reads
            run one at a time and this one waited 10 s; retry after the
            Retry-After seconds. Also: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
        - apiKey: []
      summary: >-
        Value the connected account at every hour or day of a range: wallet CC,
        trading balance and tokens in CC, and in USD from the first recorded
        CC/USD round.
      tags:
        - wallet
      x-api-key-scope: read
  /api/v1/activity:
    get:
      operationId: ActivityController_list_v1
      parameters:
        - name: cursor
          required: false
          in: query
          schema:
            maxLength: 512
            minLength: 1
            type: string
        - name: limit
          required: false
          in: query
          schema:
            default: 24
            maximum: 100
            minimum: 1
            type: integer
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Cursor-paginated owned activity.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        entity:
                          anyOf:
                            - type: object
                              properties:
                                id:
                                  type: string
                                type:
                                  type: string
                              required:
                                - id
                                - type
                              additionalProperties: false
                            - type: 'null'
                        eventType:
                          type: string
                        finality:
                          type: string
                          enum:
                            - ledger-confirmed
                            - product
                            - simulated
                        id:
                          type: string
                        occurredAt:
                          type: string
                        operationId:
                          anyOf:
                            - type: string
                              format: uuid
                              pattern: >-
                                ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                            - type: 'null'
                        payload:
                          type: object
                          propertyNames:
                            type: string
                          additionalProperties: {}
                        summary:
                          type:
                            - string
                            - 'null'
                        title:
                          type: string
                      required:
                        - entity
                        - eventType
                        - finality
                        - id
                        - occurredAt
                        - operationId
                        - payload
                        - summary
                        - title
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      asOf:
                        type: string
                      dataMode:
                        type: string
                        enum:
                          - projected
                          - simulated
                      disclaimer:
                        type: string
                      networkId:
                        type: string
                        pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                    required:
                      - asOf
                      - dataMode
                      - disclaimer
                      - networkId
                    additionalProperties: false
                  nextCursor:
                    type:
                      - string
                      - 'null'
                required:
                  - items
                  - meta
                  - nextCursor
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`, `API_KEY_INVALID`,
            `API_KEY_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Owner routes accept only a
            customer API key: an internal master key answers
            `API_KEY_ROUTE_NOT_ALLOWED`. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`, `API_KEY_IP_NOT_ALLOWED`,
            `PRODUCT_ACCOUNT_RESTRICTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
        - apiKey: []
      summary: List the authenticated user’s activity read model.
      tags:
        - activity
      x-api-key-scope: read
  /api/v1/market/info:
    get:
      operationId: MarketDataController_info_v1
      parameters:
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Market-data exchange info.
          content:
            application/json:
              schema:
                type: object
                properties:
                  item:
                    type: object
                    properties:
                      api_version:
                        type: string
                        const: '1'
                      candle_intervals:
                        type: array
                        items:
                          type: string
                          enum:
                            - 1m
                            - 5m
                            - 1h
                            - 4h
                            - 1d
                      exchange:
                        type: object
                        properties:
                          factory_address:
                            type: string
                          name:
                            type: string
                            const: Supanova
                        required:
                          - factory_address
                          - name
                        additionalProperties: false
                      latest_block:
                        type: object
                        properties:
                          block:
                            type: string
                          time:
                            type:
                              - string
                              - 'null'
                          ts:
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                        required:
                          - block
                          - time
                          - ts
                        additionalProperties: false
                      limits:
                        type: object
                        properties:
                          dextools_max_range:
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          ws_max_subscriptions:
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                        required:
                          - dextools_max_range
                          - ws_max_subscriptions
                        additionalProperties: false
                      quote_asset:
                        type: object
                        properties:
                          asset_id:
                            type: string
                          instrument_admin:
                            type:
                              - string
                              - 'null'
                          name:
                            type: string
                          symbol:
                            type: string
                        required:
                          - asset_id
                          - instrument_admin
                          - name
                          - symbol
                        additionalProperties: false
                      stream_url_path:
                        type: string
                        const: /api/v1/market/ws
                      windows:
                        type: array
                        items:
                          type: string
                          enum:
                            - m5
                            - h1
                            - h6
                            - h24
                    required:
                      - api_version
                      - candle_intervals
                      - exchange
                      - latest_block
                      - limits
                      - quote_asset
                      - stream_url_path
                      - windows
                    additionalProperties: false
                  meta:
                    type: object
                    properties:
                      as_of:
                        type: string
                      cc_usd:
                        anyOf:
                          - type: object
                            properties:
                              as_of:
                                type: string
                              rate:
                                type: string
                                pattern: ^-?\d+(?:\.\d+)?$
                              source:
                                type: string
                              stale:
                                type: boolean
                            required:
                              - as_of
                              - rate
                              - source
                              - stale
                            additionalProperties: false
                          - type: 'null'
                      ledger_offset:
                        type: string
                      network_id:
                        type: string
                      source:
                        type: string
                        const: pqs
                    required:
                      - as_of
                      - cc_usd
                      - ledger_offset
                      - network_id
                      - source
                    additionalProperties: false
                required:
                  - item
                  - meta
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `AMBIGUOUS_CREDENTIALS`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Unknown API key, or a key is required. Also: `API_KEY_INVALID`,
            `API_KEY_REVOKED`, `MARKET_DATA_API_KEY_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes:
            `API_KEY_IP_NOT_ALLOWED`, `PRODUCT_ACCOUNT_RESTRICTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: The PQS market projection is not configured.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - {}
        - apiKey: []
      summary: Exchange info, latest block and limits.
      tags:
        - market data
      x-api-key-scope: read
      description: >-
        Anonymous calls are accepted under a per-IP budget; an `X-API-Key`
        raises the limit. When the deployment sets
        `MARKET_DATA_REQUIRE_API_KEY=true` the key becomes mandatory and
        anonymous calls answer 401 `MARKET_DATA_API_KEY_REQUIRED`.
  /api/v1/market/tokens:
    get:
      operationId: MarketDataController_listTokens_v1
      parameters:
        - name: cursor
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 512
        - name: limit
          required: false
          in: query
          schema:
            default: 100
            type: integer
            minimum: 1
            maximum: 200
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Token page.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        asset_id:
                          type: string
                        circulating_supply:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                          description: >-
                            Tokens outside the pools: total supply minus the
                            curve's unsold inventory and liquidity reserve, or
                            minus the AMM token reserve after graduation.
                        created_at:
                          type: string
                        decimals:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                        description:
                          type: string
                        fdv:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                          description: 'Fully diluted value in CC: price x total_supply.'
                        fdv_usd:
                          anyOf:
                            - type: string
                              pattern: ^-?\d+(?:\.\d+)?$
                            - type: 'null'
                        holders_count:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                        image_url:
                          type:
                            - string
                            - 'null'
                        instrument_admin:
                          type: string
                        instrument_id:
                          type: string
                        market_cap:
                          anyOf:
                            - type: string
                              pattern: ^-?\d+(?:\.\d+)?$
                            - type: 'null'
                          description: >-
                            Circulating market cap in CC: price x
                            circulating_supply (fdv x circulating_supply /
                            total_supply).
                        market_cap_usd:
                          anyOf:
                            - type: string
                              pattern: ^-?\d+(?:\.\d+)?$
                            - type: 'null'
                        name:
                          type: string
                        pairs:
                          type: array
                          items:
                            type: string
                        price:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                        price_usd:
                          anyOf:
                            - type: string
                              pattern: ^-?\d+(?:\.\d+)?$
                            - type: 'null'
                        slug:
                          type: string
                        stage:
                          type: string
                          enum:
                            - graduating
                            - ignition
                            - in_orbit
                            - near_escape
                        symbol:
                          type: string
                        total_supply:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                        website:
                          type:
                            - string
                            - 'null'
                      required:
                        - asset_id
                        - circulating_supply
                        - created_at
                        - decimals
                        - description
                        - fdv
                        - fdv_usd
                        - holders_count
                        - image_url
                        - instrument_admin
                        - instrument_id
                        - market_cap
                        - market_cap_usd
                        - name
                        - pairs
                        - price
                        - price_usd
                        - slug
                        - stage
                        - symbol
                        - total_supply
                        - website
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      as_of:
                        type: string
                      cc_usd:
                        anyOf:
                          - type: object
                            properties:
                              as_of:
                                type: string
                              rate:
                                type: string
                                pattern: ^-?\d+(?:\.\d+)?$
                              source:
                                type: string
                              stale:
                                type: boolean
                            required:
                              - as_of
                              - rate
                              - source
                              - stale
                            additionalProperties: false
                          - type: 'null'
                      ledger_offset:
                        type: string
                      network_id:
                        type: string
                      source:
                        type: string
                        const: pqs
                    required:
                      - as_of
                      - cc_usd
                      - ledger_offset
                      - network_id
                      - source
                    additionalProperties: false
                  page:
                    type: object
                    properties:
                      has_more:
                        type: boolean
                      limit:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      next_cursor:
                        type:
                          - string
                          - 'null'
                    required:
                      - has_more
                      - limit
                      - next_cursor
                    additionalProperties: false
                required:
                  - items
                  - meta
                  - page
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            Invalid limit or cursor. Also: `VALIDATION_FAILED`,
            `AMBIGUOUS_CREDENTIALS`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Unknown API key, or a key is required. Also: `API_KEY_INVALID`,
            `API_KEY_REVOKED`, `MARKET_DATA_API_KEY_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes:
            `API_KEY_IP_NOT_ALLOWED`, `PRODUCT_ACCOUNT_RESTRICTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: The PQS market projection is not configured.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - {}
        - apiKey: []
      summary: List listed tokens with metadata and headline figures.
      tags:
        - market data
      x-api-key-scope: read
      description: >-
        Anonymous calls are accepted under a per-IP budget; an `X-API-Key`
        raises the limit. When the deployment sets
        `MARKET_DATA_REQUIRE_API_KEY=true` the key becomes mandatory and
        anonymous calls answer 401 `MARKET_DATA_API_KEY_REQUIRED`.
  /api/v1/market/tokens/{assetId}:
    get:
      operationId: MarketDataController_getToken_v1
      parameters:
        - name: assetId
          required: true
          in: path
          schema:
            type: string
            maxLength: 128
            pattern: ^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Token.
          content:
            application/json:
              schema:
                type: object
                properties:
                  item:
                    type: object
                    properties:
                      asset_id:
                        type: string
                      circulating_supply:
                        type: string
                        pattern: ^-?\d+(?:\.\d+)?$
                        description: >-
                          Tokens outside the pools: total supply minus the
                          curve's unsold inventory and liquidity reserve, or
                          minus the AMM token reserve after graduation.
                      created_at:
                        type: string
                      decimals:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      description:
                        type: string
                      fdv:
                        type: string
                        pattern: ^-?\d+(?:\.\d+)?$
                        description: 'Fully diluted value in CC: price x total_supply.'
                      fdv_usd:
                        anyOf:
                          - type: string
                            pattern: ^-?\d+(?:\.\d+)?$
                          - type: 'null'
                      holders_count:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      image_url:
                        type:
                          - string
                          - 'null'
                      instrument_admin:
                        type: string
                      instrument_id:
                        type: string
                      market_cap:
                        anyOf:
                          - type: string
                            pattern: ^-?\d+(?:\.\d+)?$
                          - type: 'null'
                        description: >-
                          Circulating market cap in CC: price x
                          circulating_supply (fdv x circulating_supply /
                          total_supply).
                      market_cap_usd:
                        anyOf:
                          - type: string
                            pattern: ^-?\d+(?:\.\d+)?$
                          - type: 'null'
                      name:
                        type: string
                      pairs:
                        type: array
                        items:
                          type: string
                      price:
                        type: string
                        pattern: ^-?\d+(?:\.\d+)?$
                      price_usd:
                        anyOf:
                          - type: string
                            pattern: ^-?\d+(?:\.\d+)?$
                          - type: 'null'
                      slug:
                        type: string
                      stage:
                        type: string
                        enum:
                          - graduating
                          - ignition
                          - in_orbit
                          - near_escape
                      symbol:
                        type: string
                      total_supply:
                        type: string
                        pattern: ^-?\d+(?:\.\d+)?$
                      website:
                        type:
                          - string
                          - 'null'
                    required:
                      - asset_id
                      - circulating_supply
                      - created_at
                      - decimals
                      - description
                      - fdv
                      - fdv_usd
                      - holders_count
                      - image_url
                      - instrument_admin
                      - instrument_id
                      - market_cap
                      - market_cap_usd
                      - name
                      - pairs
                      - price
                      - price_usd
                      - slug
                      - stage
                      - symbol
                      - total_supply
                      - website
                    additionalProperties: false
                  meta:
                    type: object
                    properties:
                      as_of:
                        type: string
                      cc_usd:
                        anyOf:
                          - type: object
                            properties:
                              as_of:
                                type: string
                              rate:
                                type: string
                                pattern: ^-?\d+(?:\.\d+)?$
                              source:
                                type: string
                              stale:
                                type: boolean
                            required:
                              - as_of
                              - rate
                              - source
                              - stale
                            additionalProperties: false
                          - type: 'null'
                      ledger_offset:
                        type: string
                      network_id:
                        type: string
                      source:
                        type: string
                        const: pqs
                    required:
                      - as_of
                      - cc_usd
                      - ledger_offset
                      - network_id
                      - source
                    additionalProperties: false
                required:
                  - item
                  - meta
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Unknown API key, or a key is required. Also: `API_KEY_INVALID`,
            `API_KEY_REVOKED`, `MARKET_DATA_API_KEY_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes:
            `API_KEY_IP_NOT_ALLOWED`, `PRODUCT_ACCOUNT_RESTRICTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: Unknown asset.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: The PQS market projection is not configured.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - {}
        - apiKey: []
      summary: One token by its CIP-56 instrument id.
      tags:
        - market data
      x-api-key-scope: read
      description: >-
        Anonymous calls are accepted under a per-IP budget; an `X-API-Key`
        raises the limit. When the deployment sets
        `MARKET_DATA_REQUIRE_API_KEY=true` the key becomes mandatory and
        anonymous calls answer 401 `MARKET_DATA_API_KEY_REQUIRED`.
  /api/v1/market/tokens/{assetId}/holders:
    get:
      operationId: MarketDataController_holders_v1
      parameters:
        - name: assetId
          required: true
          in: path
          schema:
            type: string
            maxLength: 128
            pattern: ^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$
        - name: cursor
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 512
        - name: limit
          required: false
          in: query
          schema:
            default: 50
            type: integer
            minimum: 1
            maximum: 100
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Holder page.
          content:
            application/json:
              schema:
                type: object
                properties:
                  asset_id:
                    type: string
                  holders_count:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        address:
                          type: string
                        quantity:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                        rank:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                        supply_percent:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                      required:
                        - address
                        - quantity
                        - rank
                        - supply_percent
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      as_of:
                        type: string
                      cc_usd:
                        anyOf:
                          - type: object
                            properties:
                              as_of:
                                type: string
                              rate:
                                type: string
                                pattern: ^-?\d+(?:\.\d+)?$
                              source:
                                type: string
                              stale:
                                type: boolean
                            required:
                              - as_of
                              - rate
                              - source
                              - stale
                            additionalProperties: false
                          - type: 'null'
                      ledger_offset:
                        type: string
                      network_id:
                        type: string
                      source:
                        type: string
                        const: pqs
                    required:
                      - as_of
                      - cc_usd
                      - ledger_offset
                      - network_id
                      - source
                    additionalProperties: false
                  page:
                    type: object
                    properties:
                      has_more:
                        type: boolean
                      limit:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      next_cursor:
                        type:
                          - string
                          - 'null'
                    required:
                      - has_more
                      - limit
                      - next_cursor
                    additionalProperties: false
                required:
                  - asset_id
                  - holders_count
                  - items
                  - meta
                  - page
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Unknown API key, or a key is required. Also: `API_KEY_INVALID`,
            `API_KEY_REVOKED`, `MARKET_DATA_API_KEY_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes:
            `API_KEY_IP_NOT_ALLOWED`, `PRODUCT_ACCOUNT_RESTRICTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: Unknown asset.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: The PQS market projection is not configured.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - {}
        - apiKey: []
      summary: Holder count and largest holders (keyed addresses).
      tags:
        - market data
      x-api-key-scope: read
      description: >-
        Anonymous calls are accepted under a per-IP budget; an `X-API-Key`
        raises the limit. When the deployment sets
        `MARKET_DATA_REQUIRE_API_KEY=true` the key becomes mandatory and
        anonymous calls answer 401 `MARKET_DATA_API_KEY_REQUIRED`.
  /api/v1/market/pairs:
    get:
      operationId: MarketDataController_listPairs_v1
      parameters:
        - name: cursor
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 512
        - name: limit
          required: false
          in: query
          schema:
            default: 100
            type: integer
            minimum: 1
            maximum: 200
        - name: status
          required: false
          in: query
          schema:
            default: all
            type: string
            enum:
              - active
              - all
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Pair page.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        base:
                          type: object
                          properties:
                            asset_id:
                              type: string
                            instrument_admin:
                              type:
                                - string
                                - 'null'
                            name:
                              type: string
                            symbol:
                              type: string
                          required:
                            - asset_id
                            - instrument_admin
                            - name
                            - symbol
                          additionalProperties: false
                        created_at:
                          type:
                            - string
                            - 'null'
                        created_at_block:
                          type:
                            - string
                            - 'null'
                        created_at_txn_id:
                          type:
                            - string
                            - 'null'
                        fdv:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                        fdv_usd:
                          anyOf:
                            - type: string
                              pattern: ^-?\d+(?:\.\d+)?$
                            - type: 'null'
                        fee_bps:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                        graduation:
                          type: object
                          properties:
                            percent:
                              type: string
                              pattern: ^-?\d+(?:\.\d+)?$
                            stage:
                              type: string
                              enum:
                                - graduating
                                - ignition
                                - in_orbit
                                - near_escape
                            threshold_cc:
                              type: string
                              pattern: ^-?\d+(?:\.\d+)?$
                          required:
                            - percent
                            - stage
                            - threshold_cc
                          additionalProperties: false
                        holders_count:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                        last_trade_at:
                          type:
                            - string
                            - 'null'
                        liquidity:
                          type: object
                          properties:
                            cc:
                              type: string
                              pattern: ^-?\d+(?:\.\d+)?$
                            reserves:
                              type: object
                              properties:
                                base:
                                  type: string
                                  pattern: ^-?\d+(?:\.\d+)?$
                                quote:
                                  type: string
                                  pattern: ^-?\d+(?:\.\d+)?$
                              required:
                                - base
                                - quote
                              additionalProperties: false
                            usd:
                              anyOf:
                                - type: string
                                  pattern: ^-?\d+(?:\.\d+)?$
                                - type: 'null'
                          required:
                            - cc
                            - reserves
                            - usd
                          additionalProperties: false
                        market:
                          type: string
                        market_cap:
                          anyOf:
                            - type: string
                              pattern: ^-?\d+(?:\.\d+)?$
                            - type: 'null'
                          description: >-
                            Circulating market cap in CC: price x
                            circulating_supply (fdv x circulating_supply /
                            total_supply).
                        market_cap_usd:
                          anyOf:
                            - type: string
                              pattern: ^-?\d+(?:\.\d+)?$
                            - type: 'null'
                        pair_id:
                          type: string
                        price:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                        price_change:
                          type: object
                          properties:
                            h1:
                              type: string
                              pattern: ^-?\d+(?:\.\d+)?$
                            h24:
                              type: string
                              pattern: ^-?\d+(?:\.\d+)?$
                            h6:
                              type: string
                              pattern: ^-?\d+(?:\.\d+)?$
                            m5:
                              type: string
                              pattern: ^-?\d+(?:\.\d+)?$
                          required:
                            - h1
                            - h24
                            - h6
                            - m5
                          additionalProperties: false
                        price_usd:
                          anyOf:
                            - type: string
                              pattern: ^-?\d+(?:\.\d+)?$
                            - type: 'null'
                        quote:
                          type: object
                          properties:
                            asset_id:
                              type: string
                            instrument_admin:
                              type:
                                - string
                                - 'null'
                            name:
                              type: string
                            symbol:
                              type: string
                          required:
                            - asset_id
                            - instrument_admin
                            - name
                            - symbol
                          additionalProperties: false
                        status:
                          type: string
                          enum:
                            - active
                            - graduated
                        ts:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                        txns:
                          type: object
                          properties:
                            h1:
                              type: object
                              properties:
                                buys:
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                sells:
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                              required:
                                - buys
                                - sells
                              additionalProperties: false
                            h24:
                              type: object
                              properties:
                                buys:
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                sells:
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                              required:
                                - buys
                                - sells
                              additionalProperties: false
                            h6:
                              type: object
                              properties:
                                buys:
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                sells:
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                              required:
                                - buys
                                - sells
                              additionalProperties: false
                            m5:
                              type: object
                              properties:
                                buys:
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                sells:
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                              required:
                                - buys
                                - sells
                              additionalProperties: false
                          required:
                            - h1
                            - h24
                            - h6
                            - m5
                          additionalProperties: false
                        venue:
                          type: string
                          enum:
                            - amm
                            - curve
                        volume:
                          type: object
                          properties:
                            h1:
                              type: string
                              pattern: ^-?\d+(?:\.\d+)?$
                            h24:
                              type: string
                              pattern: ^-?\d+(?:\.\d+)?$
                            h6:
                              type: string
                              pattern: ^-?\d+(?:\.\d+)?$
                            m5:
                              type: string
                              pattern: ^-?\d+(?:\.\d+)?$
                          required:
                            - h1
                            - h24
                            - h6
                            - m5
                          additionalProperties: false
                        volume_usd:
                          type: object
                          properties:
                            h1:
                              anyOf:
                                - type: string
                                  pattern: ^-?\d+(?:\.\d+)?$
                                - type: 'null'
                            h24:
                              anyOf:
                                - type: string
                                  pattern: ^-?\d+(?:\.\d+)?$
                                - type: 'null'
                            h6:
                              anyOf:
                                - type: string
                                  pattern: ^-?\d+(?:\.\d+)?$
                                - type: 'null'
                            m5:
                              anyOf:
                                - type: string
                                  pattern: ^-?\d+(?:\.\d+)?$
                                - type: 'null'
                          required:
                            - h1
                            - h24
                            - h6
                            - m5
                          additionalProperties: false
                      required:
                        - base
                        - created_at
                        - created_at_block
                        - created_at_txn_id
                        - fdv
                        - fdv_usd
                        - fee_bps
                        - graduation
                        - holders_count
                        - last_trade_at
                        - liquidity
                        - market
                        - market_cap
                        - market_cap_usd
                        - pair_id
                        - price
                        - price_change
                        - price_usd
                        - quote
                        - status
                        - ts
                        - txns
                        - venue
                        - volume
                        - volume_usd
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      as_of:
                        type: string
                      cc_usd:
                        anyOf:
                          - type: object
                            properties:
                              as_of:
                                type: string
                              rate:
                                type: string
                                pattern: ^-?\d+(?:\.\d+)?$
                              source:
                                type: string
                              stale:
                                type: boolean
                            required:
                              - as_of
                              - rate
                              - source
                              - stale
                            additionalProperties: false
                          - type: 'null'
                      ledger_offset:
                        type: string
                      network_id:
                        type: string
                      source:
                        type: string
                        const: pqs
                    required:
                      - as_of
                      - cc_usd
                      - ledger_offset
                      - network_id
                      - source
                    additionalProperties: false
                  page:
                    type: object
                    properties:
                      has_more:
                        type: boolean
                      limit:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      next_cursor:
                        type:
                          - string
                          - 'null'
                    required:
                      - has_more
                      - limit
                      - next_cursor
                    additionalProperties: false
                required:
                  - items
                  - meta
                  - page
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            Invalid filter, limit or cursor. Also: `VALIDATION_FAILED`,
            `AMBIGUOUS_CREDENTIALS`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Unknown API key, or a key is required. Also: `API_KEY_INVALID`,
            `API_KEY_REVOKED`, `MARKET_DATA_API_KEY_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes:
            `API_KEY_IP_NOT_ALLOWED`, `PRODUCT_ACCOUNT_RESTRICTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: The PQS market projection is not configured.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - {}
        - apiKey: []
      summary: >-
        List pairs with price, liquidity, market cap, volume, price change and
        trade counts.
      tags:
        - market data
      x-api-key-scope: read
      description: >-
        Anonymous calls are accepted under a per-IP budget; an `X-API-Key`
        raises the limit. When the deployment sets
        `MARKET_DATA_REQUIRE_API_KEY=true` the key becomes mandatory and
        anonymous calls answer 401 `MARKET_DATA_API_KEY_REQUIRED`.
  /api/v1/market/pairs/{pairId}:
    get:
      operationId: MarketDataController_getPair_v1
      parameters:
        - name: pairId
          required: true
          in: path
          description: <instrument id>:curve or :amm
          schema:
            type: string
            maxLength: 160
            pattern: ^[A-Za-z0-9][A-Za-z0-9._-]{0,127}:(?:curve|amm)$
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Pair.
          content:
            application/json:
              schema:
                type: object
                properties:
                  item:
                    type: object
                    properties:
                      base:
                        type: object
                        properties:
                          asset_id:
                            type: string
                          instrument_admin:
                            type:
                              - string
                              - 'null'
                          name:
                            type: string
                          symbol:
                            type: string
                        required:
                          - asset_id
                          - instrument_admin
                          - name
                          - symbol
                        additionalProperties: false
                      created_at:
                        type:
                          - string
                          - 'null'
                      created_at_block:
                        type:
                          - string
                          - 'null'
                      created_at_txn_id:
                        type:
                          - string
                          - 'null'
                      fdv:
                        type: string
                        pattern: ^-?\d+(?:\.\d+)?$
                      fdv_usd:
                        anyOf:
                          - type: string
                            pattern: ^-?\d+(?:\.\d+)?$
                          - type: 'null'
                      fee_bps:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      graduation:
                        type: object
                        properties:
                          percent:
                            type: string
                            pattern: ^-?\d+(?:\.\d+)?$
                          stage:
                            type: string
                            enum:
                              - graduating
                              - ignition
                              - in_orbit
                              - near_escape
                          threshold_cc:
                            type: string
                            pattern: ^-?\d+(?:\.\d+)?$
                        required:
                          - percent
                          - stage
                          - threshold_cc
                        additionalProperties: false
                      holders_count:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      last_trade_at:
                        type:
                          - string
                          - 'null'
                      liquidity:
                        type: object
                        properties:
                          cc:
                            type: string
                            pattern: ^-?\d+(?:\.\d+)?$
                          reserves:
                            type: object
                            properties:
                              base:
                                type: string
                                pattern: ^-?\d+(?:\.\d+)?$
                              quote:
                                type: string
                                pattern: ^-?\d+(?:\.\d+)?$
                            required:
                              - base
                              - quote
                            additionalProperties: false
                          usd:
                            anyOf:
                              - type: string
                                pattern: ^-?\d+(?:\.\d+)?$
                              - type: 'null'
                        required:
                          - cc
                          - reserves
                          - usd
                        additionalProperties: false
                      market:
                        type: string
                      market_cap:
                        anyOf:
                          - type: string
                            pattern: ^-?\d+(?:\.\d+)?$
                          - type: 'null'
                        description: >-
                          Circulating market cap in CC: price x
                          circulating_supply (fdv x circulating_supply /
                          total_supply).
                      market_cap_usd:
                        anyOf:
                          - type: string
                            pattern: ^-?\d+(?:\.\d+)?$
                          - type: 'null'
                      pair_id:
                        type: string
                      price:
                        type: string
                        pattern: ^-?\d+(?:\.\d+)?$
                      price_change:
                        type: object
                        properties:
                          h1:
                            type: string
                            pattern: ^-?\d+(?:\.\d+)?$
                          h24:
                            type: string
                            pattern: ^-?\d+(?:\.\d+)?$
                          h6:
                            type: string
                            pattern: ^-?\d+(?:\.\d+)?$
                          m5:
                            type: string
                            pattern: ^-?\d+(?:\.\d+)?$
                        required:
                          - h1
                          - h24
                          - h6
                          - m5
                        additionalProperties: false
                      price_usd:
                        anyOf:
                          - type: string
                            pattern: ^-?\d+(?:\.\d+)?$
                          - type: 'null'
                      quote:
                        type: object
                        properties:
                          asset_id:
                            type: string
                          instrument_admin:
                            type:
                              - string
                              - 'null'
                          name:
                            type: string
                          symbol:
                            type: string
                        required:
                          - asset_id
                          - instrument_admin
                          - name
                          - symbol
                        additionalProperties: false
                      status:
                        type: string
                        enum:
                          - active
                          - graduated
                      ts:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      txns:
                        type: object
                        properties:
                          h1:
                            type: object
                            properties:
                              buys:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              sells:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                            required:
                              - buys
                              - sells
                            additionalProperties: false
                          h24:
                            type: object
                            properties:
                              buys:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              sells:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                            required:
                              - buys
                              - sells
                            additionalProperties: false
                          h6:
                            type: object
                            properties:
                              buys:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              sells:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                            required:
                              - buys
                              - sells
                            additionalProperties: false
                          m5:
                            type: object
                            properties:
                              buys:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              sells:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                            required:
                              - buys
                              - sells
                            additionalProperties: false
                        required:
                          - h1
                          - h24
                          - h6
                          - m5
                        additionalProperties: false
                      venue:
                        type: string
                        enum:
                          - amm
                          - curve
                      volume:
                        type: object
                        properties:
                          h1:
                            type: string
                            pattern: ^-?\d+(?:\.\d+)?$
                          h24:
                            type: string
                            pattern: ^-?\d+(?:\.\d+)?$
                          h6:
                            type: string
                            pattern: ^-?\d+(?:\.\d+)?$
                          m5:
                            type: string
                            pattern: ^-?\d+(?:\.\d+)?$
                        required:
                          - h1
                          - h24
                          - h6
                          - m5
                        additionalProperties: false
                      volume_usd:
                        type: object
                        properties:
                          h1:
                            anyOf:
                              - type: string
                                pattern: ^-?\d+(?:\.\d+)?$
                              - type: 'null'
                          h24:
                            anyOf:
                              - type: string
                                pattern: ^-?\d+(?:\.\d+)?$
                              - type: 'null'
                          h6:
                            anyOf:
                              - type: string
                                pattern: ^-?\d+(?:\.\d+)?$
                              - type: 'null'
                          m5:
                            anyOf:
                              - type: string
                                pattern: ^-?\d+(?:\.\d+)?$
                              - type: 'null'
                        required:
                          - h1
                          - h24
                          - h6
                          - m5
                        additionalProperties: false
                    required:
                      - base
                      - created_at
                      - created_at_block
                      - created_at_txn_id
                      - fdv
                      - fdv_usd
                      - fee_bps
                      - graduation
                      - holders_count
                      - last_trade_at
                      - liquidity
                      - market
                      - market_cap
                      - market_cap_usd
                      - pair_id
                      - price
                      - price_change
                      - price_usd
                      - quote
                      - status
                      - ts
                      - txns
                      - venue
                      - volume
                      - volume_usd
                    additionalProperties: false
                  meta:
                    type: object
                    properties:
                      as_of:
                        type: string
                      cc_usd:
                        anyOf:
                          - type: object
                            properties:
                              as_of:
                                type: string
                              rate:
                                type: string
                                pattern: ^-?\d+(?:\.\d+)?$
                              source:
                                type: string
                              stale:
                                type: boolean
                            required:
                              - as_of
                              - rate
                              - source
                              - stale
                            additionalProperties: false
                          - type: 'null'
                      ledger_offset:
                        type: string
                      network_id:
                        type: string
                      source:
                        type: string
                        const: pqs
                    required:
                      - as_of
                      - cc_usd
                      - ledger_offset
                      - network_id
                      - source
                    additionalProperties: false
                required:
                  - item
                  - meta
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Unknown API key, or a key is required. Also: `API_KEY_INVALID`,
            `API_KEY_REVOKED`, `MARKET_DATA_API_KEY_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes:
            `API_KEY_IP_NOT_ALLOWED`, `PRODUCT_ACCOUNT_RESTRICTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: Unknown pair.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: The PQS market projection is not configured.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - {}
        - apiKey: []
      summary: One pair with its full figures.
      tags:
        - market data
      x-api-key-scope: read
      description: >-
        Anonymous calls are accepted under a per-IP budget; an `X-API-Key`
        raises the limit. When the deployment sets
        `MARKET_DATA_REQUIRE_API_KEY=true` the key becomes mandatory and
        anonymous calls answer 401 `MARKET_DATA_API_KEY_REQUIRED`.
  /api/v1/market/pairs/{pairId}/trades:
    get:
      operationId: MarketDataController_trades_v1
      parameters:
        - name: pairId
          required: true
          in: path
          schema:
            type: string
            maxLength: 160
            pattern: ^[A-Za-z0-9][A-Za-z0-9._-]{0,127}:(?:curve|amm)$
        - name: cursor
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 512
        - name: limit
          required: false
          in: query
          schema:
            default: 50
            type: integer
            minimum: 1
            maximum: 200
        - name: side
          required: false
          in: query
          schema:
            type: string
            enum:
              - buy
              - sell
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Trade page.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        block:
                          type: string
                        fee_cc:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                        id:
                          type: string
                        maker:
                          type: string
                        node_id:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                        pair_id:
                          type: string
                        price:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                        price_usd:
                          anyOf:
                            - type: string
                              pattern: ^-?\d+(?:\.\d+)?$
                            - type: 'null'
                        base_amount:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                        quote_amount:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                        side:
                          type: string
                          enum:
                            - buy
                            - sell
                        time:
                          type: string
                        ts:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                        txn_id:
                          type: string
                        venue:
                          type: string
                          enum:
                            - amm
                            - curve
                      required:
                        - block
                        - fee_cc
                        - id
                        - maker
                        - node_id
                        - pair_id
                        - price
                        - price_usd
                        - base_amount
                        - quote_amount
                        - side
                        - time
                        - ts
                        - txn_id
                        - venue
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      as_of:
                        type: string
                      cc_usd:
                        anyOf:
                          - type: object
                            properties:
                              as_of:
                                type: string
                              rate:
                                type: string
                                pattern: ^-?\d+(?:\.\d+)?$
                              source:
                                type: string
                              stale:
                                type: boolean
                            required:
                              - as_of
                              - rate
                              - source
                              - stale
                            additionalProperties: false
                          - type: 'null'
                      ledger_offset:
                        type: string
                      network_id:
                        type: string
                      source:
                        type: string
                        const: pqs
                    required:
                      - as_of
                      - cc_usd
                      - ledger_offset
                      - network_id
                      - source
                    additionalProperties: false
                  page:
                    type: object
                    properties:
                      has_more:
                        type: boolean
                      limit:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      next_cursor:
                        type:
                          - string
                          - 'null'
                    required:
                      - has_more
                      - limit
                      - next_cursor
                    additionalProperties: false
                required:
                  - items
                  - meta
                  - page
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            Invalid side, limit or cursor. Also: `VALIDATION_FAILED`,
            `AMBIGUOUS_CREDENTIALS`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Unknown API key, or a key is required. Also: `API_KEY_INVALID`,
            `API_KEY_REVOKED`, `MARKET_DATA_API_KEY_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes:
            `API_KEY_IP_NOT_ALLOWED`, `PRODUCT_ACCOUNT_RESTRICTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: Unknown pair.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: The PQS market projection is not configured.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - {}
        - apiKey: []
      summary: Recent trades of a pair, newest first.
      tags:
        - market data
      x-api-key-scope: read
      description: >-
        Anonymous calls are accepted under a per-IP budget; an `X-API-Key`
        raises the limit. When the deployment sets
        `MARKET_DATA_REQUIRE_API_KEY=true` the key becomes mandatory and
        anonymous calls answer 401 `MARKET_DATA_API_KEY_REQUIRED`.
  /api/v1/market/pairs/{pairId}/candles:
    get:
      operationId: MarketDataController_candles_v1
      parameters:
        - name: pairId
          required: true
          in: path
          schema:
            type: string
            maxLength: 160
            pattern: ^[A-Za-z0-9][A-Za-z0-9._-]{0,127}:(?:curve|amm)$
        - name: currency
          required: false
          in: query
          schema:
            default: cc
            type: string
            enum:
              - cc
              - usd
        - name: from
          required: false
          in: query
          schema:
            type: string
            format: date-time
            pattern: >-
              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        - name: interval
          required: false
          in: query
          schema:
            default: 1h
            type: string
            enum:
              - 1m
              - 5m
              - 1h
              - 4h
              - 1d
        - name: to
          required: false
          in: query
          schema:
            type: string
            format: date-time
            pattern: >-
              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Candles, oldest first.
          content:
            application/json:
              schema:
                type: object
                properties:
                  candles:
                    type: array
                    items:
                      type: object
                      properties:
                        close:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                        high:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                        low:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                        open:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                        time:
                          type: string
                        ts:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                        volume:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                      required:
                        - close
                        - high
                        - low
                        - open
                        - time
                        - ts
                        - volume
                      additionalProperties: false
                  currency:
                    type: string
                    enum:
                      - cc
                      - usd
                  interval:
                    type: string
                    enum:
                      - 1m
                      - 5m
                      - 1h
                      - 4h
                      - 1d
                  meta:
                    type: object
                    properties:
                      as_of:
                        type: string
                      cc_usd:
                        anyOf:
                          - type: object
                            properties:
                              as_of:
                                type: string
                              rate:
                                type: string
                                pattern: ^-?\d+(?:\.\d+)?$
                              source:
                                type: string
                              stale:
                                type: boolean
                            required:
                              - as_of
                              - rate
                              - source
                              - stale
                            additionalProperties: false
                          - type: 'null'
                      ledger_offset:
                        type: string
                      network_id:
                        type: string
                      source:
                        type: string
                        const: pqs
                    required:
                      - as_of
                      - cc_usd
                      - ledger_offset
                      - network_id
                      - source
                    additionalProperties: false
                  pair_id:
                    type: string
                required:
                  - candles
                  - currency
                  - interval
                  - meta
                  - pair_id
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            Invalid interval or window (at most 500 candles). Also:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Unknown API key, or a key is required. Also: `API_KEY_INVALID`,
            `API_KEY_REVOKED`, `MARKET_DATA_API_KEY_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes:
            `API_KEY_IP_NOT_ALLOWED`, `PRODUCT_ACCOUNT_RESTRICTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: Unknown pair.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: The PQS market projection is not configured.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - {}
        - apiKey: []
      summary: >-
        OHLCV candles of the pair token (one series across graduation), in CC or
        USD.
      tags:
        - market data
      x-api-key-scope: read
      description: >-
        Anonymous calls are accepted under a per-IP budget; an `X-API-Key`
        raises the limit. When the deployment sets
        `MARKET_DATA_REQUIRE_API_KEY=true` the key becomes mandatory and
        anonymous calls answer 401 `MARKET_DATA_API_KEY_REQUIRED`.
  /api/v1/market/tickers:
    get:
      operationId: MarketDataController_tickers_v1
      parameters:
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Tickers.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        change_24h:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                        market:
                          type: string
                        pair_id:
                          type: string
                        price:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                        price_usd:
                          anyOf:
                            - type: string
                              pattern: ^-?\d+(?:\.\d+)?$
                            - type: 'null'
                        ts:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                        volume_24h:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                      required:
                        - change_24h
                        - market
                        - pair_id
                        - price
                        - price_usd
                        - ts
                        - volume_24h
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      as_of:
                        type: string
                      cc_usd:
                        anyOf:
                          - type: object
                            properties:
                              as_of:
                                type: string
                              rate:
                                type: string
                                pattern: ^-?\d+(?:\.\d+)?$
                              source:
                                type: string
                              stale:
                                type: boolean
                            required:
                              - as_of
                              - rate
                              - source
                              - stale
                            additionalProperties: false
                          - type: 'null'
                      ledger_offset:
                        type: string
                      network_id:
                        type: string
                      source:
                        type: string
                        const: pqs
                    required:
                      - as_of
                      - cc_usd
                      - ledger_offset
                      - network_id
                      - source
                    additionalProperties: false
                required:
                  - items
                  - meta
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `AMBIGUOUS_CREDENTIALS`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Unknown API key, or a key is required. Also: `API_KEY_INVALID`,
            `API_KEY_REVOKED`, `MARKET_DATA_API_KEY_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes:
            `API_KEY_IP_NOT_ALLOWED`, `PRODUCT_ACCOUNT_RESTRICTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: The PQS market projection is not configured.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - {}
        - apiKey: []
      summary: Compact price/volume ticker of every pair.
      tags:
        - market data
      x-api-key-scope: read
      description: >-
        Anonymous calls are accepted under a per-IP budget; an `X-API-Key`
        raises the limit. When the deployment sets
        `MARKET_DATA_REQUIRE_API_KEY=true` the key becomes mandatory and
        anonymous calls answer 401 `MARKET_DATA_API_KEY_REQUIRED`.
  /api/v1/dextools/latest-block:
    get:
      operationId: DextoolsController_latestBlock_v1
      parameters:
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Latest block.
          content:
            application/json:
              schema:
                type: object
                properties:
                  block:
                    type: object
                    properties:
                      blockNumber:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      blockTimestamp:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                    required:
                      - blockNumber
                      - blockTimestamp
                    additionalProperties: false
                required:
                  - block
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: The request is malformed or failed validation.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '401':
          description: Credentials are missing, malformed, expired or revoked.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '403':
          description: The credential may not call this route.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '429':
          $ref: '#/components/responses/DextoolsRateLimited'
        '503':
          description: The PQS market projection is not configured.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        default:
          $ref: '#/components/responses/DextoolsError'
      security:
        - {}
        - apiKey: []
      summary: Newest block whose events are all served.
      tags:
        - dextools adapter
      x-api-key-scope: read
      description: >-
        Anonymous calls are accepted under a per-IP budget; an `X-API-Key`
        raises the limit. When the deployment sets
        `MARKET_DATA_REQUIRE_API_KEY=true` the key becomes mandatory and
        anonymous calls answer 401 `MARKET_DATA_API_KEY_REQUIRED`.
  /api/v1/dextools/block:
    get:
      operationId: DextoolsController_block_v1
      parameters:
        - name: number
          required: false
          in: query
          schema:
            type: integer
            minimum: 0
            maximum: 9007199254740991
        - name: timestamp
          required: false
          in: query
          schema:
            type: integer
            minimum: 0
            maximum: 9007199254740991
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Block.
          content:
            application/json:
              schema:
                type: object
                properties:
                  block:
                    type: object
                    properties:
                      blockNumber:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      blockTimestamp:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                    required:
                      - blockNumber
                      - blockTimestamp
                    additionalProperties: false
                required:
                  - block
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: Neither number nor timestamp.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '401':
          description: Credentials are missing, malformed, expired or revoked.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '403':
          description: The credential may not call this route.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '404':
          description: No block at or before that point.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '429':
          $ref: '#/components/responses/DextoolsRateLimited'
        '503':
          description: The PQS market projection is not configured.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        default:
          $ref: '#/components/responses/DextoolsError'
      security:
        - {}
        - apiKey: []
      summary: Block by number, or the youngest at or before a time.
      tags:
        - dextools adapter
      x-api-key-scope: read
      description: >-
        Anonymous calls are accepted under a per-IP budget; an `X-API-Key`
        raises the limit. When the deployment sets
        `MARKET_DATA_REQUIRE_API_KEY=true` the key becomes mandatory and
        anonymous calls answer 401 `MARKET_DATA_API_KEY_REQUIRED`.
  /api/v1/dextools/asset:
    get:
      operationId: DextoolsController_asset_v1
      parameters:
        - name: id
          required: true
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 512
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Asset.
          content:
            application/json:
              schema:
                type: object
                properties:
                  asset:
                    type: object
                    properties:
                      circulatingSupply:
                        description: >-
                          Tokens outside the pools: totalSupply minus the curve
                          inventory and liquidity reserve, or minus the AMM
                          token reserve after graduation.
                        type: string
                        pattern: ^\d+(?:\.\d+)$
                      holdersCount:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      id:
                        type: string
                      name:
                        type: string
                      symbol:
                        type: string
                      totalSupply:
                        type: string
                        pattern: ^\d+(?:\.\d+)$
                    required:
                      - id
                      - name
                      - symbol
                    additionalProperties: false
                required:
                  - asset
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: The request is malformed or failed validation.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '401':
          description: Credentials are missing, malformed, expired or revoked.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '403':
          description: The credential may not call this route.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '404':
          description: Unknown asset.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '429':
          $ref: '#/components/responses/DextoolsRateLimited'
        '503':
          description: The PQS market projection is not configured.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        default:
          $ref: '#/components/responses/DextoolsError'
      security:
        - {}
        - apiKey: []
      summary: Asset by id (instrument id, or Amulet for CC).
      tags:
        - dextools adapter
      x-api-key-scope: read
      description: >-
        Anonymous calls are accepted under a per-IP budget; an `X-API-Key`
        raises the limit. When the deployment sets
        `MARKET_DATA_REQUIRE_API_KEY=true` the key becomes mandatory and
        anonymous calls answer 401 `MARKET_DATA_API_KEY_REQUIRED`.
  /api/v1/dextools/asset/holders:
    get:
      operationId: DextoolsController_holders_v1
      parameters:
        - name: id
          required: true
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 512
        - name: page
          required: false
          in: query
          schema:
            default: 0
            type: integer
            minimum: 0
            maximum: 10000
        - name: pageSize
          required: false
          in: query
          schema:
            default: 10
            type: integer
            minimum: 10
            maximum: 50
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Holder page.
          content:
            application/json:
              schema:
                type: object
                properties:
                  asset:
                    type: object
                    properties:
                      holders:
                        type: array
                        items:
                          type: object
                          properties:
                            address:
                              type: string
                            quantity:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                          required:
                            - address
                            - quantity
                          additionalProperties: false
                      id:
                        type: string
                      totalHoldersCount:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                    required:
                      - holders
                      - id
                      - totalHoldersCount
                    additionalProperties: false
                required:
                  - asset
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: The request is malformed or failed validation.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '401':
          description: Credentials are missing, malformed, expired or revoked.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '403':
          description: The credential may not call this route.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '404':
          description: Unknown asset.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '429':
          $ref: '#/components/responses/DextoolsRateLimited'
        '503':
          description: The PQS market projection is not configured.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        default:
          $ref: '#/components/responses/DextoolsError'
      security:
        - {}
        - apiKey: []
      summary: Holders by quantity, descending (keyed addresses).
      tags:
        - dextools adapter
      x-api-key-scope: read
      description: >-
        Anonymous calls are accepted under a per-IP budget; an `X-API-Key`
        raises the limit. When the deployment sets
        `MARKET_DATA_REQUIRE_API_KEY=true` the key becomes mandatory and
        anonymous calls answer 401 `MARKET_DATA_API_KEY_REQUIRED`.
  /api/v1/dextools/exchange:
    get:
      operationId: DextoolsController_exchange_v1
      parameters:
        - name: id
          required: true
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 512
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Exchange.
          content:
            application/json:
              schema:
                type: object
                properties:
                  exchange:
                    type: object
                    properties:
                      factoryAddress:
                        type: string
                      logoURL:
                        type: string
                      name:
                        type: string
                    required:
                      - factoryAddress
                      - name
                    additionalProperties: false
                required:
                  - exchange
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: The request is malformed or failed validation.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '401':
          description: Credentials are missing, malformed, expired or revoked.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '403':
          description: The credential may not call this route.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '404':
          description: Unknown exchange.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '429':
          $ref: '#/components/responses/DextoolsRateLimited'
        '503':
          description: The PQS market projection is not configured.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        default:
          $ref: '#/components/responses/DextoolsError'
      security:
        - {}
        - apiKey: []
      summary: The Supanova exchange (factory = registrar Party).
      tags:
        - dextools adapter
      x-api-key-scope: read
      description: >-
        Anonymous calls are accepted under a per-IP budget; an `X-API-Key`
        raises the limit. When the deployment sets
        `MARKET_DATA_REQUIRE_API_KEY=true` the key becomes mandatory and
        anonymous calls answer 401 `MARKET_DATA_API_KEY_REQUIRED`.
  /api/v1/dextools/pair:
    get:
      operationId: DextoolsController_pair_v1
      parameters:
        - name: id
          required: true
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 512
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Pair.
          content:
            application/json:
              schema:
                type: object
                properties:
                  pair:
                    type: object
                    properties:
                      asset0Id:
                        type: string
                      asset1Id:
                        type: string
                      createdAtBlockNumber:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      createdAtBlockTimestamp:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      createdAtTxnId:
                        type: string
                      factoryAddress:
                        type: string
                      feeBps:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      id:
                        type: string
                    required:
                      - asset0Id
                      - asset1Id
                      - createdAtBlockNumber
                      - createdAtBlockTimestamp
                      - createdAtTxnId
                      - factoryAddress
                      - feeBps
                      - id
                    additionalProperties: false
                required:
                  - pair
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: The request is malformed or failed validation.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '401':
          description: Credentials are missing, malformed, expired or revoked.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '403':
          description: The credential may not call this route.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '404':
          description: Unknown pair.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '429':
          $ref: '#/components/responses/DextoolsRateLimited'
        '503':
          description: The PQS market projection is not configured.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        default:
          $ref: '#/components/responses/DextoolsError'
      security:
        - {}
        - apiKey: []
      summary: Pair by id (<instrument id>:curve or :amm).
      tags:
        - dextools adapter
      x-api-key-scope: read
      description: >-
        Anonymous calls are accepted under a per-IP budget; an `X-API-Key`
        raises the limit. When the deployment sets
        `MARKET_DATA_REQUIRE_API_KEY=true` the key becomes mandatory and
        anonymous calls answer 401 `MARKET_DATA_API_KEY_REQUIRED`.
  /api/v1/dextools/events:
    get:
      operationId: DextoolsController_events_v1
      parameters:
        - name: fromBlock
          required: true
          in: query
          schema:
            type: integer
            minimum: 0
            maximum: 9007199254740991
        - name: toBlock
          required: true
          in: query
          schema:
            type: integer
            minimum: 0
            maximum: 9007199254740991
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Events in block order.
          content:
            application/json:
              schema:
                type: object
                properties:
                  events:
                    type: array
                    items:
                      type: object
                      properties:
                        amount0:
                          type: string
                          pattern: ^\d+(?:\.\d+)$
                        amount1:
                          type: string
                          pattern: ^\d+(?:\.\d+)$
                        asset0In:
                          type: string
                          pattern: ^\d+(?:\.\d+)$
                        asset0Out:
                          type: string
                          pattern: ^\d+(?:\.\d+)$
                        asset1In:
                          type: string
                          pattern: ^\d+(?:\.\d+)$
                        asset1Out:
                          type: string
                          pattern: ^\d+(?:\.\d+)$
                        block:
                          type: object
                          properties:
                            blockNumber:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                            blockTimestamp:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                          required:
                            - blockNumber
                            - blockTimestamp
                          additionalProperties: false
                        eventIndex:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        eventType:
                          type: string
                          enum:
                            - creation
                            - swap
                            - join
                            - exit
                        maker:
                          type: string
                        pairId:
                          type: string
                        reserves:
                          type: object
                          properties:
                            asset0:
                              type: string
                              pattern: ^\d+(?:\.\d+)$
                            asset1:
                              type: string
                              pattern: ^\d+(?:\.\d+)$
                          required:
                            - asset0
                            - asset1
                          additionalProperties: false
                        txnId:
                          type: string
                        txnIndex:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                      required:
                        - block
                        - eventIndex
                        - eventType
                        - maker
                        - pairId
                        - txnId
                        - txnIndex
                      additionalProperties: false
                required:
                  - events
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: Invalid or too large block range.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '401':
          description: Credentials are missing, malformed, expired or revoked.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '403':
          description: The credential may not call this route.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        '429':
          $ref: '#/components/responses/DextoolsRateLimited'
        '503':
          description: The PQS market projection is not configured.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DextoolsError'
        default:
          $ref: '#/components/responses/DextoolsError'
      security:
        - {}
        - apiKey: []
      summary: >-
        Creation, swap and join events in the inclusive block (ledger offset)
        range.
      tags:
        - dextools adapter
      x-api-key-scope: read
      description: >-
        Anonymous calls are accepted under a per-IP budget; an `X-API-Key`
        raises the limit. When the deployment sets
        `MARKET_DATA_REQUIRE_API_KEY=true` the key becomes mandatory and
        anonymous calls answer 401 `MARKET_DATA_API_KEY_REQUIRED`.
  /api/v1/wallet/providers:
    get:
      operationId: SuperappWalletProviderController_directory_v1
      parameters:
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: >-
            Static provider metadata with explicit preview/devnet/mainnet
            readiness.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    minItems: 5
                    maxItems: 5
                    type: array
                    items:
                      type: object
                      properties:
                        current:
                          type: object
                          properties:
                            connectionProviderId:
                              anyOf:
                                - type: string
                                  minLength: 3
                                  maxLength: 64
                                  pattern: ^[a-z0-9](?:[a-z0-9.-]{1,62}[a-z0-9])$
                                - type: 'null'
                            dataMode:
                              type: string
                              enum:
                                - none
                                - simulated
                            readiness:
                              type: string
                              enum:
                                - blocked
                                - preview
                            reasonCode:
                              type: string
                              enum:
                                - PROVIDER_ADAPTER_NOT_CONFIGURED
                                - SIMULATED_PREVIEW_ONLY
                            support:
                              type: string
                              enum:
                                - backend_simulation
                                - frontend_interface_only
                                - not_configured
                            supported:
                              type: boolean
                            appStage:
                              type: string
                              enum:
                                - local
                                - preview
                                - devnet
                                - mainnet
                            effectiveStage:
                              type: string
                              enum:
                                - preview
                                - devnet
                                - mainnet
                          required:
                            - connectionProviderId
                            - dataMode
                            - readiness
                            - reasonCode
                            - support
                            - supported
                            - appStage
                            - effectiveStage
                          additionalProperties: false
                        displayName:
                          type: string
                          minLength: 1
                          maxLength: 64
                        id:
                          type: string
                          enum:
                            - supanova
                            - loop
                            - console
                            - bron
                            - walley
                        interfaceStandard:
                          type: string
                          const: CIP-0103
                        listingKind:
                          type: string
                          enum:
                            - first_party
                            - external_provider
                        stageSupport:
                          type: object
                          properties:
                            devnet:
                              type: object
                              properties:
                                connectionProviderId:
                                  anyOf:
                                    - type: string
                                      minLength: 3
                                      maxLength: 64
                                      pattern: ^[a-z0-9](?:[a-z0-9.-]{1,62}[a-z0-9])$
                                    - type: 'null'
                                dataMode:
                                  type: string
                                  enum:
                                    - none
                                    - simulated
                                readiness:
                                  type: string
                                  enum:
                                    - blocked
                                    - preview
                                reasonCode:
                                  type: string
                                  enum:
                                    - PROVIDER_ADAPTER_NOT_CONFIGURED
                                    - SIMULATED_PREVIEW_ONLY
                                support:
                                  type: string
                                  enum:
                                    - backend_simulation
                                    - frontend_interface_only
                                    - not_configured
                                supported:
                                  type: boolean
                              required:
                                - connectionProviderId
                                - dataMode
                                - readiness
                                - reasonCode
                                - support
                                - supported
                              additionalProperties: false
                            mainnet:
                              type: object
                              properties:
                                connectionProviderId:
                                  anyOf:
                                    - type: string
                                      minLength: 3
                                      maxLength: 64
                                      pattern: ^[a-z0-9](?:[a-z0-9.-]{1,62}[a-z0-9])$
                                    - type: 'null'
                                dataMode:
                                  type: string
                                  enum:
                                    - none
                                    - simulated
                                readiness:
                                  type: string
                                  enum:
                                    - blocked
                                    - preview
                                reasonCode:
                                  type: string
                                  enum:
                                    - PROVIDER_ADAPTER_NOT_CONFIGURED
                                    - SIMULATED_PREVIEW_ONLY
                                support:
                                  type: string
                                  enum:
                                    - backend_simulation
                                    - frontend_interface_only
                                    - not_configured
                                supported:
                                  type: boolean
                              required:
                                - connectionProviderId
                                - dataMode
                                - readiness
                                - reasonCode
                                - support
                                - supported
                              additionalProperties: false
                            preview:
                              type: object
                              properties:
                                connectionProviderId:
                                  anyOf:
                                    - type: string
                                      minLength: 3
                                      maxLength: 64
                                      pattern: ^[a-z0-9](?:[a-z0-9.-]{1,62}[a-z0-9])$
                                    - type: 'null'
                                dataMode:
                                  type: string
                                  enum:
                                    - none
                                    - simulated
                                readiness:
                                  type: string
                                  enum:
                                    - blocked
                                    - preview
                                reasonCode:
                                  type: string
                                  enum:
                                    - PROVIDER_ADAPTER_NOT_CONFIGURED
                                    - SIMULATED_PREVIEW_ONLY
                                support:
                                  type: string
                                  enum:
                                    - backend_simulation
                                    - frontend_interface_only
                                    - not_configured
                                supported:
                                  type: boolean
                              required:
                                - connectionProviderId
                                - dataMode
                                - readiness
                                - reasonCode
                                - support
                                - supported
                              additionalProperties: false
                          required:
                            - devnet
                            - mainnet
                            - preview
                          additionalProperties: false
                        walletKind:
                          type: string
                          const: canton
                      required:
                        - current
                        - displayName
                        - id
                        - interfaceStandard
                        - listingKind
                        - stageSupport
                        - walletKind
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      asOf:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      catalogVersion:
                        type: string
                        const: 2026-08-05.1
                      dataMode:
                        type: string
                        const: configuration
                      disclaimer:
                        type: string
                        minLength: 1
                        maxLength: 1024
                      networkId:
                        type: string
                        pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                    required:
                      - asOf
                      - catalogVersion
                      - dataMode
                      - disclaimer
                      - networkId
                    additionalProperties: false
                required:
                  - items
                  - meta
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '429':
          $ref: '#/components/responses/RateLimited'
        default:
          $ref: '#/components/responses/ApiError'
      security: []
      summary: Read stage-specific Supanova wallet provider readiness.
      tags:
        - wallet providers
  /api/v1/me/wallets/{connectionId}/deposit-instructions:
    get:
      operationId: SuperappWalletController_depositInstructions_v1
      parameters:
        - name: connectionId
          required: true
          in: path
          schema:
            format: uuid
            type: string
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Owned wallet deposit destination.
          content:
            application/json:
              schema:
                type: object
                properties:
                  assetAcceptance:
                    type: string
                    const: wallet-and-ledger-controlled
                  destination:
                    type: object
                    properties:
                      address:
                        type: string
                        description: >-
                          Opaque, case-sensitive Canton Party ID containing
                          3-512 Unicode scalar values with no normalization,
                          edge whitespace, or C0/C1 control characters.
                        minLength: 3
                        maxLength: 512
                      addressKind:
                        type: string
                        const: canton-party-id
                      copyValue:
                        type: string
                        description: >-
                          Opaque, case-sensitive Canton Party ID containing
                          3-512 Unicode scalar values with no normalization,
                          edge whitespace, or C0/C1 control characters.
                        minLength: 3
                        maxLength: 512
                      networkId:
                        type: string
                        pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                      partyId:
                        type: string
                        description: >-
                          Opaque, case-sensitive Canton Party ID containing
                          3-512 Unicode scalar values with no normalization,
                          edge whitespace, or C0/C1 control characters.
                        minLength: 3
                        maxLength: 512
                    required:
                      - address
                      - addressKind
                      - copyValue
                      - networkId
                      - partyId
                    additionalProperties: false
                  instructions:
                    minItems: 2
                    maxItems: 4
                    type: array
                    items:
                      type: object
                      properties:
                        body:
                          type: string
                          minLength: 1
                          maxLength: 500
                        step:
                          type: integer
                          minimum: 1
                          maximum: 4
                        title:
                          type: string
                          minLength: 1
                          maxLength: 100
                      required:
                        - body
                        - step
                        - title
                      additionalProperties: false
                  provenance:
                    type: object
                    properties:
                      appStage:
                        type: string
                        enum:
                          - local
                          - preview
                          - devnet
                          - mainnet
                      asOf:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      dataMode:
                        type: string
                        enum:
                          - projected
                          - simulated
                      disclaimer:
                        type: string
                        minLength: 1
                        maxLength: 1024
                      sourceAuthority:
                        type: string
                        enum:
                          - canton-projection
                          - verified-preview-wallet-binding
                    required:
                      - appStage
                      - asOf
                      - dataMode
                      - disclaimer
                      - sourceAuthority
                    additionalProperties: false
                  providerDirectoryId:
                    anyOf:
                      - type: string
                        enum:
                          - supanova
                          - loop
                          - console
                          - bron
                          - walley
                      - type: 'null'
                  providerId:
                    type: string
                    minLength: 3
                    maxLength: 64
                    pattern: ^[a-z0-9](?:[a-z0-9.-]{1,62}[a-z0-9])$
                  walletConnectionId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                required:
                  - assetAcceptance
                  - destination
                  - instructions
                  - provenance
                  - providerDirectoryId
                  - providerId
                  - walletConnectionId
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The wallet connection identifier is invalid. Also:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No owned wallet connection exists on this network.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A reviewed Canton-backed deposit read adapter is not configured.
            Also: `AUTHENTICATION_UNAVAILABLE`, `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: >-
        Read deposit instructions for an owned, server-verified wallet
        connection.
      tags:
        - superapp wallet
  /api/v1/me/activity/summary:
    get:
      operationId: SuperappWalletController_activitySummary_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Account-wide activity totals independent from cursor filters.
          content:
            application/json:
              schema:
                type: object
                properties:
                  creatorRewards:
                    type: object
                    properties:
                      distributionCount:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      totalCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                    required:
                      - distributionCount
                      - totalCc
                    additionalProperties: false
                  graduations:
                    type: object
                    properties:
                      count:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      latest:
                        anyOf:
                          - type: object
                            properties:
                              occurredAt:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              reference:
                                type: string
                                minLength: 1
                                maxLength: 128
                              token:
                                type: object
                                properties:
                                  instrumentId:
                                    type: object
                                    properties:
                                      admin:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                    required:
                                      - admin
                                      - id
                                    additionalProperties: false
                                  name:
                                    type: string
                                    minLength: 1
                                    maxLength: 100
                                  slug:
                                    type: string
                                    minLength: 1
                                    maxLength: 64
                                    pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
                                  ticker:
                                    type: string
                                    minLength: 1
                                    maxLength: 16
                                required:
                                  - instrumentId
                                  - name
                                  - slug
                                  - ticker
                                additionalProperties: false
                            required:
                              - occurredAt
                              - reference
                              - token
                            additionalProperties: false
                          - type: 'null'
                    required:
                      - count
                      - latest
                    additionalProperties: false
                  launches:
                    type: object
                    properties:
                      count:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      latest:
                        anyOf:
                          - type: object
                            properties:
                              occurredAt:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              reference:
                                type: string
                                minLength: 1
                                maxLength: 128
                              token:
                                type: object
                                properties:
                                  instrumentId:
                                    type: object
                                    properties:
                                      admin:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                    required:
                                      - admin
                                      - id
                                    additionalProperties: false
                                  name:
                                    type: string
                                    minLength: 1
                                    maxLength: 100
                                  slug:
                                    type: string
                                    minLength: 1
                                    maxLength: 64
                                    pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
                                  ticker:
                                    type: string
                                    minLength: 1
                                    maxLength: 16
                                required:
                                  - instrumentId
                                  - name
                                  - slug
                                  - ticker
                                additionalProperties: false
                            required:
                              - occurredAt
                              - reference
                              - token
                            additionalProperties: false
                          - type: 'null'
                    required:
                      - count
                      - latest
                    additionalProperties: false
                  meta:
                    type: object
                    properties:
                      asOf:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      dataMode:
                        type: string
                        enum:
                          - projected
                          - simulated
                      disclaimer:
                        type: string
                        minLength: 1
                        maxLength: 1024
                      networkId:
                        type: string
                        pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                      schemaVersion:
                        type: string
                        const: '1'
                    required:
                      - asOf
                      - dataMode
                      - disclaimer
                      - networkId
                      - schemaVersion
                    additionalProperties: false
                  trading:
                    type: object
                    properties:
                      buyCount:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      sellCount:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      swapCount:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      totalCount:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      volumeCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                    required:
                      - buyCount
                      - sellCount
                      - swapCount
                      - totalCount
                      - volumeCc
                    additionalProperties: false
                required:
                  - creatorRewards
                  - graduations
                  - launches
                  - meta
                  - trading
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A reviewed Canton activity projection is not configured. Also:
            `AUTHENTICATION_UNAVAILABLE`, `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Read unfiltered account-wide activity metrics for the dashboard cards.
      tags:
        - superapp wallet
  /api/v1/me/activity/{activityId}:
    get:
      operationId: SuperappWalletController_activityDetail_v1
      parameters:
        - name: activityId
          required: true
          in: path
          schema:
            maxLength: 128
            minLength: 1
            type: string
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: >-
            Owned typed transaction detail with an authority-safe explorer
            reference.
          content:
            application/json:
              schema:
                type: object
                properties:
                  activity:
                    oneOf:
                      - type: object
                        properties:
                          display:
                            type: object
                            properties:
                              primaryAmount:
                                type: object
                                properties:
                                  amount:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                  sign:
                                    type: string
                                    enum:
                                      - credit
                                      - debit
                                      - neutral
                                  symbol:
                                    type: string
                                    minLength: 1
                                    maxLength: 32
                                required:
                                  - amount
                                  - sign
                                  - symbol
                                additionalProperties: false
                              secondaryAmount:
                                anyOf:
                                  - type: object
                                    properties:
                                      amount:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      sign:
                                        type: string
                                        enum:
                                          - credit
                                          - debit
                                          - neutral
                                      symbol:
                                        type: string
                                        minLength: 1
                                        maxLength: 32
                                    required:
                                      - amount
                                      - sign
                                      - symbol
                                    additionalProperties: false
                                  - type: 'null'
                              subtitle:
                                type: string
                                minLength: 1
                                maxLength: 200
                              title:
                                type: string
                                minLength: 1
                                maxLength: 100
                            required:
                              - primaryAmount
                              - secondaryAmount
                              - subtitle
                              - title
                            additionalProperties: false
                          finality:
                            type: string
                            enum:
                              - ledger-confirmed
                              - product-record
                              - simulated
                          id:
                            type: string
                            minLength: 1
                            maxLength: 128
                          occurredAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          operationId:
                            anyOf:
                              - type: string
                                format: uuid
                                pattern: >-
                                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              - type: 'null'
                          status:
                            type: string
                            enum:
                              - recorded
                              - pending
                              - confirmed
                              - failed
                          details:
                            type: object
                            properties:
                              feeCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              notionalCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              quoteReference:
                                type: string
                                minLength: 1
                                maxLength: 128
                              token:
                                type: object
                                properties:
                                  instrumentId:
                                    type: object
                                    properties:
                                      admin:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                    required:
                                      - admin
                                      - id
                                    additionalProperties: false
                                  name:
                                    type: string
                                    minLength: 1
                                    maxLength: 100
                                  slug:
                                    type: string
                                    minLength: 1
                                    maxLength: 64
                                    pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
                                  ticker:
                                    type: string
                                    minLength: 1
                                    maxLength: 16
                                required:
                                  - instrumentId
                                  - name
                                  - slug
                                  - ticker
                                additionalProperties: false
                              tokenAmount:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              unitPriceCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            required:
                              - feeCc
                              - notionalCc
                              - quoteReference
                              - token
                              - tokenAmount
                              - unitPriceCc
                            additionalProperties: false
                          kind:
                            type: string
                            const: buy
                        required:
                          - display
                          - finality
                          - id
                          - occurredAt
                          - operationId
                          - status
                          - details
                          - kind
                        additionalProperties: false
                      - type: object
                        properties:
                          display:
                            type: object
                            properties:
                              primaryAmount:
                                type: object
                                properties:
                                  amount:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                  sign:
                                    type: string
                                    enum:
                                      - credit
                                      - debit
                                      - neutral
                                  symbol:
                                    type: string
                                    minLength: 1
                                    maxLength: 32
                                required:
                                  - amount
                                  - sign
                                  - symbol
                                additionalProperties: false
                              secondaryAmount:
                                anyOf:
                                  - type: object
                                    properties:
                                      amount:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      sign:
                                        type: string
                                        enum:
                                          - credit
                                          - debit
                                          - neutral
                                      symbol:
                                        type: string
                                        minLength: 1
                                        maxLength: 32
                                    required:
                                      - amount
                                      - sign
                                      - symbol
                                    additionalProperties: false
                                  - type: 'null'
                              subtitle:
                                type: string
                                minLength: 1
                                maxLength: 200
                              title:
                                type: string
                                minLength: 1
                                maxLength: 100
                            required:
                              - primaryAmount
                              - secondaryAmount
                              - subtitle
                              - title
                            additionalProperties: false
                          finality:
                            type: string
                            enum:
                              - ledger-confirmed
                              - product-record
                              - simulated
                          id:
                            type: string
                            minLength: 1
                            maxLength: 128
                          occurredAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          operationId:
                            anyOf:
                              - type: string
                                format: uuid
                                pattern: >-
                                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              - type: 'null'
                          status:
                            type: string
                            enum:
                              - recorded
                              - pending
                              - confirmed
                              - failed
                          details:
                            type: object
                            properties:
                              feeCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              netProceedsCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              notionalCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              quoteReference:
                                type: string
                                minLength: 1
                                maxLength: 128
                              token:
                                type: object
                                properties:
                                  instrumentId:
                                    type: object
                                    properties:
                                      admin:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                    required:
                                      - admin
                                      - id
                                    additionalProperties: false
                                  name:
                                    type: string
                                    minLength: 1
                                    maxLength: 100
                                  slug:
                                    type: string
                                    minLength: 1
                                    maxLength: 64
                                    pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
                                  ticker:
                                    type: string
                                    minLength: 1
                                    maxLength: 16
                                required:
                                  - instrumentId
                                  - name
                                  - slug
                                  - ticker
                                additionalProperties: false
                              tokenAmount:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              unitPriceCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            required:
                              - feeCc
                              - netProceedsCc
                              - notionalCc
                              - quoteReference
                              - token
                              - tokenAmount
                              - unitPriceCc
                            additionalProperties: false
                          kind:
                            type: string
                            const: sell
                        required:
                          - display
                          - finality
                          - id
                          - occurredAt
                          - operationId
                          - status
                          - details
                          - kind
                        additionalProperties: false
                      - type: object
                        properties:
                          display:
                            type: object
                            properties:
                              primaryAmount:
                                type: object
                                properties:
                                  amount:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                  sign:
                                    type: string
                                    enum:
                                      - credit
                                      - debit
                                      - neutral
                                  symbol:
                                    type: string
                                    minLength: 1
                                    maxLength: 32
                                required:
                                  - amount
                                  - sign
                                  - symbol
                                additionalProperties: false
                              secondaryAmount:
                                anyOf:
                                  - type: object
                                    properties:
                                      amount:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      sign:
                                        type: string
                                        enum:
                                          - credit
                                          - debit
                                          - neutral
                                      symbol:
                                        type: string
                                        minLength: 1
                                        maxLength: 32
                                    required:
                                      - amount
                                      - sign
                                      - symbol
                                    additionalProperties: false
                                  - type: 'null'
                              subtitle:
                                type: string
                                minLength: 1
                                maxLength: 200
                              title:
                                type: string
                                minLength: 1
                                maxLength: 100
                            required:
                              - primaryAmount
                              - secondaryAmount
                              - subtitle
                              - title
                            additionalProperties: false
                          finality:
                            type: string
                            enum:
                              - ledger-confirmed
                              - product-record
                              - simulated
                          id:
                            type: string
                            minLength: 1
                            maxLength: 128
                          occurredAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          operationId:
                            anyOf:
                              - type: string
                                format: uuid
                                pattern: >-
                                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              - type: 'null'
                          status:
                            type: string
                            enum:
                              - recorded
                              - pending
                              - confirmed
                              - failed
                          details:
                            type: object
                            properties:
                              feeCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              input:
                                type: object
                                properties:
                                  instrumentId:
                                    type: object
                                    properties:
                                      admin:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                    required:
                                      - admin
                                      - id
                                    additionalProperties: false
                                  slug:
                                    anyOf:
                                      - type: string
                                        minLength: 1
                                        maxLength: 64
                                      - type: 'null'
                                  symbol:
                                    type: string
                                    minLength: 1
                                    maxLength: 32
                                  amount:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                required:
                                  - instrumentId
                                  - slug
                                  - symbol
                                  - amount
                                additionalProperties: false
                              notionalCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              output:
                                type: object
                                properties:
                                  instrumentId:
                                    type: object
                                    properties:
                                      admin:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                    required:
                                      - admin
                                      - id
                                    additionalProperties: false
                                  slug:
                                    anyOf:
                                      - type: string
                                        minLength: 1
                                        maxLength: 64
                                      - type: 'null'
                                  symbol:
                                    type: string
                                    minLength: 1
                                    maxLength: 32
                                  amount:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                required:
                                  - instrumentId
                                  - slug
                                  - symbol
                                  - amount
                                additionalProperties: false
                              quoteReference:
                                type: string
                                minLength: 1
                                maxLength: 128
                              route:
                                minItems: 2
                                maxItems: 8
                                type: array
                                items:
                                  type: object
                                  properties:
                                    admin:
                                      type: string
                                      minLength: 1
                                      maxLength: 512
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 512
                                  required:
                                    - admin
                                    - id
                                  additionalProperties: false
                            required:
                              - feeCc
                              - input
                              - notionalCc
                              - output
                              - quoteReference
                              - route
                            additionalProperties: false
                          kind:
                            type: string
                            const: swap
                        required:
                          - display
                          - finality
                          - id
                          - occurredAt
                          - operationId
                          - status
                          - details
                          - kind
                        additionalProperties: false
                      - type: object
                        properties:
                          display:
                            type: object
                            properties:
                              primaryAmount:
                                type: object
                                properties:
                                  amount:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                  sign:
                                    type: string
                                    enum:
                                      - credit
                                      - debit
                                      - neutral
                                  symbol:
                                    type: string
                                    minLength: 1
                                    maxLength: 32
                                required:
                                  - amount
                                  - sign
                                  - symbol
                                additionalProperties: false
                              secondaryAmount:
                                anyOf:
                                  - type: object
                                    properties:
                                      amount:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      sign:
                                        type: string
                                        enum:
                                          - credit
                                          - debit
                                          - neutral
                                      symbol:
                                        type: string
                                        minLength: 1
                                        maxLength: 32
                                    required:
                                      - amount
                                      - sign
                                      - symbol
                                    additionalProperties: false
                                  - type: 'null'
                              subtitle:
                                type: string
                                minLength: 1
                                maxLength: 200
                              title:
                                type: string
                                minLength: 1
                                maxLength: 100
                            required:
                              - primaryAmount
                              - secondaryAmount
                              - subtitle
                              - title
                            additionalProperties: false
                          finality:
                            type: string
                            enum:
                              - ledger-confirmed
                              - product-record
                              - simulated
                          id:
                            type: string
                            minLength: 1
                            maxLength: 128
                          occurredAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          operationId:
                            anyOf:
                              - type: string
                                format: uuid
                                pattern: >-
                                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              - type: 'null'
                          status:
                            type: string
                            enum:
                              - recorded
                              - pending
                              - confirmed
                              - failed
                          details:
                            type: object
                            properties:
                              amount:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              counterpartyHint:
                                type: string
                                minLength: 1
                                maxLength: 100
                              instrumentId:
                                type: object
                                properties:
                                  admin:
                                    type: string
                                    minLength: 1
                                    maxLength: 512
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 512
                                required:
                                  - admin
                                  - id
                                additionalProperties: false
                              ccDebitCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              feeCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              memo:
                                anyOf:
                                  - type: string
                                    minLength: 1
                                    maxLength: 280
                                  - type: 'null'
                              symbol:
                                type: string
                                minLength: 1
                                maxLength: 32
                              userMemo:
                                type: string
                                minLength: 1
                                maxLength: 128
                            required:
                              - amount
                              - counterpartyHint
                              - instrumentId
                              - ccDebitCc
                              - feeCc
                              - memo
                              - symbol
                            additionalProperties: false
                          kind:
                            type: string
                            const: send
                        required:
                          - display
                          - finality
                          - id
                          - occurredAt
                          - operationId
                          - status
                          - details
                          - kind
                        additionalProperties: false
                      - type: object
                        properties:
                          display:
                            type: object
                            properties:
                              primaryAmount:
                                type: object
                                properties:
                                  amount:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                  sign:
                                    type: string
                                    enum:
                                      - credit
                                      - debit
                                      - neutral
                                  symbol:
                                    type: string
                                    minLength: 1
                                    maxLength: 32
                                required:
                                  - amount
                                  - sign
                                  - symbol
                                additionalProperties: false
                              secondaryAmount:
                                anyOf:
                                  - type: object
                                    properties:
                                      amount:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      sign:
                                        type: string
                                        enum:
                                          - credit
                                          - debit
                                          - neutral
                                      symbol:
                                        type: string
                                        minLength: 1
                                        maxLength: 32
                                    required:
                                      - amount
                                      - sign
                                      - symbol
                                    additionalProperties: false
                                  - type: 'null'
                              subtitle:
                                type: string
                                minLength: 1
                                maxLength: 200
                              title:
                                type: string
                                minLength: 1
                                maxLength: 100
                            required:
                              - primaryAmount
                              - secondaryAmount
                              - subtitle
                              - title
                            additionalProperties: false
                          finality:
                            type: string
                            enum:
                              - ledger-confirmed
                              - product-record
                              - simulated
                          id:
                            type: string
                            minLength: 1
                            maxLength: 128
                          occurredAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          operationId:
                            anyOf:
                              - type: string
                                format: uuid
                                pattern: >-
                                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              - type: 'null'
                          status:
                            type: string
                            enum:
                              - recorded
                              - pending
                              - confirmed
                              - failed
                          details:
                            type: object
                            properties:
                              amountCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              sourceHint:
                                type: string
                                minLength: 1
                                maxLength: 100
                            required:
                              - amountCc
                              - sourceHint
                            additionalProperties: false
                          kind:
                            type: string
                            const: deposit
                        required:
                          - display
                          - finality
                          - id
                          - occurredAt
                          - operationId
                          - status
                          - details
                          - kind
                        additionalProperties: false
                      - type: object
                        properties:
                          display:
                            type: object
                            properties:
                              primaryAmount:
                                type: object
                                properties:
                                  amount:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                  sign:
                                    type: string
                                    enum:
                                      - credit
                                      - debit
                                      - neutral
                                  symbol:
                                    type: string
                                    minLength: 1
                                    maxLength: 32
                                required:
                                  - amount
                                  - sign
                                  - symbol
                                additionalProperties: false
                              secondaryAmount:
                                anyOf:
                                  - type: object
                                    properties:
                                      amount:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      sign:
                                        type: string
                                        enum:
                                          - credit
                                          - debit
                                          - neutral
                                      symbol:
                                        type: string
                                        minLength: 1
                                        maxLength: 32
                                    required:
                                      - amount
                                      - sign
                                      - symbol
                                    additionalProperties: false
                                  - type: 'null'
                              subtitle:
                                type: string
                                minLength: 1
                                maxLength: 200
                              title:
                                type: string
                                minLength: 1
                                maxLength: 100
                            required:
                              - primaryAmount
                              - secondaryAmount
                              - subtitle
                              - title
                            additionalProperties: false
                          finality:
                            type: string
                            enum:
                              - ledger-confirmed
                              - product-record
                              - simulated
                          id:
                            type: string
                            minLength: 1
                            maxLength: 128
                          occurredAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          operationId:
                            anyOf:
                              - type: string
                                format: uuid
                                pattern: >-
                                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              - type: 'null'
                          status:
                            type: string
                            enum:
                              - recorded
                              - pending
                              - confirmed
                              - failed
                          details:
                            type: object
                            properties:
                              creationFeeCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              launchReference:
                                type: string
                                minLength: 1
                                maxLength: 128
                              token:
                                type: object
                                properties:
                                  instrumentId:
                                    type: object
                                    properties:
                                      admin:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                    required:
                                      - admin
                                      - id
                                    additionalProperties: false
                                  name:
                                    type: string
                                    minLength: 1
                                    maxLength: 100
                                  slug:
                                    type: string
                                    minLength: 1
                                    maxLength: 64
                                    pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
                                  ticker:
                                    type: string
                                    minLength: 1
                                    maxLength: 16
                                required:
                                  - instrumentId
                                  - name
                                  - slug
                                  - ticker
                                additionalProperties: false
                            required:
                              - creationFeeCc
                              - launchReference
                              - token
                            additionalProperties: false
                          kind:
                            type: string
                            const: launch
                        required:
                          - display
                          - finality
                          - id
                          - occurredAt
                          - operationId
                          - status
                          - details
                          - kind
                        additionalProperties: false
                      - type: object
                        properties:
                          display:
                            type: object
                            properties:
                              primaryAmount:
                                type: object
                                properties:
                                  amount:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                  sign:
                                    type: string
                                    enum:
                                      - credit
                                      - debit
                                      - neutral
                                  symbol:
                                    type: string
                                    minLength: 1
                                    maxLength: 32
                                required:
                                  - amount
                                  - sign
                                  - symbol
                                additionalProperties: false
                              secondaryAmount:
                                anyOf:
                                  - type: object
                                    properties:
                                      amount:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      sign:
                                        type: string
                                        enum:
                                          - credit
                                          - debit
                                          - neutral
                                      symbol:
                                        type: string
                                        minLength: 1
                                        maxLength: 32
                                    required:
                                      - amount
                                      - sign
                                      - symbol
                                    additionalProperties: false
                                  - type: 'null'
                              subtitle:
                                type: string
                                minLength: 1
                                maxLength: 200
                              title:
                                type: string
                                minLength: 1
                                maxLength: 100
                            required:
                              - primaryAmount
                              - secondaryAmount
                              - subtitle
                              - title
                            additionalProperties: false
                          finality:
                            type: string
                            enum:
                              - ledger-confirmed
                              - product-record
                              - simulated
                          id:
                            type: string
                            minLength: 1
                            maxLength: 128
                          occurredAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          operationId:
                            anyOf:
                              - type: string
                                format: uuid
                                pattern: >-
                                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              - type: 'null'
                          status:
                            type: string
                            enum:
                              - recorded
                              - pending
                              - confirmed
                              - failed
                          details:
                            type: object
                            properties:
                              graduationThresholdCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              token:
                                type: object
                                properties:
                                  instrumentId:
                                    type: object
                                    properties:
                                      admin:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                    required:
                                      - admin
                                      - id
                                    additionalProperties: false
                                  name:
                                    type: string
                                    minLength: 1
                                    maxLength: 100
                                  slug:
                                    type: string
                                    minLength: 1
                                    maxLength: 64
                                    pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
                                  ticker:
                                    type: string
                                    minLength: 1
                                    maxLength: 16
                                required:
                                  - instrumentId
                                  - name
                                  - slug
                                  - ticker
                                additionalProperties: false
                            required:
                              - graduationThresholdCc
                              - token
                            additionalProperties: false
                          kind:
                            type: string
                            const: graduation
                        required:
                          - display
                          - finality
                          - id
                          - occurredAt
                          - operationId
                          - status
                          - details
                          - kind
                        additionalProperties: false
                      - type: object
                        properties:
                          display:
                            type: object
                            properties:
                              primaryAmount:
                                type: object
                                properties:
                                  amount:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                  sign:
                                    type: string
                                    enum:
                                      - credit
                                      - debit
                                      - neutral
                                  symbol:
                                    type: string
                                    minLength: 1
                                    maxLength: 32
                                required:
                                  - amount
                                  - sign
                                  - symbol
                                additionalProperties: false
                              secondaryAmount:
                                anyOf:
                                  - type: object
                                    properties:
                                      amount:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      sign:
                                        type: string
                                        enum:
                                          - credit
                                          - debit
                                          - neutral
                                      symbol:
                                        type: string
                                        minLength: 1
                                        maxLength: 32
                                    required:
                                      - amount
                                      - sign
                                      - symbol
                                    additionalProperties: false
                                  - type: 'null'
                              subtitle:
                                type: string
                                minLength: 1
                                maxLength: 200
                              title:
                                type: string
                                minLength: 1
                                maxLength: 100
                            required:
                              - primaryAmount
                              - secondaryAmount
                              - subtitle
                              - title
                            additionalProperties: false
                          finality:
                            type: string
                            enum:
                              - ledger-confirmed
                              - product-record
                              - simulated
                          id:
                            type: string
                            minLength: 1
                            maxLength: 128
                          occurredAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          operationId:
                            anyOf:
                              - type: string
                                format: uuid
                                pattern: >-
                                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              - type: 'null'
                          status:
                            type: string
                            enum:
                              - recorded
                              - pending
                              - confirmed
                              - failed
                          details:
                            type: object
                            properties:
                              amountCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              distributionReference:
                                type: string
                                minLength: 1
                                maxLength: 128
                              token:
                                type: object
                                properties:
                                  instrumentId:
                                    type: object
                                    properties:
                                      admin:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                    required:
                                      - admin
                                      - id
                                    additionalProperties: false
                                  name:
                                    type: string
                                    minLength: 1
                                    maxLength: 100
                                  slug:
                                    type: string
                                    minLength: 1
                                    maxLength: 64
                                    pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
                                  ticker:
                                    type: string
                                    minLength: 1
                                    maxLength: 16
                                required:
                                  - instrumentId
                                  - name
                                  - slug
                                  - ticker
                                additionalProperties: false
                            required:
                              - amountCc
                              - distributionReference
                              - token
                            additionalProperties: false
                          kind:
                            type: string
                            const: creator_reward
                        required:
                          - display
                          - finality
                          - id
                          - occurredAt
                          - operationId
                          - status
                          - details
                          - kind
                        additionalProperties: false
                  explorerReference:
                    oneOf:
                      - type: object
                        properties:
                          enabled:
                            type: boolean
                            const: false
                          reason:
                            type: string
                            enum:
                              - authoritative-update-unavailable
                              - explorer-not-approved
                          sourceAuthority:
                            type: 'null'
                          updateId:
                            type: 'null'
                          url:
                            type: 'null'
                        required:
                          - enabled
                          - reason
                          - sourceAuthority
                          - updateId
                          - url
                        additionalProperties: false
                      - type: object
                        properties:
                          appStage:
                            type: string
                            enum:
                              - local
                              - preview
                              - devnet
                              - mainnet
                          enabled:
                            type: boolean
                            const: true
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                          reason:
                            type: 'null'
                          sourceAuthority:
                            type: string
                            const: canton-ledger-projection
                          synchronizerId:
                            type: string
                            minLength: 1
                            maxLength: 512
                          updateId:
                            type: string
                            minLength: 1
                            maxLength: 512
                          url:
                            type: string
                            maxLength: 2048
                            format: uri
                            description: >-
                              Backend-derived URL from the stage-pinned explorer
                              prefix and authoritative update ID; never
                              projection-supplied.
                            pattern: ^https://
                        required:
                          - appStage
                          - enabled
                          - networkId
                          - reason
                          - sourceAuthority
                          - synchronizerId
                          - updateId
                          - url
                        additionalProperties: false
                  meta:
                    type: object
                    properties:
                      asOf:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      dataMode:
                        type: string
                        enum:
                          - projected
                          - simulated
                      disclaimer:
                        type: string
                        minLength: 1
                        maxLength: 1024
                      networkId:
                        type: string
                        pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                      schemaVersion:
                        type: string
                        const: '1'
                    required:
                      - asOf
                      - dataMode
                      - disclaimer
                      - networkId
                      - schemaVersion
                    additionalProperties: false
                required:
                  - activity
                  - explorerReference
                  - meta
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The activity identifier is invalid. Also: `VALIDATION_FAILED`,
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            A valid product account is required. Also:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No matching activity exists for this account.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A reviewed Canton activity projection is not configured. Also:
            `AUTHENTICATION_UNAVAILABLE`, `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Read one owned typed transaction record for the authenticated account.
      tags:
        - superapp wallet
  /api/v1/me/activity:
    get:
      operationId: SuperappWalletController_activity_v1
      parameters:
        - name: limit
          required: false
          in: query
          schema:
            default: 20
            maximum: 50
            minimum: 1
            type: integer
        - name: cursor
          required: false
          in: query
          schema:
            maxLength: 512
            minLength: 1
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            type: string
        - name: from
          required: false
          in: query
          schema:
            format: date-time
            type: string
        - name: status
          required: false
          in: query
          schema:
            enum:
              - recorded
              - pending
              - confirmed
              - failed
            type: string
        - name: q
          required: false
          in: query
          schema:
            maxLength: 100
            minLength: 1
            type: string
        - name: group
          required: false
          in: query
          schema:
            enum:
              - trades
              - transfers
              - rewards
              - launches
              - deposits
              - graduations
            type: string
        - name: kind
          required: false
          in: query
          schema:
            enum:
              - buy
              - sell
              - swap
              - send
              - deposit
              - launch
              - graduation
              - creator_reward
            type: string
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Typed, cursor-paginated activity cards.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      oneOf:
                        - type: object
                          properties:
                            display:
                              type: object
                              properties:
                                primaryAmount:
                                  type: object
                                  properties:
                                    amount:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                    sign:
                                      type: string
                                      enum:
                                        - credit
                                        - debit
                                        - neutral
                                    symbol:
                                      type: string
                                      minLength: 1
                                      maxLength: 32
                                  required:
                                    - amount
                                    - sign
                                    - symbol
                                  additionalProperties: false
                                secondaryAmount:
                                  anyOf:
                                    - type: object
                                      properties:
                                        amount:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        sign:
                                          type: string
                                          enum:
                                            - credit
                                            - debit
                                            - neutral
                                        symbol:
                                          type: string
                                          minLength: 1
                                          maxLength: 32
                                      required:
                                        - amount
                                        - sign
                                        - symbol
                                      additionalProperties: false
                                    - type: 'null'
                                subtitle:
                                  type: string
                                  minLength: 1
                                  maxLength: 200
                                title:
                                  type: string
                                  minLength: 1
                                  maxLength: 100
                              required:
                                - primaryAmount
                                - secondaryAmount
                                - subtitle
                                - title
                              additionalProperties: false
                            finality:
                              type: string
                              enum:
                                - ledger-confirmed
                                - product-record
                                - simulated
                            id:
                              type: string
                              minLength: 1
                              maxLength: 128
                            occurredAt:
                              type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                            operationId:
                              anyOf:
                                - type: string
                                  format: uuid
                                  pattern: >-
                                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                - type: 'null'
                            status:
                              type: string
                              enum:
                                - recorded
                                - pending
                                - confirmed
                                - failed
                            details:
                              type: object
                              properties:
                                feeCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                notionalCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                quoteReference:
                                  type: string
                                  minLength: 1
                                  maxLength: 128
                                token:
                                  type: object
                                  properties:
                                    instrumentId:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 512
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 512
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                    name:
                                      type: string
                                      minLength: 1
                                      maxLength: 100
                                    slug:
                                      type: string
                                      minLength: 1
                                      maxLength: 64
                                      pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
                                    ticker:
                                      type: string
                                      minLength: 1
                                      maxLength: 16
                                  required:
                                    - instrumentId
                                    - name
                                    - slug
                                    - ticker
                                  additionalProperties: false
                                tokenAmount:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                unitPriceCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              required:
                                - feeCc
                                - notionalCc
                                - quoteReference
                                - token
                                - tokenAmount
                                - unitPriceCc
                              additionalProperties: false
                            kind:
                              type: string
                              const: buy
                          required:
                            - display
                            - finality
                            - id
                            - occurredAt
                            - operationId
                            - status
                            - details
                            - kind
                          additionalProperties: false
                        - type: object
                          properties:
                            display:
                              type: object
                              properties:
                                primaryAmount:
                                  type: object
                                  properties:
                                    amount:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                    sign:
                                      type: string
                                      enum:
                                        - credit
                                        - debit
                                        - neutral
                                    symbol:
                                      type: string
                                      minLength: 1
                                      maxLength: 32
                                  required:
                                    - amount
                                    - sign
                                    - symbol
                                  additionalProperties: false
                                secondaryAmount:
                                  anyOf:
                                    - type: object
                                      properties:
                                        amount:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        sign:
                                          type: string
                                          enum:
                                            - credit
                                            - debit
                                            - neutral
                                        symbol:
                                          type: string
                                          minLength: 1
                                          maxLength: 32
                                      required:
                                        - amount
                                        - sign
                                        - symbol
                                      additionalProperties: false
                                    - type: 'null'
                                subtitle:
                                  type: string
                                  minLength: 1
                                  maxLength: 200
                                title:
                                  type: string
                                  minLength: 1
                                  maxLength: 100
                              required:
                                - primaryAmount
                                - secondaryAmount
                                - subtitle
                                - title
                              additionalProperties: false
                            finality:
                              type: string
                              enum:
                                - ledger-confirmed
                                - product-record
                                - simulated
                            id:
                              type: string
                              minLength: 1
                              maxLength: 128
                            occurredAt:
                              type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                            operationId:
                              anyOf:
                                - type: string
                                  format: uuid
                                  pattern: >-
                                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                - type: 'null'
                            status:
                              type: string
                              enum:
                                - recorded
                                - pending
                                - confirmed
                                - failed
                            details:
                              type: object
                              properties:
                                feeCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                netProceedsCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                notionalCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                quoteReference:
                                  type: string
                                  minLength: 1
                                  maxLength: 128
                                token:
                                  type: object
                                  properties:
                                    instrumentId:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 512
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 512
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                    name:
                                      type: string
                                      minLength: 1
                                      maxLength: 100
                                    slug:
                                      type: string
                                      minLength: 1
                                      maxLength: 64
                                      pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
                                    ticker:
                                      type: string
                                      minLength: 1
                                      maxLength: 16
                                  required:
                                    - instrumentId
                                    - name
                                    - slug
                                    - ticker
                                  additionalProperties: false
                                tokenAmount:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                unitPriceCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              required:
                                - feeCc
                                - netProceedsCc
                                - notionalCc
                                - quoteReference
                                - token
                                - tokenAmount
                                - unitPriceCc
                              additionalProperties: false
                            kind:
                              type: string
                              const: sell
                          required:
                            - display
                            - finality
                            - id
                            - occurredAt
                            - operationId
                            - status
                            - details
                            - kind
                          additionalProperties: false
                        - type: object
                          properties:
                            display:
                              type: object
                              properties:
                                primaryAmount:
                                  type: object
                                  properties:
                                    amount:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                    sign:
                                      type: string
                                      enum:
                                        - credit
                                        - debit
                                        - neutral
                                    symbol:
                                      type: string
                                      minLength: 1
                                      maxLength: 32
                                  required:
                                    - amount
                                    - sign
                                    - symbol
                                  additionalProperties: false
                                secondaryAmount:
                                  anyOf:
                                    - type: object
                                      properties:
                                        amount:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        sign:
                                          type: string
                                          enum:
                                            - credit
                                            - debit
                                            - neutral
                                        symbol:
                                          type: string
                                          minLength: 1
                                          maxLength: 32
                                      required:
                                        - amount
                                        - sign
                                        - symbol
                                      additionalProperties: false
                                    - type: 'null'
                                subtitle:
                                  type: string
                                  minLength: 1
                                  maxLength: 200
                                title:
                                  type: string
                                  minLength: 1
                                  maxLength: 100
                              required:
                                - primaryAmount
                                - secondaryAmount
                                - subtitle
                                - title
                              additionalProperties: false
                            finality:
                              type: string
                              enum:
                                - ledger-confirmed
                                - product-record
                                - simulated
                            id:
                              type: string
                              minLength: 1
                              maxLength: 128
                            occurredAt:
                              type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                            operationId:
                              anyOf:
                                - type: string
                                  format: uuid
                                  pattern: >-
                                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                - type: 'null'
                            status:
                              type: string
                              enum:
                                - recorded
                                - pending
                                - confirmed
                                - failed
                            details:
                              type: object
                              properties:
                                feeCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                input:
                                  type: object
                                  properties:
                                    instrumentId:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 512
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 512
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                    slug:
                                      anyOf:
                                        - type: string
                                          minLength: 1
                                          maxLength: 64
                                        - type: 'null'
                                    symbol:
                                      type: string
                                      minLength: 1
                                      maxLength: 32
                                    amount:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                  required:
                                    - instrumentId
                                    - slug
                                    - symbol
                                    - amount
                                  additionalProperties: false
                                notionalCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                output:
                                  type: object
                                  properties:
                                    instrumentId:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 512
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 512
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                    slug:
                                      anyOf:
                                        - type: string
                                          minLength: 1
                                          maxLength: 64
                                        - type: 'null'
                                    symbol:
                                      type: string
                                      minLength: 1
                                      maxLength: 32
                                    amount:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                  required:
                                    - instrumentId
                                    - slug
                                    - symbol
                                    - amount
                                  additionalProperties: false
                                quoteReference:
                                  type: string
                                  minLength: 1
                                  maxLength: 128
                                route:
                                  minItems: 2
                                  maxItems: 8
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      admin:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                    required:
                                      - admin
                                      - id
                                    additionalProperties: false
                              required:
                                - feeCc
                                - input
                                - notionalCc
                                - output
                                - quoteReference
                                - route
                              additionalProperties: false
                            kind:
                              type: string
                              const: swap
                          required:
                            - display
                            - finality
                            - id
                            - occurredAt
                            - operationId
                            - status
                            - details
                            - kind
                          additionalProperties: false
                        - type: object
                          properties:
                            display:
                              type: object
                              properties:
                                primaryAmount:
                                  type: object
                                  properties:
                                    amount:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                    sign:
                                      type: string
                                      enum:
                                        - credit
                                        - debit
                                        - neutral
                                    symbol:
                                      type: string
                                      minLength: 1
                                      maxLength: 32
                                  required:
                                    - amount
                                    - sign
                                    - symbol
                                  additionalProperties: false
                                secondaryAmount:
                                  anyOf:
                                    - type: object
                                      properties:
                                        amount:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        sign:
                                          type: string
                                          enum:
                                            - credit
                                            - debit
                                            - neutral
                                        symbol:
                                          type: string
                                          minLength: 1
                                          maxLength: 32
                                      required:
                                        - amount
                                        - sign
                                        - symbol
                                      additionalProperties: false
                                    - type: 'null'
                                subtitle:
                                  type: string
                                  minLength: 1
                                  maxLength: 200
                                title:
                                  type: string
                                  minLength: 1
                                  maxLength: 100
                              required:
                                - primaryAmount
                                - secondaryAmount
                                - subtitle
                                - title
                              additionalProperties: false
                            finality:
                              type: string
                              enum:
                                - ledger-confirmed
                                - product-record
                                - simulated
                            id:
                              type: string
                              minLength: 1
                              maxLength: 128
                            occurredAt:
                              type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                            operationId:
                              anyOf:
                                - type: string
                                  format: uuid
                                  pattern: >-
                                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                - type: 'null'
                            status:
                              type: string
                              enum:
                                - recorded
                                - pending
                                - confirmed
                                - failed
                            details:
                              type: object
                              properties:
                                amount:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                counterpartyHint:
                                  type: string
                                  minLength: 1
                                  maxLength: 100
                                instrumentId:
                                  type: object
                                  properties:
                                    admin:
                                      type: string
                                      minLength: 1
                                      maxLength: 512
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 512
                                  required:
                                    - admin
                                    - id
                                  additionalProperties: false
                                ccDebitCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                feeCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                memo:
                                  anyOf:
                                    - type: string
                                      minLength: 1
                                      maxLength: 280
                                    - type: 'null'
                                symbol:
                                  type: string
                                  minLength: 1
                                  maxLength: 32
                                userMemo:
                                  type: string
                                  minLength: 1
                                  maxLength: 128
                              required:
                                - amount
                                - counterpartyHint
                                - instrumentId
                                - ccDebitCc
                                - feeCc
                                - memo
                                - symbol
                              additionalProperties: false
                            kind:
                              type: string
                              const: send
                          required:
                            - display
                            - finality
                            - id
                            - occurredAt
                            - operationId
                            - status
                            - details
                            - kind
                          additionalProperties: false
                        - type: object
                          properties:
                            display:
                              type: object
                              properties:
                                primaryAmount:
                                  type: object
                                  properties:
                                    amount:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                    sign:
                                      type: string
                                      enum:
                                        - credit
                                        - debit
                                        - neutral
                                    symbol:
                                      type: string
                                      minLength: 1
                                      maxLength: 32
                                  required:
                                    - amount
                                    - sign
                                    - symbol
                                  additionalProperties: false
                                secondaryAmount:
                                  anyOf:
                                    - type: object
                                      properties:
                                        amount:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        sign:
                                          type: string
                                          enum:
                                            - credit
                                            - debit
                                            - neutral
                                        symbol:
                                          type: string
                                          minLength: 1
                                          maxLength: 32
                                      required:
                                        - amount
                                        - sign
                                        - symbol
                                      additionalProperties: false
                                    - type: 'null'
                                subtitle:
                                  type: string
                                  minLength: 1
                                  maxLength: 200
                                title:
                                  type: string
                                  minLength: 1
                                  maxLength: 100
                              required:
                                - primaryAmount
                                - secondaryAmount
                                - subtitle
                                - title
                              additionalProperties: false
                            finality:
                              type: string
                              enum:
                                - ledger-confirmed
                                - product-record
                                - simulated
                            id:
                              type: string
                              minLength: 1
                              maxLength: 128
                            occurredAt:
                              type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                            operationId:
                              anyOf:
                                - type: string
                                  format: uuid
                                  pattern: >-
                                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                - type: 'null'
                            status:
                              type: string
                              enum:
                                - recorded
                                - pending
                                - confirmed
                                - failed
                            details:
                              type: object
                              properties:
                                amountCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                sourceHint:
                                  type: string
                                  minLength: 1
                                  maxLength: 100
                              required:
                                - amountCc
                                - sourceHint
                              additionalProperties: false
                            kind:
                              type: string
                              const: deposit
                          required:
                            - display
                            - finality
                            - id
                            - occurredAt
                            - operationId
                            - status
                            - details
                            - kind
                          additionalProperties: false
                        - type: object
                          properties:
                            display:
                              type: object
                              properties:
                                primaryAmount:
                                  type: object
                                  properties:
                                    amount:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                    sign:
                                      type: string
                                      enum:
                                        - credit
                                        - debit
                                        - neutral
                                    symbol:
                                      type: string
                                      minLength: 1
                                      maxLength: 32
                                  required:
                                    - amount
                                    - sign
                                    - symbol
                                  additionalProperties: false
                                secondaryAmount:
                                  anyOf:
                                    - type: object
                                      properties:
                                        amount:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        sign:
                                          type: string
                                          enum:
                                            - credit
                                            - debit
                                            - neutral
                                        symbol:
                                          type: string
                                          minLength: 1
                                          maxLength: 32
                                      required:
                                        - amount
                                        - sign
                                        - symbol
                                      additionalProperties: false
                                    - type: 'null'
                                subtitle:
                                  type: string
                                  minLength: 1
                                  maxLength: 200
                                title:
                                  type: string
                                  minLength: 1
                                  maxLength: 100
                              required:
                                - primaryAmount
                                - secondaryAmount
                                - subtitle
                                - title
                              additionalProperties: false
                            finality:
                              type: string
                              enum:
                                - ledger-confirmed
                                - product-record
                                - simulated
                            id:
                              type: string
                              minLength: 1
                              maxLength: 128
                            occurredAt:
                              type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                            operationId:
                              anyOf:
                                - type: string
                                  format: uuid
                                  pattern: >-
                                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                - type: 'null'
                            status:
                              type: string
                              enum:
                                - recorded
                                - pending
                                - confirmed
                                - failed
                            details:
                              type: object
                              properties:
                                creationFeeCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                launchReference:
                                  type: string
                                  minLength: 1
                                  maxLength: 128
                                token:
                                  type: object
                                  properties:
                                    instrumentId:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 512
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 512
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                    name:
                                      type: string
                                      minLength: 1
                                      maxLength: 100
                                    slug:
                                      type: string
                                      minLength: 1
                                      maxLength: 64
                                      pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
                                    ticker:
                                      type: string
                                      minLength: 1
                                      maxLength: 16
                                  required:
                                    - instrumentId
                                    - name
                                    - slug
                                    - ticker
                                  additionalProperties: false
                              required:
                                - creationFeeCc
                                - launchReference
                                - token
                              additionalProperties: false
                            kind:
                              type: string
                              const: launch
                          required:
                            - display
                            - finality
                            - id
                            - occurredAt
                            - operationId
                            - status
                            - details
                            - kind
                          additionalProperties: false
                        - type: object
                          properties:
                            display:
                              type: object
                              properties:
                                primaryAmount:
                                  type: object
                                  properties:
                                    amount:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                    sign:
                                      type: string
                                      enum:
                                        - credit
                                        - debit
                                        - neutral
                                    symbol:
                                      type: string
                                      minLength: 1
                                      maxLength: 32
                                  required:
                                    - amount
                                    - sign
                                    - symbol
                                  additionalProperties: false
                                secondaryAmount:
                                  anyOf:
                                    - type: object
                                      properties:
                                        amount:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        sign:
                                          type: string
                                          enum:
                                            - credit
                                            - debit
                                            - neutral
                                        symbol:
                                          type: string
                                          minLength: 1
                                          maxLength: 32
                                      required:
                                        - amount
                                        - sign
                                        - symbol
                                      additionalProperties: false
                                    - type: 'null'
                                subtitle:
                                  type: string
                                  minLength: 1
                                  maxLength: 200
                                title:
                                  type: string
                                  minLength: 1
                                  maxLength: 100
                              required:
                                - primaryAmount
                                - secondaryAmount
                                - subtitle
                                - title
                              additionalProperties: false
                            finality:
                              type: string
                              enum:
                                - ledger-confirmed
                                - product-record
                                - simulated
                            id:
                              type: string
                              minLength: 1
                              maxLength: 128
                            occurredAt:
                              type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                            operationId:
                              anyOf:
                                - type: string
                                  format: uuid
                                  pattern: >-
                                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                - type: 'null'
                            status:
                              type: string
                              enum:
                                - recorded
                                - pending
                                - confirmed
                                - failed
                            details:
                              type: object
                              properties:
                                graduationThresholdCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                token:
                                  type: object
                                  properties:
                                    instrumentId:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 512
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 512
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                    name:
                                      type: string
                                      minLength: 1
                                      maxLength: 100
                                    slug:
                                      type: string
                                      minLength: 1
                                      maxLength: 64
                                      pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
                                    ticker:
                                      type: string
                                      minLength: 1
                                      maxLength: 16
                                  required:
                                    - instrumentId
                                    - name
                                    - slug
                                    - ticker
                                  additionalProperties: false
                              required:
                                - graduationThresholdCc
                                - token
                              additionalProperties: false
                            kind:
                              type: string
                              const: graduation
                          required:
                            - display
                            - finality
                            - id
                            - occurredAt
                            - operationId
                            - status
                            - details
                            - kind
                          additionalProperties: false
                        - type: object
                          properties:
                            display:
                              type: object
                              properties:
                                primaryAmount:
                                  type: object
                                  properties:
                                    amount:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                    sign:
                                      type: string
                                      enum:
                                        - credit
                                        - debit
                                        - neutral
                                    symbol:
                                      type: string
                                      minLength: 1
                                      maxLength: 32
                                  required:
                                    - amount
                                    - sign
                                    - symbol
                                  additionalProperties: false
                                secondaryAmount:
                                  anyOf:
                                    - type: object
                                      properties:
                                        amount:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        sign:
                                          type: string
                                          enum:
                                            - credit
                                            - debit
                                            - neutral
                                        symbol:
                                          type: string
                                          minLength: 1
                                          maxLength: 32
                                      required:
                                        - amount
                                        - sign
                                        - symbol
                                      additionalProperties: false
                                    - type: 'null'
                                subtitle:
                                  type: string
                                  minLength: 1
                                  maxLength: 200
                                title:
                                  type: string
                                  minLength: 1
                                  maxLength: 100
                              required:
                                - primaryAmount
                                - secondaryAmount
                                - subtitle
                                - title
                              additionalProperties: false
                            finality:
                              type: string
                              enum:
                                - ledger-confirmed
                                - product-record
                                - simulated
                            id:
                              type: string
                              minLength: 1
                              maxLength: 128
                            occurredAt:
                              type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                            operationId:
                              anyOf:
                                - type: string
                                  format: uuid
                                  pattern: >-
                                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                - type: 'null'
                            status:
                              type: string
                              enum:
                                - recorded
                                - pending
                                - confirmed
                                - failed
                            details:
                              type: object
                              properties:
                                amountCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                distributionReference:
                                  type: string
                                  minLength: 1
                                  maxLength: 128
                                token:
                                  type: object
                                  properties:
                                    instrumentId:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 512
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 512
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                    name:
                                      type: string
                                      minLength: 1
                                      maxLength: 100
                                    slug:
                                      type: string
                                      minLength: 1
                                      maxLength: 64
                                      pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
                                    ticker:
                                      type: string
                                      minLength: 1
                                      maxLength: 16
                                  required:
                                    - instrumentId
                                    - name
                                    - slug
                                    - ticker
                                  additionalProperties: false
                              required:
                                - amountCc
                                - distributionReference
                                - token
                              additionalProperties: false
                            kind:
                              type: string
                              const: creator_reward
                          required:
                            - display
                            - finality
                            - id
                            - occurredAt
                            - operationId
                            - status
                            - details
                            - kind
                          additionalProperties: false
                  meta:
                    type: object
                    properties:
                      asOf:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      dataMode:
                        type: string
                        enum:
                          - projected
                          - simulated
                      disclaimer:
                        type: string
                        minLength: 1
                        maxLength: 1024
                      networkId:
                        type: string
                        pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                      schemaVersion:
                        type: string
                        const: '1'
                    required:
                      - asOf
                      - dataMode
                      - disclaimer
                      - networkId
                      - schemaVersion
                    additionalProperties: false
                  page:
                    type: object
                    properties:
                      hasMore:
                        type: boolean
                      limit:
                        type: integer
                        minimum: 1
                        maximum: 50
                      nextCursor:
                        anyOf:
                          - type: string
                            maxLength: 512
                          - type: 'null'
                      total:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                    required:
                      - hasMore
                      - limit
                      - nextCursor
                      - total
                    additionalProperties: false
                required:
                  - items
                  - meta
                  - page
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            Invalid activity filters or pagination cursor. Also:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A reviewed Canton activity projection is not configured. Also:
            `AUTHENTICATION_UNAVAILABLE`, `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: List typed transaction cards for the authenticated account.
      tags:
        - superapp wallet
  /api/v1/me/positions:
    get:
      operationId: SuperappPositionsController_list_v1
      parameters:
        - name: instrumentAdmin
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 512
        - name: instrumentId
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 512
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: >-
            Positions with accounting method, completeness, reconciliation and
            as-of offset.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        instrumentId:
                          type: object
                          properties:
                            admin:
                              type: string
                              minLength: 1
                              maxLength: 512
                            id:
                              type: string
                              minLength: 1
                              maxLength: 512
                          required:
                            - admin
                            - id
                          additionalProperties: false
                        ticker:
                          anyOf:
                            - type: string
                              minLength: 1
                              maxLength: 32
                            - type: 'null'
                        slug:
                          anyOf:
                            - type: string
                              minLength: 1
                              maxLength: 128
                            - type: 'null'
                        quantity:
                          type: object
                          properties:
                            held:
                              type: string
                              pattern: ^(?:0|[1-9]\d*)(?:\.\d+)?$
                              description: Current holdings, available plus locked.
                            available:
                              type: string
                              pattern: ^(?:0|[1-9]\d*)(?:\.\d+)?$
                            locked:
                              type: string
                              pattern: ^(?:0|[1-9]\d*)(?:\.\d+)?$
                          required:
                            - held
                            - available
                            - locked
                          additionalProperties: false
                        reconciliation:
                          type: object
                          properties:
                            matched:
                              type: boolean
                              description: >-
                                The replayed history (fills and transfers)
                                reproduces the held quantity.
                            replayedQuantity:
                              type: string
                              pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
                            fillNetQuantity:
                              type: string
                              pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
                              description: Bought minus sold, lifetime.
                            transferInQuantity:
                              type: string
                              pattern: ^(?:0|[1-9]\d*)(?:\.\d+)?$
                            transferOutQuantity:
                              type: string
                              pattern: ^(?:0|[1-9]\d*)(?:\.\d+)?$
                          required:
                            - matched
                            - replayedQuantity
                            - fillNetQuantity
                            - transferInQuantity
                            - transferOutQuantity
                          additionalProperties: false
                        accounting:
                          type: object
                          properties:
                            complete:
                              type: boolean
                              description: >-
                                True only when the full ledger history was read,
                                it reproduces the held quantity, and every token
                                of the current position has a known cost.
                            incompleteReason:
                              anyOf:
                                - type: string
                                  enum:
                                    - transfer-in-without-cost
                                    - removal-exceeds-history
                                    - history-before-query-store
                                    - quantity-mismatch
                                - type: 'null'
                            costBasisCc:
                              anyOf:
                                - type: string
                                  pattern: ^(?:0|[1-9]\d*)(?:\.\d+)?$
                                - type: 'null'
                              description: >-
                                Remaining cost of the held tokens, buy fees
                                included; null when unknown.
                            buyFeesInBasisCc:
                              anyOf:
                                - type: string
                                  pattern: ^(?:0|[1-9]\d*)(?:\.\d+)?$
                                - type: 'null'
                            averageEntryCc:
                              anyOf:
                                - type: string
                                  pattern: ^(?:0|[1-9]\d*)(?:\.\d+)?$
                                - type: 'null'
                              description: >-
                                costBasisCc / held; null when unknown or nothing
                                is held.
                            positionOpenedAt:
                              anyOf:
                                - type: string
                                  format: date-time
                                  pattern: >-
                                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                - type: 'null'
                            lastMovementAt:
                              anyOf:
                                - type: string
                                  format: date-time
                                  pattern: >-
                                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                - type: 'null'
                            counts:
                              type: object
                              properties:
                                buys:
                                  type: integer
                                  minimum: 0
                                  maximum: 9007199254740991
                                sells:
                                  type: integer
                                  minimum: 0
                                  maximum: 9007199254740991
                                transfersIn:
                                  type: integer
                                  minimum: 0
                                  maximum: 9007199254740991
                                transfersOut:
                                  type: integer
                                  minimum: 0
                                  maximum: 9007199254740991
                              required:
                                - buys
                                - sells
                                - transfersIn
                                - transfersOut
                              additionalProperties: false
                          required:
                            - complete
                            - incompleteReason
                            - costBasisCc
                            - buyFeesInBasisCc
                            - averageEntryCc
                            - positionOpenedAt
                            - lastMovementAt
                            - counts
                          additionalProperties: false
                        valuation:
                          type: object
                          properties:
                            priceCc:
                              anyOf:
                                - type: string
                                  pattern: ^(?:0|[1-9]\d*)(?:\.\d+)?$
                                - type: 'null'
                              description: Current market price, CC per token.
                            currentValueCc:
                              anyOf:
                                - type: string
                                  pattern: ^(?:0|[1-9]\d*)(?:\.\d+)?$
                                - type: 'null'
                            unrealizedPnlCc:
                              anyOf:
                                - type: string
                                  pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
                                - type: 'null'
                              description: >-
                                currentValueCc - costBasisCc, before sale fees
                                and slippage; null without a complete basis or a
                                price.
                            unrealizedPnlPercent:
                              anyOf:
                                - type: string
                                  pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
                                - type: 'null'
                            usd:
                              anyOf:
                                - type: object
                                  properties:
                                    rateUsdPerCc:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d*)(?:\.\d+)?$
                                    priceUsd:
                                      anyOf:
                                        - type: string
                                          pattern: ^(?:0|[1-9]\d*)(?:\.\d+)?$
                                        - type: 'null'
                                    currentValueUsd:
                                      anyOf:
                                        - type: string
                                          pattern: ^(?:0|[1-9]\d*)(?:\.\d+)?$
                                        - type: 'null'
                                    costBasisUsd:
                                      anyOf:
                                        - type: string
                                          pattern: ^(?:0|[1-9]\d*)(?:\.\d+)?$
                                        - type: 'null'
                                    averageEntryUsd:
                                      anyOf:
                                        - type: string
                                          pattern: ^(?:0|[1-9]\d*)(?:\.\d+)?$
                                        - type: 'null'
                                    unrealizedPnlUsd:
                                      anyOf:
                                        - type: string
                                          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
                                        - type: 'null'
                                  required:
                                    - rateUsdPerCc
                                    - priceUsd
                                    - currentValueUsd
                                    - costBasisUsd
                                    - averageEntryUsd
                                    - unrealizedPnlUsd
                                  additionalProperties: false
                                - type: 'null'
                              description: >-
                                Every CC figure at the one current rate in
                                meta.ccUsdQuote; no historical FX.
                          required:
                            - priceCc
                            - currentValueCc
                            - unrealizedPnlCc
                            - unrealizedPnlPercent
                            - usd
                          additionalProperties: false
                      required:
                        - instrumentId
                        - ticker
                        - slug
                        - quantity
                        - reconciliation
                        - accounting
                        - valuation
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      asOf:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        description: Ledger time of the newest transaction the read saw.
                      asOfOffset:
                        type: string
                        pattern: ^\d{1,19}$
                        description: >-
                          Ledger offset of the query store watermark the read
                          saw.
                      ccUsdQuote:
                        anyOf:
                          - type: object
                            properties:
                              asOf:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                description: When this backend fetched the rate.
                              rateUsdPerCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                description: USD per CC.
                              roundNumber:
                                type: integer
                                minimum: 0
                                maximum: 9007199254740991
                              source:
                                type: string
                                minLength: 1
                                maxLength: 100
                              stale:
                                type: boolean
                            required:
                              - asOf
                              - rateUsdPerCc
                              - roundNumber
                              - source
                              - stale
                            additionalProperties: false
                          - type: 'null'
                      dataMode:
                        type: string
                        const: projected
                      disclaimer:
                        type: string
                        minLength: 1
                        maxLength: 1024
                      historyComplete:
                        type: boolean
                        description: >-
                          The whole ledger history of the Party was read,
                          without a window or row cap.
                      method:
                        type: string
                        const: weighted-average-cost
                      networkId:
                        type: string
                        pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                      partyId:
                        anyOf:
                          - type: string
                            description: >-
                              Opaque, case-sensitive Canton Party ID containing
                              3-512 Unicode scalar values with no normalization,
                              edge whitespace, or C0/C1 control characters.
                            minLength: 3
                            maxLength: 512
                          - type: 'null'
                      schemaVersion:
                        type: string
                        const: '1'
                    required:
                      - asOf
                      - asOfOffset
                      - ccUsdQuote
                      - dataMode
                      - disclaimer
                      - historyComplete
                      - method
                      - networkId
                      - partyId
                      - schemaVersion
                    additionalProperties: false
                required:
                  - items
                  - meta
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            instrumentAdmin and instrumentId must come together. Also:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            A valid product account is required. Also:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A PQS-backed position read is not configured for this environment.
            Also: `AUTHENTICATION_UNAVAILABLE`, `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: >-
        Read the lifetime weighted-average cost position per instrument of the
        account’s verified wallet Party.
      tags:
        - superapp wallet
  /api/v1/swaps/quote:
    post:
      operationId: SwapController_quote_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/ApiKeyTimestamp'
        - $ref: '#/components/parameters/ApiKeyRecvWindow'
        - $ref: '#/components/parameters/ApiKeySignature'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                buyInstrument:
                  type: object
                  properties:
                    admin:
                      type: string
                      minLength: 1
                      maxLength: 160
                    id:
                      type: string
                      minLength: 1
                      maxLength: 160
                  required:
                    - admin
                    - id
                  additionalProperties: false
                sellAmount:
                  type: string
                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                sellInstrument:
                  type: object
                  properties:
                    admin:
                      type: string
                      minLength: 1
                      maxLength: 160
                    id:
                      type: string
                      minLength: 1
                      maxLength: 160
                  required:
                    - admin
                    - id
                  additionalProperties: false
                slippageBps:
                  default: 100
                  type: integer
                  minimum: 1
                  maximum: 5000
                walletConnectionId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                allowPartialFill:
                  type: boolean
              required:
                - buyInstrument
                - sellAmount
                - sellInstrument
                - walletConnectionId
              additionalProperties: false
      responses:
        '201':
          description: A simulated, short-lived preview quote.
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    properties:
                      authority:
                        type: object
                        properties:
                          expiresAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          legs:
                            minItems: 1
                            maxItems: 2
                            type: array
                            items:
                              oneOf:
                                - type: object
                                  properties:
                                    creatorRevenue:
                                      oneOf:
                                        - type: object
                                          properties:
                                            eligibility:
                                              type: string
                                              const: eligible
                                            launchId:
                                              type: string
                                              minLength: 1
                                              maxLength: 96
                                            policy:
                                              type: object
                                              properties:
                                                hash:
                                                  type: string
                                                  const: >-
                                                    sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                                                id:
                                                  type: string
                                                  const: supanova-creator-revenue-policy
                                                version:
                                                  type: string
                                                  const: '1'
                                              required:
                                                - hash
                                                - id
                                                - version
                                              additionalProperties: false
                                            protocolRootId:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                          required:
                                            - eligibility
                                            - launchId
                                            - policy
                                            - protocolRootId
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            eligibility:
                                              type: string
                                              const: ineligible
                                            reason:
                                              type: string
                                              enum:
                                                - legacy-no-policy
                                                - not-supanova-launch
                                                - trader-cashback
                                          required:
                                            - eligibility
                                            - reason
                                          additionalProperties: false
                                    lifecycleEpoch:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    marketReference:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                    marketRevision:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    nextMarketRevision:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    payInstrument:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                    receiveInstrument:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                    securityEpoch:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    after:
                                      type: object
                                      properties:
                                        formulaId:
                                          type: string
                                          const: supanova-virtual-cpmm-v1
                                        graduated:
                                          type: boolean
                                        graduationPercent:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        marginalPriceCcPerToken:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        netCcReserve:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        tokensRemaining:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        tokensSold:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      required:
                                        - formulaId
                                        - graduated
                                        - graduationPercent
                                        - marginalPriceCcPerToken
                                        - netCcReserve
                                        - tokensRemaining
                                        - tokensSold
                                      additionalProperties: false
                                    before:
                                      type: object
                                      properties:
                                        formulaId:
                                          type: string
                                          const: supanova-virtual-cpmm-v1
                                        graduated:
                                          type: boolean
                                        graduationPercent:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        marginalPriceCcPerToken:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        netCcReserve:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        tokensRemaining:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        tokensSold:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      required:
                                        - formulaId
                                        - graduated
                                        - graduationPercent
                                        - marginalPriceCcPerToken
                                        - netCcReserve
                                        - tokensRemaining
                                        - tokensSold
                                      additionalProperties: false
                                    formulaId:
                                      type: string
                                      const: supanova-virtual-cpmm-v1
                                    kind:
                                      type: string
                                      const: virtual-cpmm
                                    lifecycleStage:
                                      type: string
                                      enum:
                                        - ignition
                                        - near_escape
                                    limits:
                                      type: object
                                      properties:
                                        exactFinalGrossCc:
                                          anyOf:
                                            - type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            - type: 'null'
                                        inputAsset:
                                          type: string
                                          enum:
                                            - cc
                                            - token
                                        maximumInputAmount:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        recovery:
                                          type: string
                                          enum:
                                            - exact-final-gross-or-smaller-buy
                                            - sell-all-or-leave-at-least-minimum
                                      required:
                                        - exactFinalGrossCc
                                        - inputAsset
                                        - maximumInputAmount
                                        - recovery
                                      additionalProperties: false
                                  required:
                                    - creatorRevenue
                                    - lifecycleEpoch
                                    - marketReference
                                    - marketRevision
                                    - nextMarketRevision
                                    - payInstrument
                                    - receiveInstrument
                                    - securityEpoch
                                    - after
                                    - before
                                    - formulaId
                                    - kind
                                    - lifecycleStage
                                    - limits
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    creatorRevenue:
                                      oneOf:
                                        - type: object
                                          properties:
                                            eligibility:
                                              type: string
                                              const: eligible
                                            launchId:
                                              type: string
                                              minLength: 1
                                              maxLength: 96
                                            policy:
                                              type: object
                                              properties:
                                                hash:
                                                  type: string
                                                  const: >-
                                                    sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                                                id:
                                                  type: string
                                                  const: supanova-creator-revenue-policy
                                                version:
                                                  type: string
                                                  const: '1'
                                              required:
                                                - hash
                                                - id
                                                - version
                                              additionalProperties: false
                                            protocolRootId:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                          required:
                                            - eligibility
                                            - launchId
                                            - policy
                                            - protocolRootId
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            eligibility:
                                              type: string
                                              const: ineligible
                                            reason:
                                              type: string
                                              enum:
                                                - legacy-no-policy
                                                - not-supanova-launch
                                                - trader-cashback
                                          required:
                                            - eligibility
                                            - reason
                                          additionalProperties: false
                                    lifecycleEpoch:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    marketReference:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                    marketRevision:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    nextMarketRevision:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    payInstrument:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                    receiveInstrument:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                    securityEpoch:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    after:
                                      type: object
                                      properties:
                                        anchor:
                                          type: string
                                          enum:
                                            - cc-reserve
                                            - initial
                                            - token-reserve
                                        ccReserve:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        formulaId:
                                          type: string
                                          const: supanova-real-cpmm-v1
                                        invariant:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        marginalPriceCcPerToken:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        revision:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        tokenReserve:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      required:
                                        - anchor
                                        - ccReserve
                                        - formulaId
                                        - invariant
                                        - marginalPriceCcPerToken
                                        - revision
                                        - tokenReserve
                                      additionalProperties: false
                                    before:
                                      type: object
                                      properties:
                                        anchor:
                                          type: string
                                          enum:
                                            - cc-reserve
                                            - initial
                                            - token-reserve
                                        ccReserve:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        formulaId:
                                          type: string
                                          const: supanova-real-cpmm-v1
                                        invariant:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        marginalPriceCcPerToken:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        revision:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        tokenReserve:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      required:
                                        - anchor
                                        - ccReserve
                                        - formulaId
                                        - invariant
                                        - marginalPriceCcPerToken
                                        - revision
                                        - tokenReserve
                                      additionalProperties: false
                                    formulaId:
                                      type: string
                                      const: supanova-real-cpmm-v1
                                    kind:
                                      type: string
                                      const: real-cpmm
                                    lifecycleStage:
                                      type: string
                                      const: in_orbit
                                    limits:
                                      type: object
                                      properties:
                                        exactFinalGrossCc:
                                          type: 'null'
                                        inputAsset:
                                          type: string
                                          enum:
                                            - cc
                                            - token
                                        maximumInputAmount:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        recovery:
                                          type: string
                                          const: refresh-on-revision-change
                                      required:
                                        - exactFinalGrossCc
                                        - inputAsset
                                        - maximumInputAmount
                                        - recovery
                                      additionalProperties: false
                                  required:
                                    - creatorRevenue
                                    - lifecycleEpoch
                                    - marketReference
                                    - marketRevision
                                    - nextMarketRevision
                                    - payInstrument
                                    - receiveInstrument
                                    - securityEpoch
                                    - after
                                    - before
                                    - formulaId
                                    - kind
                                    - lifecycleStage
                                    - limits
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    creatorRevenue:
                                      oneOf:
                                        - type: object
                                          properties:
                                            eligibility:
                                              type: string
                                              const: eligible
                                            launchId:
                                              type: string
                                              minLength: 1
                                              maxLength: 96
                                            policy:
                                              type: object
                                              properties:
                                                hash:
                                                  type: string
                                                  const: >-
                                                    sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                                                id:
                                                  type: string
                                                  const: supanova-creator-revenue-policy
                                                version:
                                                  type: string
                                                  const: '1'
                                              required:
                                                - hash
                                                - id
                                                - version
                                              additionalProperties: false
                                            protocolRootId:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                          required:
                                            - eligibility
                                            - launchId
                                            - policy
                                            - protocolRootId
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            eligibility:
                                              type: string
                                              const: ineligible
                                            reason:
                                              type: string
                                              enum:
                                                - legacy-no-policy
                                                - not-supanova-launch
                                                - trader-cashback
                                          required:
                                            - eligibility
                                            - reason
                                          additionalProperties: false
                                    lifecycleEpoch:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    marketReference:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                    marketRevision:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    nextMarketRevision:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    payInstrument:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                    receiveInstrument:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                    securityEpoch:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    after:
                                      type: object
                                      properties:
                                        priceCcPerToken:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        revision:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                      required:
                                        - priceCcPerToken
                                        - revision
                                      additionalProperties: false
                                    before:
                                      type: object
                                      properties:
                                        priceCcPerToken:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        revision:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                      required:
                                        - priceCcPerToken
                                        - revision
                                      additionalProperties: false
                                    formulaId:
                                      type: string
                                      const: supanova-static-preview-v1
                                    kind:
                                      type: string
                                      const: static-preview
                                    lifecycleStage:
                                      type: string
                                      const: in_orbit
                                    limits:
                                      type: object
                                      properties:
                                        exactFinalGrossCc:
                                          type: 'null'
                                        inputAsset:
                                          type: string
                                          enum:
                                            - cc
                                            - token
                                        maximumInputAmount:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        recovery:
                                          type: string
                                          const: refresh-on-revision-change
                                      required:
                                        - exactFinalGrossCc
                                        - inputAsset
                                        - maximumInputAmount
                                        - recovery
                                      additionalProperties: false
                                  required:
                                    - creatorRevenue
                                    - lifecycleEpoch
                                    - marketReference
                                    - marketRevision
                                    - nextMarketRevision
                                    - payInstrument
                                    - receiveInstrument
                                    - securityEpoch
                                    - after
                                    - before
                                    - formulaId
                                    - kind
                                    - lifecycleStage
                                    - limits
                                  additionalProperties: false
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                          policy:
                            type: object
                            properties:
                              hash:
                                type: string
                                const: >-
                                  sha256:1c1bcf37c26e0c4c84af752e9f76447a82f8b22ba8c851f1cf070eccc43f548e
                              snapshot:
                                type: object
                                properties:
                                  amm:
                                    type: object
                                    properties:
                                      authorizationMaxTtlSeconds:
                                        type: number
                                        const: 900
                                      fee:
                                        type: object
                                        properties:
                                          asset:
                                            type: string
                                            const: cc
                                          buySide:
                                            type: string
                                            const: deduct-from-gross-before-cc-enters-pool
                                          policy:
                                            type: string
                                            const: outside-active-reserves
                                          rate:
                                            type: string
                                            const: '0.01'
                                          routing:
                                            type: string
                                            const: creator-revenue-policy-outside-pool
                                          sellSide:
                                            type: string
                                            const: >-
                                              deduct-from-gross-cc-after-cc-leaves-pool
                                        required:
                                          - asset
                                          - buySide
                                          - policy
                                          - rate
                                          - routing
                                          - sellSide
                                        additionalProperties: false
                                      formulaId:
                                        type: string
                                        const: supanova-real-cpmm-v1
                                      goldenManifestDigest:
                                        type: string
                                        const: >-
                                          sha256:7fc5b0d592eaf85cb083775101efe73a099b404e6334cd85ac1683ac753626d0
                                      invariant:
                                        type: object
                                        properties:
                                          anchor:
                                            type: string
                                            const: '50000000000000'
                                          anchorRelation:
                                            type: string
                                            const: >-
                                              initial=exact-seed;buy=tokenReserve==round10(k/ccReserve);sell=ccReserve==round10(k/tokenReserve)
                                          driftPolicy:
                                            type: string
                                            const: reject-any-noncanonical-anchor-relation
                                          transition:
                                            type: string
                                            const: >-
                                              oppositeReserve=round10(k/nextInputReserve)
                                        required:
                                          - anchor
                                          - anchorRelation
                                          - driftPolicy
                                          - transition
                                        additionalProperties: false
                                      initialRealCcReserve:
                                        type: string
                                        const: '250000'
                                      initialRealTokenReserve:
                                        type: string
                                        const: '200000000'
                                      lifecycle:
                                        type: string
                                        const: >-
                                          atomic-graduation-seed-then-revisioned-real-reserve
                                      minimumGrossBuyCc:
                                        type: string
                                        const: '0.01'
                                      minimumGrossSellCc:
                                        type: string
                                        const: '0.0099'
                                      minimumGrossSellDerivation:
                                        type: string
                                        const: gross-cc-from-reserve-before-fee
                                      numericScale:
                                        type: number
                                        const: 10
                                      rounding:
                                        type: object
                                        properties:
                                          buyGrouping:
                                            type: string
                                            const: >-
                                              fee=round10(gross*rate);net=round10(gross-fee);x1=round10(x+net);y1=round10(k/x1);out=round10(y-y1)
                                          mode:
                                            type: string
                                            const: ledger-decimal10-half-even-per-operation
                                          sellGrouping:
                                            type: string
                                            const: >-
                                              y1=round10(y+tokenIn);x1=round10(k/y1);gross=round10(x-x1);fee=round10(gross*rate);net=round10(gross-fee)
                                        required:
                                          - buyGrouping
                                          - mode
                                          - sellGrouping
                                        additionalProperties: false
                                      rootUniquenessAssumption:
                                        type: string
                                        const: >-
                                          participant-inventory-and-submission-policy-required
                                      settlementReadiness:
                                        type: string
                                        const: external-settlement-adapter-unproven
                                    required:
                                      - authorizationMaxTtlSeconds
                                      - fee
                                      - formulaId
                                      - goldenManifestDigest
                                      - invariant
                                      - initialRealCcReserve
                                      - initialRealTokenReserve
                                      - lifecycle
                                      - minimumGrossBuyCc
                                      - minimumGrossSellCc
                                      - minimumGrossSellDerivation
                                      - numericScale
                                      - rounding
                                      - rootUniquenessAssumption
                                      - settlementReadiness
                                    additionalProperties: false
                                  curve:
                                    type: object
                                    properties:
                                      formulaId:
                                        type: string
                                        const: supanova-virtual-cpmm-v1
                                      policyHash:
                                        type: string
                                        const: >-
                                          sha256:c843cc6204a25e687e40fff5f8033416031fb28d191f40b00e530855d70dd0ce
                                    required:
                                      - formulaId
                                      - policyHash
                                    additionalProperties: false
                                  creatorRevenue:
                                    type: object
                                    properties:
                                      allocationBinding:
                                        type: string
                                        const: one-exact-allocation-per-route-leg
                                      hash:
                                        type: string
                                        const: >-
                                          sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                                      id:
                                        type: string
                                        const: supanova-creator-revenue-policy
                                      version:
                                        type: string
                                        const: '1'
                                    required:
                                      - allocationBinding
                                      - hash
                                      - id
                                      - version
                                    additionalProperties: false
                                  policyId:
                                    type: string
                                    const: supanova-swap-quote-policy
                                  policyVersion:
                                    type: string
                                    const: '3'
                                  quote:
                                    type: object
                                    properties:
                                      authorityLegBinding:
                                        type: string
                                        const: explicit-pay-and-receive-instruments
                                      creatorRevenueLegBinding:
                                        type: string
                                        const: >-
                                          exact-launch-lineage-policy-and-allocation-per-leg
                                      expirySeconds:
                                        type: number
                                        const: 30
                                      marketReferenceUniqueness:
                                        type: string
                                        const: unique-within-route
                                      minimumOutputMaximumQuoted:
                                        type: string
                                        const: '999999999999999999999999.9999999999'
                                      minimumOutputRounding:
                                        type: string
                                        const: ledger-decimal10-round-down
                                      replayDomain:
                                        type: string
                                        const: supanova.swap.quote.v2
                                      revisionBinding:
                                        type: string
                                        const: >-
                                          dynamic-next-equals-current-plus-one;static-next-equals-current
                                      singleUse:
                                        type: boolean
                                        const: true
                                    required:
                                      - authorityLegBinding
                                      - creatorRevenueLegBinding
                                      - expirySeconds
                                      - marketReferenceUniqueness
                                      - minimumOutputMaximumQuoted
                                      - minimumOutputRounding
                                      - replayDomain
                                      - revisionBinding
                                      - singleUse
                                    additionalProperties: false
                                required:
                                  - amm
                                  - curve
                                  - creatorRevenue
                                  - policyId
                                  - policyVersion
                                  - quote
                                additionalProperties: false
                              version:
                                type: string
                                const: '3'
                            required:
                              - hash
                              - snapshot
                              - version
                            additionalProperties: false
                          replay:
                            type: object
                            properties:
                              digest:
                                type: string
                                pattern: ^sha256:[0-9a-f]{64}$
                              domain:
                                type: string
                                const: supanova.swap.quote.v2
                            required:
                              - digest
                              - domain
                            additionalProperties: false
                          synchronizerId:
                            type: string
                            minLength: 1
                            maxLength: 160
                        required:
                          - expiresAt
                          - legs
                          - networkId
                          - policy
                          - replay
                          - synchronizerId
                        additionalProperties: false
                      buyUnitPriceCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      buyAmount:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      buyInstrument:
                        type: object
                        properties:
                          admin:
                            type: string
                            minLength: 1
                            maxLength: 160
                          id:
                            type: string
                            minLength: 1
                            maxLength: 160
                        required:
                          - admin
                          - id
                        additionalProperties: false
                      creatorRevenueAllocations:
                        minItems: 1
                        maxItems: 2
                        type: array
                        items:
                          oneOf:
                            - type: object
                              properties:
                                basisAmountCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                creatorRevenueCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                eligibility:
                                  type: string
                                  const: eligible
                                grossRevenueCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                launchId:
                                  type: string
                                  minLength: 1
                                  maxLength: 96
                                marketReference:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                                policy:
                                  type: object
                                  properties:
                                    hash:
                                      type: string
                                      const: >-
                                        sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                                    id:
                                      type: string
                                      const: supanova-creator-revenue-policy
                                    version:
                                      type: string
                                      const: '1'
                                  required:
                                    - hash
                                    - id
                                    - version
                                  additionalProperties: false
                                protocolRevenueCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                protocolRootId:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                                routeLegCount:
                                  type: integer
                                  minimum: 1
                                  maximum: 2
                                routeLegIndex:
                                  type: integer
                                  minimum: 0
                                  maximum: 1
                                source:
                                  type: string
                                  enum:
                                    - virtual-curve-trading-fee
                                    - supaswap-amm-trading-fee
                                tokenInstrument:
                                  type: object
                                  properties:
                                    admin:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                  required:
                                    - admin
                                    - id
                                  additionalProperties: false
                              required:
                                - basisAmountCc
                                - creatorRevenueCc
                                - eligibility
                                - grossRevenueCc
                                - launchId
                                - marketReference
                                - policy
                                - protocolRevenueCc
                                - protocolRootId
                                - routeLegCount
                                - routeLegIndex
                                - source
                                - tokenInstrument
                              additionalProperties: false
                            - type: object
                              properties:
                                eligibility:
                                  type: string
                                  const: ineligible
                                marketReference:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                                reason:
                                  type: string
                                  enum:
                                    - legacy-no-policy
                                    - not-supanova-launch
                                    - trader-cashback
                                routeLegCount:
                                  type: integer
                                  minimum: 1
                                  maximum: 2
                                routeLegIndex:
                                  type: integer
                                  minimum: 0
                                  maximum: 1
                                tokenInstrument:
                                  type: object
                                  properties:
                                    admin:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                  required:
                                    - admin
                                    - id
                                  additionalProperties: false
                              required:
                                - eligibility
                                - marketReference
                                - reason
                                - routeLegCount
                                - routeLegIndex
                                - tokenInstrument
                              additionalProperties: false
                      execution:
                        type: string
                        const: simulated
                      expiresAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      fee:
                        type: object
                        properties:
                          amount:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          asset:
                            type: object
                            properties:
                              admin:
                                type: string
                                minLength: 1
                                maxLength: 160
                              id:
                                type: string
                                minLength: 1
                                maxLength: 160
                            required:
                              - admin
                              - id
                            additionalProperties: false
                          policy:
                            type: string
                            const: preview-only-unfinalized
                        required:
                          - amount
                          - asset
                          - policy
                        additionalProperties: false
                      feeLineItems:
                        minItems: 1
                        maxItems: 2
                        type: array
                        items:
                          type: object
                          properties:
                            amount:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            instrument:
                              type: object
                              properties:
                                admin:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                              required:
                                - admin
                                - id
                              additionalProperties: false
                            kind:
                              type: string
                              const: trading
                            label:
                              type: string
                              minLength: 1
                              maxLength: 120
                          required:
                            - amount
                            - instrument
                            - kind
                            - label
                          additionalProperties: false
                      issuedAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      minimumBuyAmount:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      networkId:
                        type: string
                        pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                      notionalCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      pricingModel:
                        type: string
                        const: preview-simulation-v2
                      pricingSource:
                        type: object
                        properties:
                          asOf:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          dataMode:
                            type: string
                            enum:
                              - projected
                              - simulated
                          label:
                            type: string
                            enum:
                              - canton-ledger-acs
                              - superapp-market-preview-snapshot
                        required:
                          - asOf
                          - dataMode
                          - label
                        additionalProperties: false
                      priceImpactBps:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      quoteId:
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      rate:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      sellAmount:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      sellInstrument:
                        type: object
                        properties:
                          admin:
                            type: string
                            minLength: 1
                            maxLength: 160
                          id:
                            type: string
                            minLength: 1
                            maxLength: 160
                        required:
                          - admin
                          - id
                        additionalProperties: false
                      sellUnitPriceCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      settlement:
                        type: object
                        properties:
                          deadline:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          mode:
                            type: string
                            const: atomic-dvp
                          readiness:
                            type: string
                            enum:
                              - daml-command-builder-not-configured
                              - ready
                        required:
                          - deadline
                          - mode
                          - readiness
                        additionalProperties: false
                      slippageBps:
                        type: integer
                        minimum: 1
                        maximum: 5000
                      route:
                        minItems: 1
                        maxItems: 2
                        type: array
                        items:
                          type: object
                          properties:
                            payInstrument:
                              type: object
                              properties:
                                admin:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                              required:
                                - admin
                                - id
                              additionalProperties: false
                            receiveInstrument:
                              type: object
                              properties:
                                admin:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                              required:
                                - admin
                                - id
                              additionalProperties: false
                            venue:
                              type: string
                              enum:
                                - canton-dex
                                - launch-curve
                          required:
                            - payInstrument
                            - receiveInstrument
                            - venue
                          additionalProperties: false
                      wallet:
                        type: object
                        properties:
                          connectionId:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          partyId:
                            type: string
                            minLength: 1
                            maxLength: 512
                        required:
                          - connectionId
                          - partyId
                        additionalProperties: false
                    required:
                      - authority
                      - buyUnitPriceCc
                      - buyAmount
                      - buyInstrument
                      - creatorRevenueAllocations
                      - execution
                      - expiresAt
                      - fee
                      - feeLineItems
                      - issuedAt
                      - minimumBuyAmount
                      - networkId
                      - notionalCc
                      - pricingModel
                      - pricingSource
                      - priceImpactBps
                      - quoteId
                      - rate
                      - sellAmount
                      - sellInstrument
                      - sellUnitPriceCc
                      - settlement
                      - slippageBps
                      - route
                      - wallet
                    additionalProperties: false
                  - type: object
                    properties:
                      authority:
                        type: object
                        properties:
                          expiresAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          legs:
                            minItems: 1
                            maxItems: 1
                            type: array
                            items:
                              oneOf:
                                - type: object
                                  properties:
                                    creatorRevenue:
                                      type: object
                                      properties:
                                        eligibility:
                                          type: string
                                          const: eligible
                                        launchId:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        policy:
                                          type: object
                                          properties:
                                            hash:
                                              type: string
                                              const: >-
                                                sha256:21c68b457e7684149d484e6bfb378457c36ea188e01187500367a76bf29cbde6
                                            id:
                                              type: string
                                              const: supanova-creator-revenue-policy
                                            version:
                                              type: string
                                              const: '2'
                                          required:
                                            - hash
                                            - id
                                            - version
                                          additionalProperties: false
                                        protocolRootId:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                      required:
                                        - eligibility
                                        - launchId
                                        - policy
                                        - protocolRootId
                                      additionalProperties: false
                                    lifecycleEpoch:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    market:
                                      type: object
                                      properties:
                                        economics:
                                          type: object
                                          properties:
                                            curveAllocationBps:
                                              type: integer
                                              minimum: 5001
                                              maximum: 9999
                                            graduationNetCc:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            maxFeeBps:
                                              type: integer
                                              minimum: 0
                                              maximum: 5000
                                            minFeeClaimCc:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                          required:
                                            - curveAllocationBps
                                            - graduationNetCc
                                            - maxFeeBps
                                            - minFeeClaimCc
                                          additionalProperties: false
                                        feeConfig:
                                          type: object
                                          properties:
                                            feeBps:
                                              type: integer
                                              minimum: 0
                                              maximum: 10000
                                            platformShareBps:
                                              type: integer
                                              minimum: 0
                                              maximum: 10000
                                          required:
                                            - feeBps
                                            - platformShareBps
                                          additionalProperties: false
                                        totalSupply:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      required:
                                        - economics
                                        - feeConfig
                                        - totalSupply
                                      additionalProperties: false
                                    marketReference:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                    marketRevision:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    nextMarketRevision:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    payInstrument:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                    receiveInstrument:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                    securityEpoch:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    after:
                                      type: object
                                      properties:
                                        graduated:
                                          type: boolean
                                        netCcReserve:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        tokensRemaining:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        tokensSold:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      required:
                                        - graduated
                                        - netCcReserve
                                        - tokensRemaining
                                        - tokensSold
                                      additionalProperties: false
                                    before:
                                      type: object
                                      properties:
                                        graduated:
                                          type: boolean
                                        netCcReserve:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        tokensRemaining:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        tokensSold:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      required:
                                        - graduated
                                        - netCcReserve
                                        - tokensRemaining
                                        - tokensSold
                                      additionalProperties: false
                                    formulaId:
                                      type: string
                                      const: supanova-virtual-cpmm-v1
                                    kind:
                                      type: string
                                      const: virtual-cpmm
                                    lifecycleStage:
                                      type: string
                                      enum:
                                        - ignition
                                        - near_escape
                                    limits:
                                      type: object
                                      properties:
                                        exactFinalGrossCc:
                                          anyOf:
                                            - type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            - type: 'null'
                                        inputAsset:
                                          type: string
                                          enum:
                                            - cc
                                            - token
                                        maximumInputAmount:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        recovery:
                                          type: string
                                          enum:
                                            - exact-final-gross-or-smaller-buy
                                            - sell-all-or-leave-at-least-minimum
                                      required:
                                        - exactFinalGrossCc
                                        - inputAsset
                                        - maximumInputAmount
                                        - recovery
                                      additionalProperties: false
                                  required:
                                    - creatorRevenue
                                    - lifecycleEpoch
                                    - market
                                    - marketReference
                                    - marketRevision
                                    - nextMarketRevision
                                    - payInstrument
                                    - receiveInstrument
                                    - securityEpoch
                                    - after
                                    - before
                                    - formulaId
                                    - kind
                                    - lifecycleStage
                                    - limits
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    creatorRevenue:
                                      type: object
                                      properties:
                                        eligibility:
                                          type: string
                                          const: eligible
                                        launchId:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        policy:
                                          type: object
                                          properties:
                                            hash:
                                              type: string
                                              const: >-
                                                sha256:21c68b457e7684149d484e6bfb378457c36ea188e01187500367a76bf29cbde6
                                            id:
                                              type: string
                                              const: supanova-creator-revenue-policy
                                            version:
                                              type: string
                                              const: '2'
                                          required:
                                            - hash
                                            - id
                                            - version
                                          additionalProperties: false
                                        protocolRootId:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                      required:
                                        - eligibility
                                        - launchId
                                        - policy
                                        - protocolRootId
                                      additionalProperties: false
                                    lifecycleEpoch:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    market:
                                      type: object
                                      properties:
                                        economics:
                                          type: object
                                          properties:
                                            curveAllocationBps:
                                              type: integer
                                              minimum: 5001
                                              maximum: 9999
                                            graduationNetCc:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            maxFeeBps:
                                              type: integer
                                              minimum: 0
                                              maximum: 5000
                                            minFeeClaimCc:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                          required:
                                            - curveAllocationBps
                                            - graduationNetCc
                                            - maxFeeBps
                                            - minFeeClaimCc
                                          additionalProperties: false
                                        feeConfig:
                                          type: object
                                          properties:
                                            feeBps:
                                              type: integer
                                              minimum: 0
                                              maximum: 10000
                                            platformShareBps:
                                              type: integer
                                              minimum: 0
                                              maximum: 10000
                                          required:
                                            - feeBps
                                            - platformShareBps
                                          additionalProperties: false
                                        totalSupply:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      required:
                                        - economics
                                        - feeConfig
                                        - totalSupply
                                      additionalProperties: false
                                    marketReference:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                    marketRevision:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    nextMarketRevision:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    payInstrument:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                    receiveInstrument:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                    securityEpoch:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    after:
                                      type: object
                                      properties:
                                        anchor:
                                          type: string
                                          enum:
                                            - cc-reserve
                                            - initial
                                            - token-reserve
                                        ccReserve:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        revision:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        tokenReserve:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      required:
                                        - anchor
                                        - ccReserve
                                        - revision
                                        - tokenReserve
                                      additionalProperties: false
                                    before:
                                      type: object
                                      properties:
                                        anchor:
                                          type: string
                                          enum:
                                            - cc-reserve
                                            - initial
                                            - token-reserve
                                        ccReserve:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        revision:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        tokenReserve:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      required:
                                        - anchor
                                        - ccReserve
                                        - revision
                                        - tokenReserve
                                      additionalProperties: false
                                    formulaId:
                                      type: string
                                      const: supanova-real-cpmm-v1
                                    kind:
                                      type: string
                                      const: real-cpmm
                                    lifecycleStage:
                                      type: string
                                      const: in_orbit
                                    limits:
                                      type: object
                                      properties:
                                        exactFinalGrossCc:
                                          type: 'null'
                                        inputAsset:
                                          type: string
                                          enum:
                                            - cc
                                            - token
                                        maximumInputAmount:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        recovery:
                                          type: string
                                          const: refresh-on-revision-change
                                      required:
                                        - exactFinalGrossCc
                                        - inputAsset
                                        - maximumInputAmount
                                        - recovery
                                      additionalProperties: false
                                  required:
                                    - creatorRevenue
                                    - lifecycleEpoch
                                    - market
                                    - marketReference
                                    - marketRevision
                                    - nextMarketRevision
                                    - payInstrument
                                    - receiveInstrument
                                    - securityEpoch
                                    - after
                                    - before
                                    - formulaId
                                    - kind
                                    - lifecycleStage
                                    - limits
                                  additionalProperties: false
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                          policy:
                            type: object
                            properties:
                              hash:
                                type: string
                                const: >-
                                  sha256:453dec0f4f64164e6c89bd4fcf9303eafeadd133ca9e119acc5fd6fa694957c2
                              snapshot: {}
                              version:
                                type: string
                                const: '4'
                            required:
                              - hash
                              - snapshot
                              - version
                            additionalProperties: false
                          replay:
                            type: object
                            properties:
                              digest:
                                type: string
                                pattern: ^sha256:[0-9a-f]{64}$
                              domain:
                                type: string
                                const: supanova.swap.quote.v2
                            required:
                              - digest
                              - domain
                            additionalProperties: false
                          synchronizerId:
                            type: string
                            minLength: 1
                            maxLength: 160
                        required:
                          - expiresAt
                          - legs
                          - networkId
                          - policy
                          - replay
                          - synchronizerId
                        additionalProperties: false
                      buyAmount:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      buyInstrument:
                        type: object
                        properties:
                          admin:
                            type: string
                            minLength: 1
                            maxLength: 160
                          id:
                            type: string
                            minLength: 1
                            maxLength: 160
                        required:
                          - admin
                          - id
                        additionalProperties: false
                      creatorRevenueAllocations:
                        minItems: 1
                        maxItems: 1
                        type: array
                        items:
                          type: object
                          properties:
                            basisAmountCc:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            creatorRevenueCc:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            eligibility:
                              type: string
                              const: eligible
                            grossRevenueCc:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            launchId:
                              type: string
                              minLength: 1
                              maxLength: 160
                            marketReference:
                              type: string
                              minLength: 1
                              maxLength: 160
                            policy:
                              type: object
                              properties:
                                hash:
                                  type: string
                                  const: >-
                                    sha256:21c68b457e7684149d484e6bfb378457c36ea188e01187500367a76bf29cbde6
                                id:
                                  type: string
                                  const: supanova-creator-revenue-policy
                                version:
                                  type: string
                                  const: '2'
                              required:
                                - hash
                                - id
                                - version
                              additionalProperties: false
                            protocolRevenueCc:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            protocolRootId:
                              type: string
                              minLength: 1
                              maxLength: 160
                            routeLegCount:
                              type: number
                              const: 1
                            routeLegIndex:
                              type: number
                              const: 0
                            source:
                              type: string
                              enum:
                                - curve-trading-fee
                                - amm-trading-fee
                            tokenInstrument:
                              type: object
                              properties:
                                admin:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                              required:
                                - admin
                                - id
                              additionalProperties: false
                          required:
                            - basisAmountCc
                            - creatorRevenueCc
                            - eligibility
                            - grossRevenueCc
                            - launchId
                            - marketReference
                            - policy
                            - protocolRevenueCc
                            - protocolRootId
                            - routeLegCount
                            - routeLegIndex
                            - source
                            - tokenInstrument
                          additionalProperties: false
                      display:
                        type: object
                        properties:
                          averagePriceCcPerToken:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                          graduationPercentAfter:
                            anyOf:
                              - type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                              - type: 'null'
                          kind:
                            type: string
                            const: display-only
                          priceAfterCcPerToken:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                          priceAfterPerMillionTokensCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                          priceBeforeCcPerToken:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                          priceBeforePerMillionTokensCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                          priceImpactBps:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                          pricePerMillionTokensCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                          rate:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                          significantDigits:
                            type: number
                            const: 12
                        required:
                          - averagePriceCcPerToken
                          - graduationPercentAfter
                          - kind
                          - priceAfterCcPerToken
                          - priceAfterPerMillionTokensCc
                          - priceBeforeCcPerToken
                          - priceBeforePerMillionTokensCc
                          - priceImpactBps
                          - pricePerMillionTokensCc
                          - rate
                          - significantDigits
                        additionalProperties: false
                      economics:
                        type: object
                        properties:
                          curveAllocationBps:
                            type: integer
                            minimum: 5001
                            maximum: 9999
                          graduationNetCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          maxFeeBps:
                            type: integer
                            minimum: 0
                            maximum: 5000
                          minFeeClaimCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                        required:
                          - curveAllocationBps
                          - graduationNetCc
                          - maxFeeBps
                          - minFeeClaimCc
                        additionalProperties: false
                      execution:
                        type: string
                        const: simulated
                      expiresAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      fee:
                        type: object
                        properties:
                          amount:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          asset:
                            type: object
                            properties:
                              admin:
                                type: string
                                minLength: 1
                                maxLength: 160
                              id:
                                type: string
                                minLength: 1
                                maxLength: 160
                            required:
                              - admin
                              - id
                            additionalProperties: false
                          policy:
                            type: string
                            const: ledger-pool-fee-config
                        required:
                          - amount
                          - asset
                          - policy
                        additionalProperties: false
                      feeCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      feeConfig:
                        type: object
                        properties:
                          feeBps:
                            type: integer
                            minimum: 0
                            maximum: 10000
                          platformShareBps:
                            type: integer
                            minimum: 0
                            maximum: 10000
                        required:
                          - feeBps
                          - platformShareBps
                        additionalProperties: false
                      feeLineItems:
                        minItems: 1
                        maxItems: 1
                        type: array
                        items:
                          type: object
                          properties:
                            amount:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            instrument:
                              type: object
                              properties:
                                admin:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                              required:
                                - admin
                                - id
                              additionalProperties: false
                            kind:
                              type: string
                              const: trading
                            label:
                              type: string
                              minLength: 1
                              maxLength: 120
                          required:
                            - amount
                            - instrument
                            - kind
                            - label
                          additionalProperties: false
                      issuedAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      makerFeeCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      minimumBuyAmount:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      networkId:
                        type: string
                        pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                      notionalCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      platformFeeCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      referralFeeCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      pricingModel:
                        type: string
                        const: preview-simulation-v2
                      pricingSource:
                        type: object
                        properties:
                          asOf:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          dataMode:
                            type: string
                            const: projected
                          label:
                            type: string
                            const: canton-ledger-acs
                        required:
                          - asOf
                          - dataMode
                          - label
                        additionalProperties: false
                      quoteId:
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      route:
                        minItems: 1
                        maxItems: 1
                        type: array
                        items:
                          type: object
                          properties:
                            payInstrument:
                              type: object
                              properties:
                                admin:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                              required:
                                - admin
                                - id
                              additionalProperties: false
                            receiveInstrument:
                              type: object
                              properties:
                                admin:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                              required:
                                - admin
                                - id
                              additionalProperties: false
                            venue:
                              type: string
                              enum:
                                - canton-dex
                                - launch-curve
                          required:
                            - payInstrument
                            - receiveInstrument
                            - venue
                          additionalProperties: false
                      sellAmount:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      sellInstrument:
                        type: object
                        properties:
                          admin:
                            type: string
                            minLength: 1
                            maxLength: 160
                          id:
                            type: string
                            minLength: 1
                            maxLength: 160
                        required:
                          - admin
                          - id
                        additionalProperties: false
                      settlement:
                        type: object
                        properties:
                          deadline:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          mode:
                            type: string
                            const: atomic-dvp
                          readiness:
                            type: string
                            const: ready
                        required:
                          - deadline
                          - mode
                          - readiness
                        additionalProperties: false
                      slippageBps:
                        type: integer
                        minimum: 1
                        maximum: 5000
                      totalSupply:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      wallet:
                        type: object
                        properties:
                          connectionId:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          partyId:
                            type: string
                            minLength: 1
                            maxLength: 512
                        required:
                          - connectionId
                          - partyId
                        additionalProperties: false
                      allowPartialFill:
                        type: boolean
                      fill:
                        type: string
                        enum:
                          - full
                          - partial
                      grossCcUsed:
                        anyOf:
                          - type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          - type: 'null'
                      unspentCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      graduates:
                        type: boolean
                      limitTokenOut:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                    required:
                      - authority
                      - buyAmount
                      - buyInstrument
                      - creatorRevenueAllocations
                      - display
                      - economics
                      - execution
                      - expiresAt
                      - fee
                      - feeCc
                      - feeConfig
                      - feeLineItems
                      - issuedAt
                      - makerFeeCc
                      - minimumBuyAmount
                      - networkId
                      - notionalCc
                      - platformFeeCc
                      - pricingModel
                      - pricingSource
                      - quoteId
                      - route
                      - sellAmount
                      - sellInstrument
                      - settlement
                      - slippageBps
                      - totalSupply
                      - wallet
                    additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`, `API_KEY_INVALID`,
            `API_KEY_REVOKED`, `API_KEY_SIGNATURE_INVALID`,
            `API_KEY_TIMESTAMP_OUT_OF_WINDOW`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`, `API_KEY_IP_NOT_ALLOWED`,
            `PRODUCT_ACCOUNT_RESTRICTED`, `API_KEY_SCOPE_REQUIRED`,
            `API_KEY_PARTY_NOT_AUTHORIZED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '409':
          description: 'The market is graduating: `MARKET_GRADUATION_IN_PROGRESS`.'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '422':
          description: >-
            The trade cannot be quoted: `SWAP_TRADE_BELOW_MINIMUM`,
            `SWAP_CURVE_CAPACITY_EXCEEDED`, `SWAP_OUTPUT_ROUNDS_TO_ZERO`,
            `SWAP_QUOTE_AMOUNT_OUT_OF_RANGE`, `SWAP_QUOTE_UNPRICEABLE`,
            `SWAP_SELL_EXCEEDS_RELEASED_TOKENS`, `SWAP_SELL_STRANDS_RESIDUAL`,
            `LEDGER_MARKET_NOT_FOUND`, `LEDGER_ROUTE_NOT_SUPPORTED`,
            `VALIDATION_FAILED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
        - apiKey: []
      summary: Create a short-lived preview quote.
      tags:
        - swaps
      x-api-key-scope: trade
  /api/v1/swaps/prepare:
    post:
      operationId: SwapController_prepare_v1
      parameters:
        - name: Idempotency-Key
          in: header
          required: true
          schema:
            type: string
            minLength: 8
            maxLength: 256
            pattern: ^[A-Za-z0-9._:-]+$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                quoteId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                walletConnectionId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              required:
                - quoteId
                - walletConnectionId
              additionalProperties: false
      responses:
        '201':
          description: A wallet action and operation record.
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    properties:
                      execution:
                        type: string
                        enum:
                          - ledger
                          - simulated
                      operation:
                        type: object
                        properties:
                          expiresAt:
                            type:
                              - string
                              - 'null'
                          id:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          status:
                            type: string
                        required:
                          - expiresAt
                          - id
                          - status
                        additionalProperties: false
                      walletAction:
                        type: object
                        properties:
                          expiresAt:
                            type: string
                          intent:
                            type: object
                            properties:
                              authority:
                                type: object
                                properties:
                                  expiresAt:
                                    type: string
                                    format: date-time
                                    pattern: >-
                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                  legs:
                                    minItems: 1
                                    maxItems: 2
                                    type: array
                                    items:
                                      oneOf:
                                        - type: object
                                          properties:
                                            creatorRevenue:
                                              oneOf:
                                                - type: object
                                                  properties:
                                                    eligibility:
                                                      type: string
                                                      const: eligible
                                                    launchId:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 96
                                                    policy:
                                                      type: object
                                                      properties:
                                                        hash:
                                                          type: string
                                                          const: >-
                                                            sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                                                        id:
                                                          type: string
                                                          const: supanova-creator-revenue-policy
                                                        version:
                                                          type: string
                                                          const: '1'
                                                      required:
                                                        - hash
                                                        - id
                                                        - version
                                                      additionalProperties: false
                                                    protocolRootId:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 160
                                                  required:
                                                    - eligibility
                                                    - launchId
                                                    - policy
                                                    - protocolRootId
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    eligibility:
                                                      type: string
                                                      const: ineligible
                                                    reason:
                                                      type: string
                                                      enum:
                                                        - legacy-no-policy
                                                        - not-supanova-launch
                                                        - trader-cashback
                                                  required:
                                                    - eligibility
                                                    - reason
                                                  additionalProperties: false
                                            lifecycleEpoch:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                            marketReference:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                            marketRevision:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                            nextMarketRevision:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                            payInstrument:
                                              type: object
                                              properties:
                                                admin:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                              required:
                                                - admin
                                                - id
                                              additionalProperties: false
                                            receiveInstrument:
                                              type: object
                                              properties:
                                                admin:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                              required:
                                                - admin
                                                - id
                                              additionalProperties: false
                                            securityEpoch:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                            after:
                                              type: object
                                              properties:
                                                formulaId:
                                                  type: string
                                                  const: supanova-virtual-cpmm-v1
                                                graduated:
                                                  type: boolean
                                                graduationPercent:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                marginalPriceCcPerToken:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                netCcReserve:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                tokensRemaining:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                tokensSold:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                              required:
                                                - formulaId
                                                - graduated
                                                - graduationPercent
                                                - marginalPriceCcPerToken
                                                - netCcReserve
                                                - tokensRemaining
                                                - tokensSold
                                              additionalProperties: false
                                            before:
                                              type: object
                                              properties:
                                                formulaId:
                                                  type: string
                                                  const: supanova-virtual-cpmm-v1
                                                graduated:
                                                  type: boolean
                                                graduationPercent:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                marginalPriceCcPerToken:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                netCcReserve:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                tokensRemaining:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                tokensSold:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                              required:
                                                - formulaId
                                                - graduated
                                                - graduationPercent
                                                - marginalPriceCcPerToken
                                                - netCcReserve
                                                - tokensRemaining
                                                - tokensSold
                                              additionalProperties: false
                                            formulaId:
                                              type: string
                                              const: supanova-virtual-cpmm-v1
                                            kind:
                                              type: string
                                              const: virtual-cpmm
                                            lifecycleStage:
                                              type: string
                                              enum:
                                                - ignition
                                                - near_escape
                                            limits:
                                              type: object
                                              properties:
                                                exactFinalGrossCc:
                                                  anyOf:
                                                    - type: string
                                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                    - type: 'null'
                                                inputAsset:
                                                  type: string
                                                  enum:
                                                    - cc
                                                    - token
                                                maximumInputAmount:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                recovery:
                                                  type: string
                                                  enum:
                                                    - exact-final-gross-or-smaller-buy
                                                    - sell-all-or-leave-at-least-minimum
                                              required:
                                                - exactFinalGrossCc
                                                - inputAsset
                                                - maximumInputAmount
                                                - recovery
                                              additionalProperties: false
                                          required:
                                            - creatorRevenue
                                            - lifecycleEpoch
                                            - marketReference
                                            - marketRevision
                                            - nextMarketRevision
                                            - payInstrument
                                            - receiveInstrument
                                            - securityEpoch
                                            - after
                                            - before
                                            - formulaId
                                            - kind
                                            - lifecycleStage
                                            - limits
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            creatorRevenue:
                                              oneOf:
                                                - type: object
                                                  properties:
                                                    eligibility:
                                                      type: string
                                                      const: eligible
                                                    launchId:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 96
                                                    policy:
                                                      type: object
                                                      properties:
                                                        hash:
                                                          type: string
                                                          const: >-
                                                            sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                                                        id:
                                                          type: string
                                                          const: supanova-creator-revenue-policy
                                                        version:
                                                          type: string
                                                          const: '1'
                                                      required:
                                                        - hash
                                                        - id
                                                        - version
                                                      additionalProperties: false
                                                    protocolRootId:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 160
                                                  required:
                                                    - eligibility
                                                    - launchId
                                                    - policy
                                                    - protocolRootId
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    eligibility:
                                                      type: string
                                                      const: ineligible
                                                    reason:
                                                      type: string
                                                      enum:
                                                        - legacy-no-policy
                                                        - not-supanova-launch
                                                        - trader-cashback
                                                  required:
                                                    - eligibility
                                                    - reason
                                                  additionalProperties: false
                                            lifecycleEpoch:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                            marketReference:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                            marketRevision:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                            nextMarketRevision:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                            payInstrument:
                                              type: object
                                              properties:
                                                admin:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                              required:
                                                - admin
                                                - id
                                              additionalProperties: false
                                            receiveInstrument:
                                              type: object
                                              properties:
                                                admin:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                              required:
                                                - admin
                                                - id
                                              additionalProperties: false
                                            securityEpoch:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                            after:
                                              type: object
                                              properties:
                                                anchor:
                                                  type: string
                                                  enum:
                                                    - cc-reserve
                                                    - initial
                                                    - token-reserve
                                                ccReserve:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                formulaId:
                                                  type: string
                                                  const: supanova-real-cpmm-v1
                                                invariant:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                marginalPriceCcPerToken:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                revision:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,18})$
                                                tokenReserve:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                              required:
                                                - anchor
                                                - ccReserve
                                                - formulaId
                                                - invariant
                                                - marginalPriceCcPerToken
                                                - revision
                                                - tokenReserve
                                              additionalProperties: false
                                            before:
                                              type: object
                                              properties:
                                                anchor:
                                                  type: string
                                                  enum:
                                                    - cc-reserve
                                                    - initial
                                                    - token-reserve
                                                ccReserve:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                formulaId:
                                                  type: string
                                                  const: supanova-real-cpmm-v1
                                                invariant:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                marginalPriceCcPerToken:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                revision:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,18})$
                                                tokenReserve:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                              required:
                                                - anchor
                                                - ccReserve
                                                - formulaId
                                                - invariant
                                                - marginalPriceCcPerToken
                                                - revision
                                                - tokenReserve
                                              additionalProperties: false
                                            formulaId:
                                              type: string
                                              const: supanova-real-cpmm-v1
                                            kind:
                                              type: string
                                              const: real-cpmm
                                            lifecycleStage:
                                              type: string
                                              const: in_orbit
                                            limits:
                                              type: object
                                              properties:
                                                exactFinalGrossCc:
                                                  type: 'null'
                                                inputAsset:
                                                  type: string
                                                  enum:
                                                    - cc
                                                    - token
                                                maximumInputAmount:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                recovery:
                                                  type: string
                                                  const: refresh-on-revision-change
                                              required:
                                                - exactFinalGrossCc
                                                - inputAsset
                                                - maximumInputAmount
                                                - recovery
                                              additionalProperties: false
                                          required:
                                            - creatorRevenue
                                            - lifecycleEpoch
                                            - marketReference
                                            - marketRevision
                                            - nextMarketRevision
                                            - payInstrument
                                            - receiveInstrument
                                            - securityEpoch
                                            - after
                                            - before
                                            - formulaId
                                            - kind
                                            - lifecycleStage
                                            - limits
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            creatorRevenue:
                                              oneOf:
                                                - type: object
                                                  properties:
                                                    eligibility:
                                                      type: string
                                                      const: eligible
                                                    launchId:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 96
                                                    policy:
                                                      type: object
                                                      properties:
                                                        hash:
                                                          type: string
                                                          const: >-
                                                            sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                                                        id:
                                                          type: string
                                                          const: supanova-creator-revenue-policy
                                                        version:
                                                          type: string
                                                          const: '1'
                                                      required:
                                                        - hash
                                                        - id
                                                        - version
                                                      additionalProperties: false
                                                    protocolRootId:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 160
                                                  required:
                                                    - eligibility
                                                    - launchId
                                                    - policy
                                                    - protocolRootId
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    eligibility:
                                                      type: string
                                                      const: ineligible
                                                    reason:
                                                      type: string
                                                      enum:
                                                        - legacy-no-policy
                                                        - not-supanova-launch
                                                        - trader-cashback
                                                  required:
                                                    - eligibility
                                                    - reason
                                                  additionalProperties: false
                                            lifecycleEpoch:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                            marketReference:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                            marketRevision:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                            nextMarketRevision:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                            payInstrument:
                                              type: object
                                              properties:
                                                admin:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                              required:
                                                - admin
                                                - id
                                              additionalProperties: false
                                            receiveInstrument:
                                              type: object
                                              properties:
                                                admin:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                              required:
                                                - admin
                                                - id
                                              additionalProperties: false
                                            securityEpoch:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                            after:
                                              type: object
                                              properties:
                                                priceCcPerToken:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                revision:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,18})$
                                              required:
                                                - priceCcPerToken
                                                - revision
                                              additionalProperties: false
                                            before:
                                              type: object
                                              properties:
                                                priceCcPerToken:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                revision:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,18})$
                                              required:
                                                - priceCcPerToken
                                                - revision
                                              additionalProperties: false
                                            formulaId:
                                              type: string
                                              const: supanova-static-preview-v1
                                            kind:
                                              type: string
                                              const: static-preview
                                            lifecycleStage:
                                              type: string
                                              const: in_orbit
                                            limits:
                                              type: object
                                              properties:
                                                exactFinalGrossCc:
                                                  type: 'null'
                                                inputAsset:
                                                  type: string
                                                  enum:
                                                    - cc
                                                    - token
                                                maximumInputAmount:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                recovery:
                                                  type: string
                                                  const: refresh-on-revision-change
                                              required:
                                                - exactFinalGrossCc
                                                - inputAsset
                                                - maximumInputAmount
                                                - recovery
                                              additionalProperties: false
                                          required:
                                            - creatorRevenue
                                            - lifecycleEpoch
                                            - marketReference
                                            - marketRevision
                                            - nextMarketRevision
                                            - payInstrument
                                            - receiveInstrument
                                            - securityEpoch
                                            - after
                                            - before
                                            - formulaId
                                            - kind
                                            - lifecycleStage
                                            - limits
                                          additionalProperties: false
                                  networkId:
                                    type: string
                                    pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                                  policy:
                                    type: object
                                    properties:
                                      hash:
                                        type: string
                                        const: >-
                                          sha256:1c1bcf37c26e0c4c84af752e9f76447a82f8b22ba8c851f1cf070eccc43f548e
                                      snapshot:
                                        type: object
                                        properties:
                                          amm:
                                            type: object
                                            properties:
                                              authorizationMaxTtlSeconds:
                                                type: number
                                                const: 900
                                              fee:
                                                type: object
                                                properties:
                                                  asset:
                                                    type: string
                                                    const: cc
                                                  buySide:
                                                    type: string
                                                    const: deduct-from-gross-before-cc-enters-pool
                                                  policy:
                                                    type: string
                                                    const: outside-active-reserves
                                                  rate:
                                                    type: string
                                                    const: '0.01'
                                                  routing:
                                                    type: string
                                                    const: creator-revenue-policy-outside-pool
                                                  sellSide:
                                                    type: string
                                                    const: >-
                                                      deduct-from-gross-cc-after-cc-leaves-pool
                                                required:
                                                  - asset
                                                  - buySide
                                                  - policy
                                                  - rate
                                                  - routing
                                                  - sellSide
                                                additionalProperties: false
                                              formulaId:
                                                type: string
                                                const: supanova-real-cpmm-v1
                                              goldenManifestDigest:
                                                type: string
                                                const: >-
                                                  sha256:7fc5b0d592eaf85cb083775101efe73a099b404e6334cd85ac1683ac753626d0
                                              invariant:
                                                type: object
                                                properties:
                                                  anchor:
                                                    type: string
                                                    const: '50000000000000'
                                                  anchorRelation:
                                                    type: string
                                                    const: >-
                                                      initial=exact-seed;buy=tokenReserve==round10(k/ccReserve);sell=ccReserve==round10(k/tokenReserve)
                                                  driftPolicy:
                                                    type: string
                                                    const: reject-any-noncanonical-anchor-relation
                                                  transition:
                                                    type: string
                                                    const: >-
                                                      oppositeReserve=round10(k/nextInputReserve)
                                                required:
                                                  - anchor
                                                  - anchorRelation
                                                  - driftPolicy
                                                  - transition
                                                additionalProperties: false
                                              initialRealCcReserve:
                                                type: string
                                                const: '250000'
                                              initialRealTokenReserve:
                                                type: string
                                                const: '200000000'
                                              lifecycle:
                                                type: string
                                                const: >-
                                                  atomic-graduation-seed-then-revisioned-real-reserve
                                              minimumGrossBuyCc:
                                                type: string
                                                const: '0.01'
                                              minimumGrossSellCc:
                                                type: string
                                                const: '0.0099'
                                              minimumGrossSellDerivation:
                                                type: string
                                                const: gross-cc-from-reserve-before-fee
                                              numericScale:
                                                type: number
                                                const: 10
                                              rounding:
                                                type: object
                                                properties:
                                                  buyGrouping:
                                                    type: string
                                                    const: >-
                                                      fee=round10(gross*rate);net=round10(gross-fee);x1=round10(x+net);y1=round10(k/x1);out=round10(y-y1)
                                                  mode:
                                                    type: string
                                                    const: ledger-decimal10-half-even-per-operation
                                                  sellGrouping:
                                                    type: string
                                                    const: >-
                                                      y1=round10(y+tokenIn);x1=round10(k/y1);gross=round10(x-x1);fee=round10(gross*rate);net=round10(gross-fee)
                                                required:
                                                  - buyGrouping
                                                  - mode
                                                  - sellGrouping
                                                additionalProperties: false
                                              rootUniquenessAssumption:
                                                type: string
                                                const: >-
                                                  participant-inventory-and-submission-policy-required
                                              settlementReadiness:
                                                type: string
                                                const: external-settlement-adapter-unproven
                                            required:
                                              - authorizationMaxTtlSeconds
                                              - fee
                                              - formulaId
                                              - goldenManifestDigest
                                              - invariant
                                              - initialRealCcReserve
                                              - initialRealTokenReserve
                                              - lifecycle
                                              - minimumGrossBuyCc
                                              - minimumGrossSellCc
                                              - minimumGrossSellDerivation
                                              - numericScale
                                              - rounding
                                              - rootUniquenessAssumption
                                              - settlementReadiness
                                            additionalProperties: false
                                          curve:
                                            type: object
                                            properties:
                                              formulaId:
                                                type: string
                                                const: supanova-virtual-cpmm-v1
                                              policyHash:
                                                type: string
                                                const: >-
                                                  sha256:c843cc6204a25e687e40fff5f8033416031fb28d191f40b00e530855d70dd0ce
                                            required:
                                              - formulaId
                                              - policyHash
                                            additionalProperties: false
                                          creatorRevenue:
                                            type: object
                                            properties:
                                              allocationBinding:
                                                type: string
                                                const: one-exact-allocation-per-route-leg
                                              hash:
                                                type: string
                                                const: >-
                                                  sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                                              id:
                                                type: string
                                                const: supanova-creator-revenue-policy
                                              version:
                                                type: string
                                                const: '1'
                                            required:
                                              - allocationBinding
                                              - hash
                                              - id
                                              - version
                                            additionalProperties: false
                                          policyId:
                                            type: string
                                            const: supanova-swap-quote-policy
                                          policyVersion:
                                            type: string
                                            const: '3'
                                          quote:
                                            type: object
                                            properties:
                                              authorityLegBinding:
                                                type: string
                                                const: explicit-pay-and-receive-instruments
                                              creatorRevenueLegBinding:
                                                type: string
                                                const: >-
                                                  exact-launch-lineage-policy-and-allocation-per-leg
                                              expirySeconds:
                                                type: number
                                                const: 30
                                              marketReferenceUniqueness:
                                                type: string
                                                const: unique-within-route
                                              minimumOutputMaximumQuoted:
                                                type: string
                                                const: '999999999999999999999999.9999999999'
                                              minimumOutputRounding:
                                                type: string
                                                const: ledger-decimal10-round-down
                                              replayDomain:
                                                type: string
                                                const: supanova.swap.quote.v2
                                              revisionBinding:
                                                type: string
                                                const: >-
                                                  dynamic-next-equals-current-plus-one;static-next-equals-current
                                              singleUse:
                                                type: boolean
                                                const: true
                                            required:
                                              - authorityLegBinding
                                              - creatorRevenueLegBinding
                                              - expirySeconds
                                              - marketReferenceUniqueness
                                              - minimumOutputMaximumQuoted
                                              - minimumOutputRounding
                                              - replayDomain
                                              - revisionBinding
                                              - singleUse
                                            additionalProperties: false
                                        required:
                                          - amm
                                          - curve
                                          - creatorRevenue
                                          - policyId
                                          - policyVersion
                                          - quote
                                        additionalProperties: false
                                      version:
                                        type: string
                                        const: '3'
                                    required:
                                      - hash
                                      - snapshot
                                      - version
                                    additionalProperties: false
                                  replay:
                                    type: object
                                    properties:
                                      digest:
                                        type: string
                                        pattern: ^sha256:[0-9a-f]{64}$
                                      domain:
                                        type: string
                                        const: supanova.swap.quote.v2
                                    required:
                                      - digest
                                      - domain
                                    additionalProperties: false
                                  synchronizerId:
                                    type: string
                                    minLength: 1
                                    maxLength: 160
                                required:
                                  - expiresAt
                                  - legs
                                  - networkId
                                  - policy
                                  - replay
                                  - synchronizerId
                                additionalProperties: false
                              buyInstrument:
                                type: object
                                properties:
                                  admin:
                                    type: string
                                    minLength: 1
                                    maxLength: 160
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 160
                                required:
                                  - admin
                                  - id
                                additionalProperties: false
                              creatorRevenueAllocations:
                                minItems: 1
                                maxItems: 2
                                type: array
                                items:
                                  oneOf:
                                    - type: object
                                      properties:
                                        basisAmountCc:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        creatorRevenueCc:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        eligibility:
                                          type: string
                                          const: eligible
                                        grossRevenueCc:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        launchId:
                                          type: string
                                          minLength: 1
                                          maxLength: 96
                                        marketReference:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        policy:
                                          type: object
                                          properties:
                                            hash:
                                              type: string
                                              const: >-
                                                sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                                            id:
                                              type: string
                                              const: supanova-creator-revenue-policy
                                            version:
                                              type: string
                                              const: '1'
                                          required:
                                            - hash
                                            - id
                                            - version
                                          additionalProperties: false
                                        protocolRevenueCc:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        protocolRootId:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        routeLegCount:
                                          type: integer
                                          minimum: 1
                                          maximum: 2
                                        routeLegIndex:
                                          type: integer
                                          minimum: 0
                                          maximum: 1
                                        source:
                                          type: string
                                          enum:
                                            - virtual-curve-trading-fee
                                            - supaswap-amm-trading-fee
                                        tokenInstrument:
                                          type: object
                                          properties:
                                            admin:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                          required:
                                            - admin
                                            - id
                                          additionalProperties: false
                                      required:
                                        - basisAmountCc
                                        - creatorRevenueCc
                                        - eligibility
                                        - grossRevenueCc
                                        - launchId
                                        - marketReference
                                        - policy
                                        - protocolRevenueCc
                                        - protocolRootId
                                        - routeLegCount
                                        - routeLegIndex
                                        - source
                                        - tokenInstrument
                                      additionalProperties: false
                                    - type: object
                                      properties:
                                        eligibility:
                                          type: string
                                          const: ineligible
                                        marketReference:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        reason:
                                          type: string
                                          enum:
                                            - legacy-no-policy
                                            - not-supanova-launch
                                            - trader-cashback
                                        routeLegCount:
                                          type: integer
                                          minimum: 1
                                          maximum: 2
                                        routeLegIndex:
                                          type: integer
                                          minimum: 0
                                          maximum: 1
                                        tokenInstrument:
                                          type: object
                                          properties:
                                            admin:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                          required:
                                            - admin
                                            - id
                                          additionalProperties: false
                                      required:
                                        - eligibility
                                        - marketReference
                                        - reason
                                        - routeLegCount
                                        - routeLegIndex
                                        - tokenInstrument
                                      additionalProperties: false
                              feeAmountCc:
                                type: string
                              minimumBuyAmount:
                                type: string
                              partyId:
                                type: string
                              quoteId:
                                type: string
                                format: uuid
                                pattern: >-
                                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              quoteReplayDigest:
                                type: string
                                pattern: ^sha256:[0-9a-f]{64}$
                              sellAmount:
                                type: string
                              sellInstrument:
                                type: object
                                properties:
                                  admin:
                                    type: string
                                    minLength: 1
                                    maxLength: 160
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 160
                                required:
                                  - admin
                                  - id
                                additionalProperties: false
                              route:
                                minItems: 1
                                maxItems: 2
                                type: array
                                items:
                                  type: object
                                  properties:
                                    payInstrument:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                    receiveInstrument:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                    venue:
                                      type: string
                                      enum:
                                        - canton-dex
                                        - launch-curve
                                  required:
                                    - payInstrument
                                    - receiveInstrument
                                    - venue
                                  additionalProperties: false
                              type:
                                type: string
                                const: swap.execute
                            required:
                              - authority
                              - buyInstrument
                              - creatorRevenueAllocations
                              - feeAmountCc
                              - minimumBuyAmount
                              - partyId
                              - quoteId
                              - quoteReplayDigest
                              - sellAmount
                              - sellInstrument
                              - route
                              - type
                            additionalProperties: false
                          kind:
                            type: string
                            const: canton.prepare-execute
                          method:
                            type: string
                            const: prepareExecute
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                          operationId:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          readiness:
                            type: string
                            enum:
                              - daml-command-builder-not-configured
                              - ready
                          request:
                            anyOf:
                              - type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - application-submission
                                      - interactive-submission
                                      - wallet-submission
                                  commandId:
                                    type: string
                                    minLength: 1
                                    maxLength: 255
                                  actAs:
                                    minItems: 1
                                    maxItems: 8
                                    type: array
                                    items:
                                      type: string
                                      minLength: 3
                                      maxLength: 512
                                  synchronizerId:
                                    type: string
                                    minLength: 1
                                    maxLength: 512
                                  hashingSchemeVersion:
                                    type: string
                                    minLength: 1
                                    maxLength: 64
                                  signatureFormat:
                                    type: string
                                    const: SIGNATURE_FORMAT_RAW
                                  signingAlgorithmSpec:
                                    type: string
                                    const: SIGNING_ALGORITHM_SPEC_ED25519
                                  signedBy:
                                    anyOf:
                                      - type: string
                                        minLength: 4
                                        maxLength: 160
                                      - type: 'null'
                                  preparedTransaction:
                                    anyOf:
                                      - type: string
                                        maxLength: 4194304
                                      - type: 'null'
                                  preparedTransactionHash:
                                    anyOf:
                                      - type: string
                                        maxLength: 512
                                      - type: 'null'
                                required:
                                  - kind
                                  - commandId
                                  - actAs
                                  - synchronizerId
                                  - hashingSchemeVersion
                                  - signatureFormat
                                  - signingAlgorithmSpec
                                  - signedBy
                                  - preparedTransaction
                                  - preparedTransactionHash
                                additionalProperties: false
                              - type: 'null'
                          standard:
                            type: string
                            const: CIP-0103
                        required:
                          - expiresAt
                          - intent
                          - kind
                          - method
                          - networkId
                          - operationId
                          - readiness
                          - request
                          - standard
                        additionalProperties: false
                    required:
                      - execution
                      - operation
                      - walletAction
                    additionalProperties: false
                  - type: object
                    properties:
                      execution:
                        type: string
                        enum:
                          - ledger
                          - simulated
                      operation:
                        type: object
                        properties:
                          expiresAt:
                            type:
                              - string
                              - 'null'
                          id:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          status:
                            type: string
                        required:
                          - expiresAt
                          - id
                          - status
                        additionalProperties: false
                      walletAction:
                        type: object
                        properties:
                          expiresAt:
                            type: string
                          intent:
                            type: object
                            properties:
                              authority:
                                type: object
                                properties:
                                  expiresAt:
                                    type: string
                                    format: date-time
                                    pattern: >-
                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                  legs:
                                    minItems: 1
                                    maxItems: 1
                                    type: array
                                    items:
                                      oneOf:
                                        - type: object
                                          properties:
                                            creatorRevenue:
                                              type: object
                                              properties:
                                                eligibility:
                                                  type: string
                                                  const: eligible
                                                launchId:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                                policy:
                                                  type: object
                                                  properties:
                                                    hash:
                                                      type: string
                                                      const: >-
                                                        sha256:21c68b457e7684149d484e6bfb378457c36ea188e01187500367a76bf29cbde6
                                                    id:
                                                      type: string
                                                      const: supanova-creator-revenue-policy
                                                    version:
                                                      type: string
                                                      const: '2'
                                                  required:
                                                    - hash
                                                    - id
                                                    - version
                                                  additionalProperties: false
                                                protocolRootId:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                              required:
                                                - eligibility
                                                - launchId
                                                - policy
                                                - protocolRootId
                                              additionalProperties: false
                                            lifecycleEpoch:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                            market:
                                              type: object
                                              properties:
                                                economics:
                                                  type: object
                                                  properties:
                                                    curveAllocationBps:
                                                      type: integer
                                                      minimum: 5001
                                                      maximum: 9999
                                                    graduationNetCc:
                                                      type: string
                                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                    maxFeeBps:
                                                      type: integer
                                                      minimum: 0
                                                      maximum: 5000
                                                    minFeeClaimCc:
                                                      type: string
                                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                  required:
                                                    - curveAllocationBps
                                                    - graduationNetCc
                                                    - maxFeeBps
                                                    - minFeeClaimCc
                                                  additionalProperties: false
                                                feeConfig:
                                                  type: object
                                                  properties:
                                                    feeBps:
                                                      type: integer
                                                      minimum: 0
                                                      maximum: 10000
                                                    platformShareBps:
                                                      type: integer
                                                      minimum: 0
                                                      maximum: 10000
                                                  required:
                                                    - feeBps
                                                    - platformShareBps
                                                  additionalProperties: false
                                                totalSupply:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                              required:
                                                - economics
                                                - feeConfig
                                                - totalSupply
                                              additionalProperties: false
                                            marketReference:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                            marketRevision:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                            nextMarketRevision:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                            payInstrument:
                                              type: object
                                              properties:
                                                admin:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                              required:
                                                - admin
                                                - id
                                              additionalProperties: false
                                            receiveInstrument:
                                              type: object
                                              properties:
                                                admin:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                              required:
                                                - admin
                                                - id
                                              additionalProperties: false
                                            securityEpoch:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                            after:
                                              type: object
                                              properties:
                                                graduated:
                                                  type: boolean
                                                netCcReserve:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                tokensRemaining:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                tokensSold:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                              required:
                                                - graduated
                                                - netCcReserve
                                                - tokensRemaining
                                                - tokensSold
                                              additionalProperties: false
                                            before:
                                              type: object
                                              properties:
                                                graduated:
                                                  type: boolean
                                                netCcReserve:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                tokensRemaining:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                tokensSold:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                              required:
                                                - graduated
                                                - netCcReserve
                                                - tokensRemaining
                                                - tokensSold
                                              additionalProperties: false
                                            formulaId:
                                              type: string
                                              const: supanova-virtual-cpmm-v1
                                            kind:
                                              type: string
                                              const: virtual-cpmm
                                            lifecycleStage:
                                              type: string
                                              enum:
                                                - ignition
                                                - near_escape
                                            limits:
                                              type: object
                                              properties:
                                                exactFinalGrossCc:
                                                  anyOf:
                                                    - type: string
                                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                    - type: 'null'
                                                inputAsset:
                                                  type: string
                                                  enum:
                                                    - cc
                                                    - token
                                                maximumInputAmount:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                recovery:
                                                  type: string
                                                  enum:
                                                    - exact-final-gross-or-smaller-buy
                                                    - sell-all-or-leave-at-least-minimum
                                              required:
                                                - exactFinalGrossCc
                                                - inputAsset
                                                - maximumInputAmount
                                                - recovery
                                              additionalProperties: false
                                          required:
                                            - creatorRevenue
                                            - lifecycleEpoch
                                            - market
                                            - marketReference
                                            - marketRevision
                                            - nextMarketRevision
                                            - payInstrument
                                            - receiveInstrument
                                            - securityEpoch
                                            - after
                                            - before
                                            - formulaId
                                            - kind
                                            - lifecycleStage
                                            - limits
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            creatorRevenue:
                                              type: object
                                              properties:
                                                eligibility:
                                                  type: string
                                                  const: eligible
                                                launchId:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                                policy:
                                                  type: object
                                                  properties:
                                                    hash:
                                                      type: string
                                                      const: >-
                                                        sha256:21c68b457e7684149d484e6bfb378457c36ea188e01187500367a76bf29cbde6
                                                    id:
                                                      type: string
                                                      const: supanova-creator-revenue-policy
                                                    version:
                                                      type: string
                                                      const: '2'
                                                  required:
                                                    - hash
                                                    - id
                                                    - version
                                                  additionalProperties: false
                                                protocolRootId:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                              required:
                                                - eligibility
                                                - launchId
                                                - policy
                                                - protocolRootId
                                              additionalProperties: false
                                            lifecycleEpoch:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                            market:
                                              type: object
                                              properties:
                                                economics:
                                                  type: object
                                                  properties:
                                                    curveAllocationBps:
                                                      type: integer
                                                      minimum: 5001
                                                      maximum: 9999
                                                    graduationNetCc:
                                                      type: string
                                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                    maxFeeBps:
                                                      type: integer
                                                      minimum: 0
                                                      maximum: 5000
                                                    minFeeClaimCc:
                                                      type: string
                                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                  required:
                                                    - curveAllocationBps
                                                    - graduationNetCc
                                                    - maxFeeBps
                                                    - minFeeClaimCc
                                                  additionalProperties: false
                                                feeConfig:
                                                  type: object
                                                  properties:
                                                    feeBps:
                                                      type: integer
                                                      minimum: 0
                                                      maximum: 10000
                                                    platformShareBps:
                                                      type: integer
                                                      minimum: 0
                                                      maximum: 10000
                                                  required:
                                                    - feeBps
                                                    - platformShareBps
                                                  additionalProperties: false
                                                totalSupply:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                              required:
                                                - economics
                                                - feeConfig
                                                - totalSupply
                                              additionalProperties: false
                                            marketReference:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                            marketRevision:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                            nextMarketRevision:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                            payInstrument:
                                              type: object
                                              properties:
                                                admin:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                              required:
                                                - admin
                                                - id
                                              additionalProperties: false
                                            receiveInstrument:
                                              type: object
                                              properties:
                                                admin:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                              required:
                                                - admin
                                                - id
                                              additionalProperties: false
                                            securityEpoch:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                            after:
                                              type: object
                                              properties:
                                                anchor:
                                                  type: string
                                                  enum:
                                                    - cc-reserve
                                                    - initial
                                                    - token-reserve
                                                ccReserve:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                revision:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,18})$
                                                tokenReserve:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                              required:
                                                - anchor
                                                - ccReserve
                                                - revision
                                                - tokenReserve
                                              additionalProperties: false
                                            before:
                                              type: object
                                              properties:
                                                anchor:
                                                  type: string
                                                  enum:
                                                    - cc-reserve
                                                    - initial
                                                    - token-reserve
                                                ccReserve:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                revision:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,18})$
                                                tokenReserve:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                              required:
                                                - anchor
                                                - ccReserve
                                                - revision
                                                - tokenReserve
                                              additionalProperties: false
                                            formulaId:
                                              type: string
                                              const: supanova-real-cpmm-v1
                                            kind:
                                              type: string
                                              const: real-cpmm
                                            lifecycleStage:
                                              type: string
                                              const: in_orbit
                                            limits:
                                              type: object
                                              properties:
                                                exactFinalGrossCc:
                                                  type: 'null'
                                                inputAsset:
                                                  type: string
                                                  enum:
                                                    - cc
                                                    - token
                                                maximumInputAmount:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                recovery:
                                                  type: string
                                                  const: refresh-on-revision-change
                                              required:
                                                - exactFinalGrossCc
                                                - inputAsset
                                                - maximumInputAmount
                                                - recovery
                                              additionalProperties: false
                                          required:
                                            - creatorRevenue
                                            - lifecycleEpoch
                                            - market
                                            - marketReference
                                            - marketRevision
                                            - nextMarketRevision
                                            - payInstrument
                                            - receiveInstrument
                                            - securityEpoch
                                            - after
                                            - before
                                            - formulaId
                                            - kind
                                            - lifecycleStage
                                            - limits
                                          additionalProperties: false
                                  networkId:
                                    type: string
                                    pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                                  policy:
                                    type: object
                                    properties:
                                      hash:
                                        type: string
                                        const: >-
                                          sha256:453dec0f4f64164e6c89bd4fcf9303eafeadd133ca9e119acc5fd6fa694957c2
                                      snapshot: {}
                                      version:
                                        type: string
                                        const: '4'
                                    required:
                                      - hash
                                      - snapshot
                                      - version
                                    additionalProperties: false
                                  replay:
                                    type: object
                                    properties:
                                      digest:
                                        type: string
                                        pattern: ^sha256:[0-9a-f]{64}$
                                      domain:
                                        type: string
                                        const: supanova.swap.quote.v2
                                    required:
                                      - digest
                                      - domain
                                    additionalProperties: false
                                  synchronizerId:
                                    type: string
                                    minLength: 1
                                    maxLength: 160
                                required:
                                  - expiresAt
                                  - legs
                                  - networkId
                                  - policy
                                  - replay
                                  - synchronizerId
                                additionalProperties: false
                              buyInstrument:
                                type: object
                                properties:
                                  admin:
                                    type: string
                                    minLength: 1
                                    maxLength: 160
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 160
                                required:
                                  - admin
                                  - id
                                additionalProperties: false
                              creatorRevenueAllocations:
                                minItems: 1
                                maxItems: 1
                                type: array
                                items:
                                  type: object
                                  properties:
                                    basisAmountCc:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                    creatorRevenueCc:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                    eligibility:
                                      type: string
                                      const: eligible
                                    grossRevenueCc:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                    launchId:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                    marketReference:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                    policy:
                                      type: object
                                      properties:
                                        hash:
                                          type: string
                                          const: >-
                                            sha256:21c68b457e7684149d484e6bfb378457c36ea188e01187500367a76bf29cbde6
                                        id:
                                          type: string
                                          const: supanova-creator-revenue-policy
                                        version:
                                          type: string
                                          const: '2'
                                      required:
                                        - hash
                                        - id
                                        - version
                                      additionalProperties: false
                                    protocolRevenueCc:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                    protocolRootId:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                    routeLegCount:
                                      type: number
                                      const: 1
                                    routeLegIndex:
                                      type: number
                                      const: 0
                                    source:
                                      type: string
                                      enum:
                                        - curve-trading-fee
                                        - amm-trading-fee
                                    tokenInstrument:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                  required:
                                    - basisAmountCc
                                    - creatorRevenueCc
                                    - eligibility
                                    - grossRevenueCc
                                    - launchId
                                    - marketReference
                                    - policy
                                    - protocolRevenueCc
                                    - protocolRootId
                                    - routeLegCount
                                    - routeLegIndex
                                    - source
                                    - tokenInstrument
                                  additionalProperties: false
                              feeAmountCc:
                                type: string
                              minimumBuyAmount:
                                type: string
                              partyId:
                                type: string
                              quoteId:
                                type: string
                                format: uuid
                                pattern: >-
                                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              quoteReplayDigest:
                                type: string
                                pattern: ^sha256:[0-9a-f]{64}$
                              sellAmount:
                                type: string
                              sellInstrument:
                                type: object
                                properties:
                                  admin:
                                    type: string
                                    minLength: 1
                                    maxLength: 160
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 160
                                required:
                                  - admin
                                  - id
                                additionalProperties: false
                              route:
                                minItems: 1
                                maxItems: 1
                                type: array
                                items:
                                  type: object
                                  properties:
                                    payInstrument:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                    receiveInstrument:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                    venue:
                                      type: string
                                      enum:
                                        - canton-dex
                                        - launch-curve
                                  required:
                                    - payInstrument
                                    - receiveInstrument
                                    - venue
                                  additionalProperties: false
                              type:
                                type: string
                                const: swap.execute
                            required:
                              - authority
                              - buyInstrument
                              - creatorRevenueAllocations
                              - feeAmountCc
                              - minimumBuyAmount
                              - partyId
                              - quoteId
                              - quoteReplayDigest
                              - sellAmount
                              - sellInstrument
                              - route
                              - type
                            additionalProperties: false
                          kind:
                            type: string
                            const: canton.prepare-execute
                          method:
                            type: string
                            const: prepareExecute
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                          operationId:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          readiness:
                            type: string
                            enum:
                              - daml-command-builder-not-configured
                              - ready
                          request:
                            anyOf:
                              - type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - application-submission
                                      - interactive-submission
                                      - wallet-submission
                                  commandId:
                                    type: string
                                    minLength: 1
                                    maxLength: 255
                                  actAs:
                                    minItems: 1
                                    maxItems: 8
                                    type: array
                                    items:
                                      type: string
                                      minLength: 3
                                      maxLength: 512
                                  synchronizerId:
                                    type: string
                                    minLength: 1
                                    maxLength: 512
                                  hashingSchemeVersion:
                                    type: string
                                    minLength: 1
                                    maxLength: 64
                                  signatureFormat:
                                    type: string
                                    const: SIGNATURE_FORMAT_RAW
                                  signingAlgorithmSpec:
                                    type: string
                                    const: SIGNING_ALGORITHM_SPEC_ED25519
                                  signedBy:
                                    anyOf:
                                      - type: string
                                        minLength: 4
                                        maxLength: 160
                                      - type: 'null'
                                  preparedTransaction:
                                    anyOf:
                                      - type: string
                                        maxLength: 4194304
                                      - type: 'null'
                                  preparedTransactionHash:
                                    anyOf:
                                      - type: string
                                        maxLength: 512
                                      - type: 'null'
                                required:
                                  - kind
                                  - commandId
                                  - actAs
                                  - synchronizerId
                                  - hashingSchemeVersion
                                  - signatureFormat
                                  - signingAlgorithmSpec
                                  - signedBy
                                  - preparedTransaction
                                  - preparedTransactionHash
                                additionalProperties: false
                              - type: 'null'
                          standard:
                            type: string
                            const: CIP-0103
                        required:
                          - expiresAt
                          - intent
                          - kind
                          - method
                          - networkId
                          - operationId
                          - readiness
                          - request
                          - standard
                        additionalProperties: false
                    required:
                      - execution
                      - operation
                      - walletAction
                    additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `IDEMPOTENCY_KEY_REQUIRED`,
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '409':
          description: >-
            The request conflicts with current state, or the Idempotency-Key was
            reused with a different request (`IDEMPOTENCY_KEY_CONFLICT`; the
            former `IDEMPOTENCY_CONFLICT` is a deprecated alias, no longer
            returned, that clients handle the same way for one release). Codes:
            `IDEMPOTENCY_KEY_CONFLICT`, `IDEMPOTENCY_CONFLICT`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Create an idempotent wallet-authorized swap operation.
      tags:
        - swaps
  /api/v1/launch-applications:
    get:
      operationId: LaunchApplicationController_list_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Owned launch applications.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    applicantNotes:
                      type:
                        - string
                        - 'null'
                    contactEmail:
                      type:
                        - string
                        - 'null'
                    createdAt:
                      type: string
                    decidedAt:
                      type:
                        - string
                        - 'null'
                    id:
                      type: string
                      format: uuid
                      pattern: >-
                        ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    legalEntityName:
                      type:
                        - string
                        - 'null'
                    legalJurisdiction:
                      type:
                        - string
                        - 'null'
                    links:
                      type: object
                      propertyNames:
                        type: string
                        minLength: 1
                        maxLength: 64
                      additionalProperties:
                        type: string
                        maxLength: 2048
                        format: uri
                        description: >-
                          Public navigation-only HTTPS URL with a DNS hostname;
                          credentials, IP literals, localhost and private/local
                          DNS suffixes are forbidden. This is not permission for
                          server-side fetching.
                        pattern: ^https://
                    networkId:
                      type: string
                      pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                    projectDescription:
                      type:
                        - string
                        - 'null'
                    projectName:
                      type: string
                    projectSlug:
                      type: string
                    projectSummary:
                      type:
                        - string
                        - 'null'
                    quoteAssetDeploymentId:
                      type:
                        - string
                        - 'null'
                    status:
                      type: string
                    submissionVersion:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    submittedAt:
                      type:
                        - string
                        - 'null'
                    targetRaise:
                      type:
                        - string
                        - 'null'
                    team:
                      maxItems: 30
                      type: array
                      items:
                        type: object
                        properties:
                          bio:
                            type: string
                            maxLength: 1000
                          name:
                            type: string
                            minLength: 1
                            maxLength: 100
                          role:
                            type: string
                            minLength: 1
                            maxLength: 100
                        required:
                          - name
                          - role
                        additionalProperties: false
                    tokenName:
                      type:
                        - string
                        - 'null'
                    tokenSymbol:
                      type:
                        - string
                        - 'null'
                    tokenomics:
                      type: object
                      propertyNames:
                        type: string
                        minLength: 1
                        maxLength: 128
                      additionalProperties: {}
                    updatedAt:
                      type: string
                    websiteUrl:
                      type:
                        - string
                        - 'null'
                  required:
                    - applicantNotes
                    - contactEmail
                    - createdAt
                    - decidedAt
                    - id
                    - legalEntityName
                    - legalJurisdiction
                    - links
                    - networkId
                    - projectDescription
                    - projectName
                    - projectSlug
                    - projectSummary
                    - quoteAssetDeploymentId
                    - status
                    - submissionVersion
                    - submittedAt
                    - targetRaise
                    - team
                    - tokenName
                    - tokenSymbol
                    - tokenomics
                    - updatedAt
                    - websiteUrl
                  additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`,
            `GOVERNED_ISSUER_WORKFLOW_NOT_RELEASED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: List the authenticated issuer’s launch applications.
      tags:
        - launch applications
    post:
      operationId: LaunchApplicationController_create_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                applicantNotes:
                  type: string
                  maxLength: 5000
                contactEmail:
                  type: string
                  maxLength: 320
                  format: email
                  pattern: >-
                    ^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                legalEntityName:
                  type: string
                  minLength: 1
                  maxLength: 200
                legalJurisdiction:
                  type: string
                  minLength: 2
                  maxLength: 100
                links:
                  default: {}
                  type: object
                  propertyNames:
                    type: string
                    minLength: 1
                    maxLength: 64
                  additionalProperties:
                    type: string
                    maxLength: 2048
                    format: uri
                    description: >-
                      Public navigation-only HTTPS URL with a DNS hostname;
                      credentials, IP literals, localhost and private/local DNS
                      suffixes are forbidden. This is not permission for
                      server-side fetching.
                    pattern: ^https://
                projectDescription:
                  type: string
                  minLength: 20
                  maxLength: 20000
                projectName:
                  type: string
                  minLength: 2
                  maxLength: 120
                projectSlug:
                  type: string
                  pattern: ^[a-z0-9][a-z0-9-]{1,62}[a-z0-9]$
                projectSummary:
                  type: string
                  minLength: 10
                  maxLength: 500
                quoteAssetDeploymentId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                targetRaise:
                  type: string
                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                team:
                  default: []
                  maxItems: 30
                  type: array
                  items:
                    type: object
                    properties:
                      bio:
                        type: string
                        maxLength: 1000
                      name:
                        type: string
                        minLength: 1
                        maxLength: 100
                      role:
                        type: string
                        minLength: 1
                        maxLength: 100
                    required:
                      - name
                      - role
                    additionalProperties: false
                tokenName:
                  type: string
                  minLength: 2
                  maxLength: 120
                tokenSymbol:
                  type: string
                  minLength: 2
                  maxLength: 15
                  pattern: ^[A-Z0-9][A-Z0-9._-]*$
                tokenomics:
                  default: {}
                  type: object
                  propertyNames:
                    type: string
                    minLength: 1
                    maxLength: 128
                  additionalProperties: {}
                websiteUrl:
                  type: string
                  maxLength: 2048
                  format: uri
                  description: >-
                    Public navigation-only HTTPS URL with a DNS hostname;
                    credentials, IP literals, localhost and private/local DNS
                    suffixes are forbidden. This is not permission for
                    server-side fetching.
                  pattern: ^https://
              required:
                - links
                - projectName
                - projectSlug
                - team
                - tokenomics
              additionalProperties: false
      responses:
        '201':
          description: The created draft.
          content:
            application/json:
              schema:
                type: object
                properties:
                  applicantNotes:
                    type:
                      - string
                      - 'null'
                  contactEmail:
                    type:
                      - string
                      - 'null'
                  createdAt:
                    type: string
                  decidedAt:
                    type:
                      - string
                      - 'null'
                  id:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  legalEntityName:
                    type:
                      - string
                      - 'null'
                  legalJurisdiction:
                    type:
                      - string
                      - 'null'
                  links:
                    type: object
                    propertyNames:
                      type: string
                      minLength: 1
                      maxLength: 64
                    additionalProperties:
                      type: string
                      maxLength: 2048
                      format: uri
                      description: >-
                        Public navigation-only HTTPS URL with a DNS hostname;
                        credentials, IP literals, localhost and private/local
                        DNS suffixes are forbidden. This is not permission for
                        server-side fetching.
                      pattern: ^https://
                  networkId:
                    type: string
                    pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                  projectDescription:
                    type:
                      - string
                      - 'null'
                  projectName:
                    type: string
                  projectSlug:
                    type: string
                  projectSummary:
                    type:
                      - string
                      - 'null'
                  quoteAssetDeploymentId:
                    type:
                      - string
                      - 'null'
                  status:
                    type: string
                  submissionVersion:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  submittedAt:
                    type:
                      - string
                      - 'null'
                  targetRaise:
                    type:
                      - string
                      - 'null'
                  team:
                    maxItems: 30
                    type: array
                    items:
                      type: object
                      properties:
                        bio:
                          type: string
                          maxLength: 1000
                        name:
                          type: string
                          minLength: 1
                          maxLength: 100
                        role:
                          type: string
                          minLength: 1
                          maxLength: 100
                      required:
                        - name
                        - role
                      additionalProperties: false
                  tokenName:
                    type:
                      - string
                      - 'null'
                  tokenSymbol:
                    type:
                      - string
                      - 'null'
                  tokenomics:
                    type: object
                    propertyNames:
                      type: string
                      minLength: 1
                      maxLength: 128
                    additionalProperties: {}
                  updatedAt:
                    type: string
                  websiteUrl:
                    type:
                      - string
                      - 'null'
                required:
                  - applicantNotes
                  - contactEmail
                  - createdAt
                  - decidedAt
                  - id
                  - legalEntityName
                  - legalJurisdiction
                  - links
                  - networkId
                  - projectDescription
                  - projectName
                  - projectSlug
                  - projectSummary
                  - quoteAssetDeploymentId
                  - status
                  - submissionVersion
                  - submittedAt
                  - targetRaise
                  - team
                  - tokenName
                  - tokenSymbol
                  - tokenomics
                  - updatedAt
                  - websiteUrl
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`,
            `GOVERNED_ISSUER_WORKFLOW_NOT_RELEASED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Create a private launch application draft.
      tags:
        - launch applications
  /api/v1/launch-applications/{applicationId}:
    get:
      operationId: LaunchApplicationController_get_v1
      parameters:
        - name: applicationId
          required: true
          in: path
          schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: The owned launch application.
          content:
            application/json:
              schema:
                type: object
                properties:
                  applicantNotes:
                    type:
                      - string
                      - 'null'
                  contactEmail:
                    type:
                      - string
                      - 'null'
                  createdAt:
                    type: string
                  decidedAt:
                    type:
                      - string
                      - 'null'
                  id:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  legalEntityName:
                    type:
                      - string
                      - 'null'
                  legalJurisdiction:
                    type:
                      - string
                      - 'null'
                  links:
                    type: object
                    propertyNames:
                      type: string
                      minLength: 1
                      maxLength: 64
                    additionalProperties:
                      type: string
                      maxLength: 2048
                      format: uri
                      description: >-
                        Public navigation-only HTTPS URL with a DNS hostname;
                        credentials, IP literals, localhost and private/local
                        DNS suffixes are forbidden. This is not permission for
                        server-side fetching.
                      pattern: ^https://
                  networkId:
                    type: string
                    pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                  projectDescription:
                    type:
                      - string
                      - 'null'
                  projectName:
                    type: string
                  projectSlug:
                    type: string
                  projectSummary:
                    type:
                      - string
                      - 'null'
                  quoteAssetDeploymentId:
                    type:
                      - string
                      - 'null'
                  status:
                    type: string
                  submissionVersion:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  submittedAt:
                    type:
                      - string
                      - 'null'
                  targetRaise:
                    type:
                      - string
                      - 'null'
                  team:
                    maxItems: 30
                    type: array
                    items:
                      type: object
                      properties:
                        bio:
                          type: string
                          maxLength: 1000
                        name:
                          type: string
                          minLength: 1
                          maxLength: 100
                        role:
                          type: string
                          minLength: 1
                          maxLength: 100
                      required:
                        - name
                        - role
                      additionalProperties: false
                  tokenName:
                    type:
                      - string
                      - 'null'
                  tokenSymbol:
                    type:
                      - string
                      - 'null'
                  tokenomics:
                    type: object
                    propertyNames:
                      type: string
                      minLength: 1
                      maxLength: 128
                    additionalProperties: {}
                  updatedAt:
                    type: string
                  websiteUrl:
                    type:
                      - string
                      - 'null'
                required:
                  - applicantNotes
                  - contactEmail
                  - createdAt
                  - decidedAt
                  - id
                  - legalEntityName
                  - legalJurisdiction
                  - links
                  - networkId
                  - projectDescription
                  - projectName
                  - projectSlug
                  - projectSummary
                  - quoteAssetDeploymentId
                  - status
                  - submissionVersion
                  - submittedAt
                  - targetRaise
                  - team
                  - tokenName
                  - tokenSymbol
                  - tokenomics
                  - updatedAt
                  - websiteUrl
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No resource the caller may see matches the path.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`,
            `GOVERNED_ISSUER_WORKFLOW_NOT_RELEASED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Get one owned launch application.
      tags:
        - launch applications
    patch:
      operationId: LaunchApplicationController_update_v1
      parameters:
        - name: applicationId
          required: true
          in: path
          schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                applicantNotes:
                  type: string
                  maxLength: 5000
                contactEmail:
                  type: string
                  maxLength: 320
                  format: email
                  pattern: >-
                    ^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                legalEntityName:
                  type: string
                  minLength: 1
                  maxLength: 200
                legalJurisdiction:
                  type: string
                  minLength: 2
                  maxLength: 100
                links:
                  default: {}
                  type: object
                  propertyNames:
                    type: string
                    minLength: 1
                    maxLength: 64
                  additionalProperties:
                    type: string
                    maxLength: 2048
                    format: uri
                    description: >-
                      Public navigation-only HTTPS URL with a DNS hostname;
                      credentials, IP literals, localhost and private/local DNS
                      suffixes are forbidden. This is not permission for
                      server-side fetching.
                    pattern: ^https://
                projectDescription:
                  type: string
                  minLength: 20
                  maxLength: 20000
                projectName:
                  type: string
                  minLength: 2
                  maxLength: 120
                projectSlug:
                  type: string
                  pattern: ^[a-z0-9][a-z0-9-]{1,62}[a-z0-9]$
                projectSummary:
                  type: string
                  minLength: 10
                  maxLength: 500
                quoteAssetDeploymentId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                targetRaise:
                  type: string
                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                team:
                  default: []
                  maxItems: 30
                  type: array
                  items:
                    type: object
                    properties:
                      bio:
                        type: string
                        maxLength: 1000
                      name:
                        type: string
                        minLength: 1
                        maxLength: 100
                      role:
                        type: string
                        minLength: 1
                        maxLength: 100
                    required:
                      - name
                      - role
                    additionalProperties: false
                tokenName:
                  type: string
                  minLength: 2
                  maxLength: 120
                tokenSymbol:
                  type: string
                  minLength: 2
                  maxLength: 15
                  pattern: ^[A-Z0-9][A-Z0-9._-]*$
                tokenomics:
                  default: {}
                  type: object
                  propertyNames:
                    type: string
                    minLength: 1
                    maxLength: 128
                  additionalProperties: {}
                websiteUrl:
                  type: string
                  maxLength: 2048
                  format: uri
                  description: >-
                    Public navigation-only HTTPS URL with a DNS hostname;
                    credentials, IP literals, localhost and private/local DNS
                    suffixes are forbidden. This is not permission for
                    server-side fetching.
                  pattern: ^https://
              additionalProperties: false
      responses:
        '200':
          description: The updated application.
          content:
            application/json:
              schema:
                type: object
                properties:
                  applicantNotes:
                    type:
                      - string
                      - 'null'
                  contactEmail:
                    type:
                      - string
                      - 'null'
                  createdAt:
                    type: string
                  decidedAt:
                    type:
                      - string
                      - 'null'
                  id:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  legalEntityName:
                    type:
                      - string
                      - 'null'
                  legalJurisdiction:
                    type:
                      - string
                      - 'null'
                  links:
                    type: object
                    propertyNames:
                      type: string
                      minLength: 1
                      maxLength: 64
                    additionalProperties:
                      type: string
                      maxLength: 2048
                      format: uri
                      description: >-
                        Public navigation-only HTTPS URL with a DNS hostname;
                        credentials, IP literals, localhost and private/local
                        DNS suffixes are forbidden. This is not permission for
                        server-side fetching.
                      pattern: ^https://
                  networkId:
                    type: string
                    pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                  projectDescription:
                    type:
                      - string
                      - 'null'
                  projectName:
                    type: string
                  projectSlug:
                    type: string
                  projectSummary:
                    type:
                      - string
                      - 'null'
                  quoteAssetDeploymentId:
                    type:
                      - string
                      - 'null'
                  status:
                    type: string
                  submissionVersion:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  submittedAt:
                    type:
                      - string
                      - 'null'
                  targetRaise:
                    type:
                      - string
                      - 'null'
                  team:
                    maxItems: 30
                    type: array
                    items:
                      type: object
                      properties:
                        bio:
                          type: string
                          maxLength: 1000
                        name:
                          type: string
                          minLength: 1
                          maxLength: 100
                        role:
                          type: string
                          minLength: 1
                          maxLength: 100
                      required:
                        - name
                        - role
                      additionalProperties: false
                  tokenName:
                    type:
                      - string
                      - 'null'
                  tokenSymbol:
                    type:
                      - string
                      - 'null'
                  tokenomics:
                    type: object
                    propertyNames:
                      type: string
                      minLength: 1
                      maxLength: 128
                    additionalProperties: {}
                  updatedAt:
                    type: string
                  websiteUrl:
                    type:
                      - string
                      - 'null'
                required:
                  - applicantNotes
                  - contactEmail
                  - createdAt
                  - decidedAt
                  - id
                  - legalEntityName
                  - legalJurisdiction
                  - links
                  - networkId
                  - projectDescription
                  - projectName
                  - projectSlug
                  - projectSummary
                  - quoteAssetDeploymentId
                  - status
                  - submissionVersion
                  - submittedAt
                  - targetRaise
                  - team
                  - tokenName
                  - tokenSymbol
                  - tokenomics
                  - updatedAt
                  - websiteUrl
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No resource the caller may see matches the path.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`,
            `GOVERNED_ISSUER_WORKFLOW_NOT_RELEASED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Edit a draft or changes-requested application.
      tags:
        - launch applications
  /api/v1/launch-applications/{applicationId}/documents:
    get:
      operationId: LaunchApplicationController_listDocuments_v1
      parameters:
        - name: applicationId
          required: true
          in: path
          schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Owned application document statuses.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    contentType:
                      type: string
                      const: application/pdf
                    documentType:
                      type: string
                      enum:
                        - pitch_deck
                        - legal
                        - kyb
                        - tokenomics
                        - audit
                        - other
                    id:
                      type: string
                      format: uuid
                      pattern: >-
                        ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    originalFilename:
                      type: string
                    scanReason:
                      type:
                        - string
                        - 'null'
                    scanStatus:
                      type: string
                      enum:
                        - pending
                        - clean
                        - rejected
                        - failed
                    sha256:
                      type: string
                      pattern: ^[0-9a-f]{64}$
                    sizeBytes:
                      type: integer
                      exclusiveMinimum: 0
                      maximum: 9007199254740991
                    uploadedAt:
                      type: string
                    verifiedAt:
                      type:
                        - string
                        - 'null'
                  required:
                    - contentType
                    - documentType
                    - id
                    - originalFilename
                    - scanReason
                    - scanStatus
                    - sha256
                    - sizeBytes
                    - uploadedAt
                    - verifiedAt
                  additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No resource the caller may see matches the path.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`,
            `GOVERNED_ISSUER_WORKFLOW_NOT_RELEASED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: List document verification status for an owned application.
      tags:
        - launch applications
    post:
      operationId: LaunchApplicationController_registerDocument_v1
      parameters:
        - name: applicationId
          required: true
          in: path
          schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                uploadIntentId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              required:
                - uploadIntentId
              additionalProperties: false
      responses:
        '201':
          description: The pending document record.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  scanStatus:
                    type: string
                    const: pending
                  storagePath:
                    type: string
                required:
                  - id
                  - scanStatus
                  - storagePath
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No resource the caller may see matches the path.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`,
            `GOVERNED_ISSUER_WORKFLOW_NOT_RELEASED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Register a completed quota-reserved private document upload.
      tags:
        - launch applications
  /api/v1/launch-applications/{applicationId}/submit:
    post:
      operationId: LaunchApplicationController_submit_v1
      parameters:
        - name: applicationId
          required: true
          in: path
          schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '201':
          description: The submitted application.
          content:
            application/json:
              schema:
                type: object
                properties:
                  applicantNotes:
                    type:
                      - string
                      - 'null'
                  contactEmail:
                    type:
                      - string
                      - 'null'
                  createdAt:
                    type: string
                  decidedAt:
                    type:
                      - string
                      - 'null'
                  id:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  legalEntityName:
                    type:
                      - string
                      - 'null'
                  legalJurisdiction:
                    type:
                      - string
                      - 'null'
                  links:
                    type: object
                    propertyNames:
                      type: string
                      minLength: 1
                      maxLength: 64
                    additionalProperties:
                      type: string
                      maxLength: 2048
                      format: uri
                      description: >-
                        Public navigation-only HTTPS URL with a DNS hostname;
                        credentials, IP literals, localhost and private/local
                        DNS suffixes are forbidden. This is not permission for
                        server-side fetching.
                      pattern: ^https://
                  networkId:
                    type: string
                    pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                  projectDescription:
                    type:
                      - string
                      - 'null'
                  projectName:
                    type: string
                  projectSlug:
                    type: string
                  projectSummary:
                    type:
                      - string
                      - 'null'
                  quoteAssetDeploymentId:
                    type:
                      - string
                      - 'null'
                  status:
                    type: string
                  submissionVersion:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  submittedAt:
                    type:
                      - string
                      - 'null'
                  targetRaise:
                    type:
                      - string
                      - 'null'
                  team:
                    maxItems: 30
                    type: array
                    items:
                      type: object
                      properties:
                        bio:
                          type: string
                          maxLength: 1000
                        name:
                          type: string
                          minLength: 1
                          maxLength: 100
                        role:
                          type: string
                          minLength: 1
                          maxLength: 100
                      required:
                        - name
                        - role
                      additionalProperties: false
                  tokenName:
                    type:
                      - string
                      - 'null'
                  tokenSymbol:
                    type:
                      - string
                      - 'null'
                  tokenomics:
                    type: object
                    propertyNames:
                      type: string
                      minLength: 1
                      maxLength: 128
                    additionalProperties: {}
                  updatedAt:
                    type: string
                  websiteUrl:
                    type:
                      - string
                      - 'null'
                required:
                  - applicantNotes
                  - contactEmail
                  - createdAt
                  - decidedAt
                  - id
                  - legalEntityName
                  - legalJurisdiction
                  - links
                  - networkId
                  - projectDescription
                  - projectName
                  - projectSlug
                  - projectSummary
                  - quoteAssetDeploymentId
                  - status
                  - submissionVersion
                  - submittedAt
                  - targetRaise
                  - team
                  - tokenName
                  - tokenSymbol
                  - tokenomics
                  - updatedAt
                  - websiteUrl
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No resource the caller may see matches the path.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`,
            `GOVERNED_ISSUER_WORKFLOW_NOT_RELEASED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Submit a complete application to Mission Control.
      tags:
        - launch applications
  /api/v1/launch-applications/{applicationId}/withdraw:
    post:
      operationId: LaunchApplicationController_withdraw_v1
      parameters:
        - name: applicationId
          required: true
          in: path
          schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: The withdrawn application.
          content:
            application/json:
              schema:
                type: object
                properties:
                  applicantNotes:
                    type:
                      - string
                      - 'null'
                  contactEmail:
                    type:
                      - string
                      - 'null'
                  createdAt:
                    type: string
                  decidedAt:
                    type:
                      - string
                      - 'null'
                  id:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  legalEntityName:
                    type:
                      - string
                      - 'null'
                  legalJurisdiction:
                    type:
                      - string
                      - 'null'
                  links:
                    type: object
                    propertyNames:
                      type: string
                      minLength: 1
                      maxLength: 64
                    additionalProperties:
                      type: string
                      maxLength: 2048
                      format: uri
                      description: >-
                        Public navigation-only HTTPS URL with a DNS hostname;
                        credentials, IP literals, localhost and private/local
                        DNS suffixes are forbidden. This is not permission for
                        server-side fetching.
                      pattern: ^https://
                  networkId:
                    type: string
                    pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                  projectDescription:
                    type:
                      - string
                      - 'null'
                  projectName:
                    type: string
                  projectSlug:
                    type: string
                  projectSummary:
                    type:
                      - string
                      - 'null'
                  quoteAssetDeploymentId:
                    type:
                      - string
                      - 'null'
                  status:
                    type: string
                  submissionVersion:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  submittedAt:
                    type:
                      - string
                      - 'null'
                  targetRaise:
                    type:
                      - string
                      - 'null'
                  team:
                    maxItems: 30
                    type: array
                    items:
                      type: object
                      properties:
                        bio:
                          type: string
                          maxLength: 1000
                        name:
                          type: string
                          minLength: 1
                          maxLength: 100
                        role:
                          type: string
                          minLength: 1
                          maxLength: 100
                      required:
                        - name
                        - role
                      additionalProperties: false
                  tokenName:
                    type:
                      - string
                      - 'null'
                  tokenSymbol:
                    type:
                      - string
                      - 'null'
                  tokenomics:
                    type: object
                    propertyNames:
                      type: string
                      minLength: 1
                      maxLength: 128
                    additionalProperties: {}
                  updatedAt:
                    type: string
                  websiteUrl:
                    type:
                      - string
                      - 'null'
                required:
                  - applicantNotes
                  - contactEmail
                  - createdAt
                  - decidedAt
                  - id
                  - legalEntityName
                  - legalJurisdiction
                  - links
                  - networkId
                  - projectDescription
                  - projectName
                  - projectSlug
                  - projectSummary
                  - quoteAssetDeploymentId
                  - status
                  - submissionVersion
                  - submittedAt
                  - targetRaise
                  - team
                  - tokenName
                  - tokenSymbol
                  - tokenomics
                  - updatedAt
                  - websiteUrl
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No resource the caller may see matches the path.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`,
            `GOVERNED_ISSUER_WORKFLOW_NOT_RELEASED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Withdraw an owned application before final decision.
      tags:
        - launch applications
  /api/v1/launch-applications/{applicationId}/documents/uploads:
    post:
      operationId: LaunchApplicationController_reserveDocumentUpload_v1
      parameters:
        - name: applicationId
          required: true
          in: path
          schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                contentType:
                  type: string
                  const: application/pdf
                documentType:
                  type: string
                  enum:
                    - pitch_deck
                    - legal
                    - kyb
                    - tokenomics
                    - audit
                    - other
                originalFilename:
                  type: string
                  minLength: 1
                  maxLength: 255
                sha256:
                  type: string
                  pattern: ^[0-9a-f]{64}$
                sizeBytes:
                  type: integer
                  minimum: 1
                  maximum: 26214400
              required:
                - contentType
                - documentType
                - originalFilename
                - sha256
                - sizeBytes
              additionalProperties: false
      responses:
        '201':
          description: Short-lived upload reservation.
          content:
            application/json:
              schema:
                type: object
                properties:
                  dataMode:
                    type: string
                    enum:
                      - projected
                      - simulated
                  expiresAt:
                    type: string
                  intentId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  storagePath:
                    type: string
                  uploadMethod:
                    type: string
                    enum:
                      - preview-simulation
                      - supabase-authenticated-upload
                required:
                  - dataMode
                  - expiresAt
                  - intentId
                  - storagePath
                  - uploadMethod
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No resource the caller may see matches the path.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`,
            `GOVERNED_ISSUER_WORKFLOW_NOT_RELEASED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Reserve quota and authorize one exact private PDF upload.
      tags:
        - launch applications
  /api/v1/launches/{launchReference}/participations/prepare:
    post:
      operationId: LaunchParticipationController_prepare_v1
      parameters:
        - name: launchReference
          required: true
          in: path
          schema:
            type: string
            minLength: 2
            maxLength: 128
        - name: Idempotency-Key
          in: header
          required: true
          schema:
            type: string
            minLength: 8
            maxLength: 256
            pattern: ^[A-Za-z0-9._:-]+$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                commitmentAmount:
                  type: string
                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                minimumAllocation:
                  type: string
                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                walletConnectionId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              required:
                - commitmentAmount
                - minimumAllocation
                - walletConnectionId
              additionalProperties: false
      responses:
        '201':
          description: A wallet-neutral preview action and durable operation.
          content:
            application/json:
              schema:
                type: object
                properties:
                  execution:
                    type: string
                    const: simulated
                  operation:
                    type: object
                    properties:
                      expiresAt:
                        type: string
                      id:
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      status:
                        type: string
                    required:
                      - expiresAt
                      - id
                      - status
                    additionalProperties: false
                  previewTerms:
                    type: object
                    properties:
                      commitmentAmount:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      indicativeAllocation:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      paymentInstrument:
                        type: object
                        properties:
                          admin:
                            type: string
                            minLength: 1
                            maxLength: 512
                          id:
                            type: string
                            minLength: 1
                            maxLength: 512
                        required:
                          - admin
                          - id
                        additionalProperties: false
                      pricePerToken:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                    required:
                      - commitmentAmount
                      - indicativeAllocation
                      - paymentInstrument
                      - pricePerToken
                    additionalProperties: false
                  walletAction:
                    type: object
                    properties:
                      expiresAt:
                        type: string
                      intent:
                        type: object
                        properties:
                          contributorPartyId:
                            type: string
                            minLength: 3
                            maxLength: 512
                          launchReference:
                            type: string
                          minimumAllocation:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          payment:
                            type: object
                            properties:
                              amount:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              instrumentId:
                                type: object
                                properties:
                                  admin:
                                    type: string
                                    minLength: 1
                                    maxLength: 512
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 512
                                required:
                                  - admin
                                  - id
                                additionalProperties: false
                            required:
                              - amount
                              - instrumentId
                            additionalProperties: false
                          type:
                            type: string
                            const: launch.contribute
                        required:
                          - contributorPartyId
                          - launchReference
                          - minimumAllocation
                          - payment
                          - type
                        additionalProperties: false
                      kind:
                        type: string
                        const: canton.prepare-execute
                      method:
                        type: string
                        const: prepareExecute
                      networkId:
                        type: string
                        pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                      operationId:
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      readiness:
                        type: string
                        enum:
                          - daml-command-builder-not-configured
                          - ready
                      request:
                        anyOf:
                          - type: object
                            properties:
                              kind:
                                type: string
                                enum:
                                  - application-submission
                                  - interactive-submission
                                  - wallet-submission
                              commandId:
                                type: string
                                minLength: 1
                                maxLength: 255
                              actAs:
                                minItems: 1
                                maxItems: 8
                                type: array
                                items:
                                  type: string
                                  minLength: 3
                                  maxLength: 512
                              synchronizerId:
                                type: string
                                minLength: 1
                                maxLength: 512
                              hashingSchemeVersion:
                                type: string
                                minLength: 1
                                maxLength: 64
                              signatureFormat:
                                type: string
                                const: SIGNATURE_FORMAT_RAW
                              signingAlgorithmSpec:
                                type: string
                                const: SIGNING_ALGORITHM_SPEC_ED25519
                              signedBy:
                                anyOf:
                                  - type: string
                                    minLength: 4
                                    maxLength: 160
                                  - type: 'null'
                              preparedTransaction:
                                anyOf:
                                  - type: string
                                    maxLength: 4194304
                                  - type: 'null'
                              preparedTransactionHash:
                                anyOf:
                                  - type: string
                                    maxLength: 512
                                  - type: 'null'
                            required:
                              - kind
                              - commandId
                              - actAs
                              - synchronizerId
                              - hashingSchemeVersion
                              - signatureFormat
                              - signingAlgorithmSpec
                              - signedBy
                              - preparedTransaction
                              - preparedTransactionHash
                            additionalProperties: false
                          - type: 'null'
                      standard:
                        type: string
                        const: CIP-0103
                    required:
                      - expiresAt
                      - intent
                      - kind
                      - method
                      - networkId
                      - operationId
                      - readiness
                      - request
                      - standard
                    additionalProperties: false
                required:
                  - execution
                  - operation
                  - previewTerms
                  - walletAction
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `IDEMPOTENCY_KEY_REQUIRED`,
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No resource the caller may see matches the path.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '409':
          description: >-
            The request conflicts with current state, or the Idempotency-Key was
            reused with a different request (`IDEMPOTENCY_KEY_CONFLICT`; the
            former `IDEMPOTENCY_CONFLICT` is a deprecated alias, no longer
            returned, that clients handle the same way for one release). Codes:
            `IDEMPOTENCY_KEY_CONFLICT`, `IDEMPOTENCY_CONFLICT`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Create an idempotent wallet-authorized launch contribution intent.
      tags:
        - launch participation
  /api/v1/launch-media/uploads:
    post:
      operationId: LaunchMediaController_reserve_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                contentType:
                  type: string
                  enum:
                    - image/gif
                    - image/jpeg
                    - image/png
                    - image/webp
                    - video/mp4
                height:
                  type: integer
                  exclusiveMinimum: 0
                  maximum: 16384
                originalFilename:
                  type: string
                  minLength: 1
                  maxLength: 128
                  pattern: ^[A-Za-z0-9][A-Za-z0-9._ -]{0,127}$
                role:
                  type: string
                  enum:
                    - token_banner
                    - token_icon
                sha256:
                  type: string
                  pattern: ^[0-9a-f]{64}$
                sizeBytes:
                  type: integer
                  exclusiveMinimum: 0
                  maximum: 30000000
                width:
                  type: integer
                  exclusiveMinimum: 0
                  maximum: 16384
              required:
                - contentType
                - originalFilename
                - role
                - sha256
                - sizeBytes
              additionalProperties: false
      responses:
        '201':
          description: A one-use upload reservation.
          content:
            application/json:
              schema:
                type: object
                properties:
                  dataMode:
                    type: string
                    enum:
                      - durable
                      - simulated
                  expiresAt:
                    type: string
                  upload:
                    type: object
                    properties:
                      fieldName:
                        type: string
                        const: file
                      maxBytes:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      method:
                        type: string
                        const: POST
                      path:
                        type: string
                      transport:
                        type: string
                        const: multipart/form-data
                    required:
                      - fieldName
                      - maxBytes
                      - method
                      - path
                      - transport
                    additionalProperties: false
                  uploadId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                required:
                  - dataMode
                  - expiresAt
                  - upload
                  - uploadId
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`, `LAUNCH_MEDIA_PIPELINE_NOT_CONFIGURED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Reserve an exact launch-media upload descriptor.
      tags:
        - launch media
  /api/v1/launch-media/uploads/{uploadId}/content:
    post:
      operationId: LaunchMediaController_complete_v1
      parameters:
        - name: uploadId
          required: true
          in: path
          schema:
            format: uuid
            type: string
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
              required:
                - file
      responses:
        '201':
          description: >-
            Media metadata: published with a public URL, or still quarantined
            (no scanner configured).
          content:
            application/json:
              schema:
                type: object
                properties:
                  contentType:
                    type: string
                    enum:
                      - image/gif
                      - image/jpeg
                      - image/png
                      - image/webp
                      - video/mp4
                  dataMode:
                    type: string
                    enum:
                      - durable
                      - simulated
                  height:
                    anyOf:
                      - type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      - type: 'null'
                  mediaId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  publicUrl:
                    anyOf:
                      - type: string
                        format: uri
                      - type: 'null'
                  role:
                    type: string
                    enum:
                      - token_banner
                      - token_icon
                  sha256:
                    type: string
                    pattern: ^[0-9a-f]{64}$
                  sizeBytes:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  status:
                    type: string
                    enum:
                      - preview_accepted
                      - published
                      - quarantined
                      - rejected
                      - taken_down
                  storage:
                    type: string
                    enum:
                      - discarded-preview
                      - removed
                      - supabase-private
                      - supabase-public
                      - supabase-quarantine
                  width:
                    anyOf:
                      - type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      - type: 'null'
                required:
                  - contentType
                  - dataMode
                  - height
                  - mediaId
                  - publicUrl
                  - role
                  - sha256
                  - sizeBytes
                  - status
                  - storage
                  - width
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No resource the caller may see matches the path.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`, `LAUNCH_MEDIA_PIPELINE_NOT_CONFIGURED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: >-
        Consume a reservation with exact multipart bytes: quarantine, validate,
        strip metadata, scan, publish.
      tags:
        - launch media
  /api/v1/launch-media/{mediaId}:
    get:
      operationId: LaunchMediaController_get_v1
      parameters:
        - name: mediaId
          required: true
          in: path
          schema:
            format: uuid
            type: string
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Owned media metadata and publication status.
          content:
            application/json:
              schema:
                type: object
                properties:
                  contentType:
                    type: string
                    enum:
                      - image/gif
                      - image/jpeg
                      - image/png
                      - image/webp
                      - video/mp4
                  dataMode:
                    type: string
                    enum:
                      - durable
                      - simulated
                  height:
                    anyOf:
                      - type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      - type: 'null'
                  mediaId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  publicUrl:
                    anyOf:
                      - type: string
                        format: uri
                      - type: 'null'
                  role:
                    type: string
                    enum:
                      - token_banner
                      - token_icon
                  sha256:
                    type: string
                    pattern: ^[0-9a-f]{64}$
                  sizeBytes:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  status:
                    type: string
                    enum:
                      - preview_accepted
                      - published
                      - quarantined
                      - rejected
                      - taken_down
                  storage:
                    type: string
                    enum:
                      - discarded-preview
                      - removed
                      - supabase-private
                      - supabase-public
                      - supabase-quarantine
                  width:
                    anyOf:
                      - type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      - type: 'null'
                required:
                  - contentType
                  - dataMode
                  - height
                  - mediaId
                  - publicUrl
                  - role
                  - sha256
                  - sizeBytes
                  - status
                  - storage
                  - width
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No resource the caller may see matches the path.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`, `LAUNCH_MEDIA_PIPELINE_NOT_CONFIGURED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Read owned launch-media processing status.
      tags:
        - launch media
  /api/v1/me/avatar:
    post:
      operationId: ProfileAvatarController_upload_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
              required:
                - file
      responses:
        '201':
          description: Published (or quarantined) avatar.
          content:
            application/json:
              schema:
                type: object
                properties:
                  avatarPath:
                    anyOf:
                      - type: string
                        minLength: 1
                        maxLength: 512
                      - type: 'null'
                  contentType:
                    type: string
                    enum:
                      - image/jpeg
                      - image/png
                      - image/webp
                  height:
                    type: integer
                    exclusiveMinimum: 0
                    maximum: 9007199254740991
                  mediaId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  sha256:
                    type: string
                    pattern: ^[0-9a-f]{64}$
                  sizeBytes:
                    type: integer
                    exclusiveMinimum: 0
                    maximum: 9007199254740991
                  status:
                    type: string
                    enum:
                      - published
                      - quarantined
                  width:
                    type: integer
                    exclusiveMinimum: 0
                    maximum: 9007199254740991
                required:
                  - avatarPath
                  - contentType
                  - height
                  - mediaId
                  - sha256
                  - sizeBytes
                  - status
                  - width
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`, `CUSTOM_AVATAR_UPLOAD_NOT_CONFIGURED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: >-
        Upload a custom avatar (PNG, JPEG or WebP, at most 5 MiB). Returns the
        avatarPath to set on the profile.
      tags:
        - identity
    get:
      operationId: ProfileAvatarController_url_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Signed avatar URL.
          content:
            application/json:
              schema:
                type: object
                properties:
                  avatarPath:
                    type: string
                    minLength: 1
                    maxLength: 512
                  expiresAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                  url:
                    type: string
                    format: uri
                required:
                  - avatarPath
                  - expiresAt
                  - url
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: 'No published custom avatar: `CUSTOM_AVATAR_NOT_FOUND`.'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`, `CUSTOM_AVATAR_UPLOAD_NOT_CONFIGURED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: A 10-minute signed URL for the caller’s published custom avatar.
      tags:
        - identity
  /api/v1/points/program:
    get:
      operationId: PointsController_program_v1
      parameters:
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Versioned, off-ledger Points policy.
          content:
            application/json:
              schema:
                type: object
                properties:
                  meta:
                    type: object
                    properties:
                      asOf:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      authority:
                        type: string
                        const: supanova-product
                      dataMode:
                        type: string
                        const: simulated
                      disclaimer:
                        type: string
                        minLength: 1
                        maxLength: 1024
                      ledgerEffect:
                        type: string
                        const: none
                      policyVersion:
                        type: string
                        const: points-preview-2026-08-07.1
                    required:
                      - asOf
                      - authority
                      - dataMode
                      - disclaimer
                      - ledgerEffect
                      - policyVersion
                    additionalProperties: false
                  reset:
                    type: object
                    properties:
                      cadence:
                        type: string
                        const: daily
                      nextAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      timezone:
                        type: string
                        const: UTC
                    required:
                      - cadence
                      - nextAt
                      - timezone
                    additionalProperties: false
                  status:
                    type: string
                    const: preview
                  tasks:
                    minItems: 3
                    maxItems: 3
                    type: array
                    items:
                      oneOf:
                        - type: object
                          properties:
                            awardPoints:
                              type: string
                              const: '5'
                            cadence:
                              type: string
                              const: once_per_utc_day
                            description:
                              type: string
                              minLength: 1
                              maxLength: 500
                            eligibleActions:
                              type: array
                              minItems: 3
                              maxItems: 3
                              prefixItems:
                                - type: string
                                  const: deposit
                                - type: string
                                  const: withdrawal
                                - type: string
                                  const: swap
                            id:
                              type: string
                              const: daily_transaction
                            title:
                              type: string
                              const: Daily Transaction
                          required:
                            - awardPoints
                            - cadence
                            - description
                            - eligibleActions
                            - id
                            - title
                          additionalProperties: false
                        - type: object
                          properties:
                            awardPoints:
                              type: string
                              const: '2'
                            cadence:
                              type: string
                              const: once_per_utc_day
                            description:
                              type: string
                              minLength: 1
                              maxLength: 500
                            id:
                              type: string
                              const: daily_swap
                            threshold:
                              type: object
                              properties:
                                currency:
                                  type: string
                                  const: USD
                                operator:
                                  type: string
                                  const: greater_than
                                value:
                                  type: string
                                  const: '10'
                              required:
                                - currency
                                - operator
                                - value
                              additionalProperties: false
                            title:
                              type: string
                              const: Daily Swap
                          required:
                            - awardPoints
                            - cadence
                            - description
                            - id
                            - threshold
                            - title
                          additionalProperties: false
                        - type: object
                          properties:
                            awardPoints:
                              type: string
                              const: '10'
                            cadence:
                              type: string
                              const: once_per_utc_day
                            description:
                              type: string
                              minLength: 1
                              maxLength: 500
                            downstreamPointsShareBps:
                              type: string
                              const: '1000'
                            id:
                              type: string
                              const: daily_referral
                            qualification:
                              type: object
                              properties:
                                depositThreshold:
                                  type: object
                                  properties:
                                    currency:
                                      type: string
                                      const: USD
                                    operator:
                                      type: string
                                      const: greater_than_or_equal
                                    value:
                                      type: string
                                      const: '10'
                                    valuationAuthority:
                                      type: string
                                      const: >-
                                        server_reference_rate_at_confirmed_finality
                                  required:
                                    - currency
                                    - operator
                                    - value
                                    - valuationAuthority
                                  additionalProperties: false
                                signup:
                                  type: string
                                  const: verified_product_profile
                              required:
                                - depositThreshold
                                - signup
                              additionalProperties: false
                            title:
                              type: string
                              const: Daily Referral
                          required:
                            - awardPoints
                            - cadence
                            - description
                            - downstreamPointsShareBps
                            - id
                            - qualification
                            - title
                          additionalProperties: false
                  tiers:
                    minItems: 5
                    maxItems: 5
                    type: array
                    items:
                      type: object
                      properties:
                        description:
                          type: string
                          minLength: 1
                          maxLength: 500
                        id:
                          type: string
                          enum:
                            - stargazer
                            - pathfinder
                            - voyager
                            - luminary
                            - nova_prime
                        minimumActiveWeeks:
                          type: integer
                          minimum: 0
                          maximum: 52
                        minimumPoints:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})$
                        name:
                          type: string
                          enum:
                            - Stargazer
                            - Pathfinder
                            - Voyager
                            - Luminary
                            - Nova Prime
                      required:
                        - description
                        - id
                        - minimumActiveWeeks
                        - minimumPoints
                        - name
                      additionalProperties: false
                required:
                  - meta
                  - reset
                  - status
                  - tasks
                  - tiers
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: A durable, reviewed Supanova Points policy engine is not configured.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security: []
      summary: Read the public product Points preview policy and daily reset.
      tags:
        - points
  /api/v1/points/leaderboard:
    get:
      operationId: PointsController_leaderboard_v1
      parameters:
        - name: limit
          required: false
          in: query
          schema:
            default: 20
            type: integer
            minimum: 1
            maximum: 100
        - name: period
          required: false
          in: query
          schema:
            default: week
            type: string
            enum:
              - week
              - all
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: A privacy-safe weekly or all-time preview leaderboard.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    maxItems: 100
                    type: array
                    items:
                      type: object
                      properties:
                        points:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})$
                        profile:
                          type: object
                          properties:
                            avatarPresetId:
                              anyOf:
                                - type: string
                                  pattern: ^supanova-(?:0[1-9]|1[0-2])$
                                - type: 'null'
                            displayName:
                              type: string
                              minLength: 2
                              maxLength: 32
                            username:
                              type: string
                              minLength: 3
                              maxLength: 24
                              pattern: ^[a-z][a-z0-9_]*$
                            visibility:
                              type: string
                              const: public_opt_in
                          required:
                            - avatarPresetId
                            - displayName
                            - username
                            - visibility
                          additionalProperties: false
                        rank:
                          type: integer
                          exclusiveMinimum: 0
                          maximum: 9007199254740991
                        tasksCompleted:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                      required:
                        - points
                        - profile
                        - rank
                        - tasksCompleted
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      asOf:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      authority:
                        type: string
                        const: supanova-product
                      dataMode:
                        type: string
                        const: simulated
                      disclaimer:
                        type: string
                        minLength: 1
                        maxLength: 1024
                      ledgerEffect:
                        type: string
                        const: none
                      policyVersion:
                        type: string
                        const: points-preview-2026-08-07.1
                    required:
                      - asOf
                      - authority
                      - dataMode
                      - disclaimer
                      - ledgerEffect
                      - policyVersion
                    additionalProperties: false
                  period:
                    type: string
                    enum:
                      - week
                      - all
                  viewer:
                    type: 'null'
                required:
                  - items
                  - meta
                  - period
                  - viewer
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: 'The leaderboard query is invalid. Also: `VALIDATION_FAILED`.'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: A durable, reviewed Supanova Points policy engine is not configured.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security: []
      summary: >-
        Read a bounded Points leaderboard containing opted-in public profiles
        only.
      tags:
        - points
  /api/v1/me/points:
    get:
      operationId: MyPointsController_summary_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Account-owned Points preview summary.
          content:
            application/json:
              schema:
                type: object
                properties:
                  balance:
                    type: string
                    pattern: ^(?:0|[1-9]\d{0,27})$
                  daily:
                    type: object
                    properties:
                      availablePoints:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})$
                      completedTaskCount:
                        type: integer
                        minimum: 0
                        maximum: 3
                      date:
                        type: string
                        pattern: ^\d{4}-\d{2}-\d{2}$
                      resetAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      taskCount:
                        type: number
                        const: 3
                      tasks:
                        minItems: 3
                        maxItems: 3
                        type: array
                        items:
                          type: object
                          properties:
                            awardPoints:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})$
                            awardedPoints:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})$
                            id:
                              type: string
                              enum:
                                - daily_transaction
                                - daily_swap
                                - daily_referral
                            status:
                              type: string
                              enum:
                                - available
                                - completed
                          required:
                            - awardPoints
                            - awardedPoints
                            - id
                            - status
                          additionalProperties: false
                    required:
                      - availablePoints
                      - completedTaskCount
                      - date
                      - resetAt
                      - taskCount
                      - tasks
                    additionalProperties: false
                  leaderboardRanks:
                    type: object
                    properties:
                      all:
                        anyOf:
                          - type: integer
                            exclusiveMinimum: 0
                            maximum: 9007199254740991
                          - type: 'null'
                      week:
                        anyOf:
                          - type: integer
                            exclusiveMinimum: 0
                            maximum: 9007199254740991
                          - type: 'null'
                    required:
                      - all
                      - week
                    additionalProperties: false
                  meta:
                    type: object
                    properties:
                      asOf:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      authority:
                        type: string
                        const: supanova-product
                      dataMode:
                        type: string
                        const: simulated
                      disclaimer:
                        type: string
                        minLength: 1
                        maxLength: 1024
                      ledgerEffect:
                        type: string
                        const: none
                      policyVersion:
                        type: string
                        const: points-preview-2026-08-07.1
                    required:
                      - asOf
                      - authority
                      - dataMode
                      - disclaimer
                      - ledgerEffect
                      - policyVersion
                    additionalProperties: false
                  progress:
                    type: object
                    properties:
                      activeWeeks:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      currentTier:
                        type: object
                        properties:
                          description:
                            type: string
                            minLength: 1
                            maxLength: 500
                          id:
                            type: string
                            enum:
                              - stargazer
                              - pathfinder
                              - voyager
                              - luminary
                              - nova_prime
                          minimumActiveWeeks:
                            type: integer
                            minimum: 0
                            maximum: 52
                          minimumPoints:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})$
                          name:
                            type: string
                            enum:
                              - Stargazer
                              - Pathfinder
                              - Voyager
                              - Luminary
                              - Nova Prime
                        required:
                          - description
                          - id
                          - minimumActiveWeeks
                          - minimumPoints
                          - name
                        additionalProperties: false
                      highestTierQualificationMet:
                        type: boolean
                      nextTier:
                        anyOf:
                          - type: object
                            properties:
                              description:
                                type: string
                                minLength: 1
                                maxLength: 500
                              id:
                                type: string
                                enum:
                                  - stargazer
                                  - pathfinder
                                  - voyager
                                  - luminary
                                  - nova_prime
                              minimumActiveWeeks:
                                type: integer
                                minimum: 0
                                maximum: 52
                              minimumPoints:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})$
                              name:
                                type: string
                                enum:
                                  - Stargazer
                                  - Pathfinder
                                  - Voyager
                                  - Luminary
                                  - Nova Prime
                            required:
                              - description
                              - id
                              - minimumActiveWeeks
                              - minimumPoints
                              - name
                            additionalProperties: false
                          - type: 'null'
                      pointsToNextTier:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})$
                    required:
                      - activeWeeks
                      - currentTier
                      - highestTierQualificationMet
                      - nextTier
                      - pointsToNextTier
                    additionalProperties: false
                  streak:
                    type: object
                    properties:
                      bestDays:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      completionRatePercent:
                        type: integer
                        minimum: 0
                        maximum: 100
                      currentDays:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      recentDays:
                        maxItems: 31
                        type: array
                        items:
                          type: object
                          properties:
                            completedTaskCount:
                              type: integer
                              minimum: 0
                              maximum: 3
                            date:
                              type: string
                              pattern: ^\d{4}-\d{2}-\d{2}$
                            status:
                              type: string
                              enum:
                                - complete
                                - partial
                                - empty
                          required:
                            - completedTaskCount
                            - date
                            - status
                          additionalProperties: false
                    required:
                      - bestDays
                      - completionRatePercent
                      - currentDays
                      - recentDays
                    additionalProperties: false
                  totals:
                    type: object
                    properties:
                      qualifiedReferrals:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      referralPoints:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})$
                      tasksCompleted:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                    required:
                      - qualifiedReferrals
                      - referralPoints
                      - tasksCompleted
                    additionalProperties: false
                required:
                  - balance
                  - daily
                  - leaderboardRanks
                  - meta
                  - progress
                  - streak
                  - totals
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A durable, reviewed Supanova Points policy engine is not configured.
            Also: `AUTHENTICATION_UNAVAILABLE`, `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Read the authenticated account Points summary and streak.
      tags:
        - points
  /api/v1/me/points/activity:
    get:
      operationId: MyPointsController_activity_v1
      parameters:
        - name: cursor
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 512
        - name: kind
          required: false
          in: query
          schema:
            type: string
            enum:
              - daily
              - swap
              - referral
        - name: limit
          required: false
          in: query
          schema:
            default: 20
            type: integer
            minimum: 1
            maximum: 50
        - name: status
          required: false
          in: query
          schema:
            type: string
            enum:
              - credited
              - invited
              - accepted
              - reversed
              - corrected
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Account-owned, filtered Points activity.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        detail:
                          anyOf:
                            - type: string
                              minLength: 1
                              maxLength: 500
                            - type: 'null'
                        entryType:
                          anyOf:
                            - type: string
                              enum:
                                - earn
                                - revoke
                                - correction
                            - type: 'null'
                        id:
                          type: string
                          minLength: 1
                          maxLength: 128
                        kind:
                          type: string
                          enum:
                            - daily
                            - swap
                            - referral
                        label:
                          type: string
                          minLength: 1
                          maxLength: 200
                        occurredAt:
                          type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        pointsDelta:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27}|-[1-9]\d{0,27})$
                        status:
                          type: string
                          enum:
                            - credited
                            - invited
                            - accepted
                            - reversed
                            - corrected
                      required:
                        - detail
                        - entryType
                        - id
                        - kind
                        - label
                        - occurredAt
                        - pointsDelta
                        - status
                      additionalProperties: false
                  meta:
                    type: object
                    properties:
                      asOf:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      authority:
                        type: string
                        const: supanova-product
                      dataMode:
                        type: string
                        const: simulated
                      disclaimer:
                        type: string
                        minLength: 1
                        maxLength: 1024
                      ledgerEffect:
                        type: string
                        const: none
                      policyVersion:
                        type: string
                        const: points-preview-2026-08-07.1
                    required:
                      - asOf
                      - authority
                      - dataMode
                      - disclaimer
                      - ledgerEffect
                      - policyVersion
                    additionalProperties: false
                  nextCursor:
                    type:
                      - string
                      - 'null'
                required:
                  - items
                  - meta
                  - nextCursor
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The filters or pagination cursor are invalid. Also:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A durable, reviewed Supanova Points policy engine is not configured.
            Also: `AUTHENTICATION_UNAVAILABLE`, `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Read bounded, cursor-paginated account Points activity.
      tags:
        - points
  /api/v1/me/referral:
    get:
      operationId: MyPointsController_referral_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Account-owned referral preview state.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    pattern: ^NOVA-[A-Z0-9-]{3,32}$
                  daily:
                    type: object
                    properties:
                      awardPoints:
                        type: string
                        const: '10'
                      resetAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      status:
                        type: string
                        enum:
                          - available
                          - completed
                    required:
                      - awardPoints
                      - resetAt
                      - status
                    additionalProperties: false
                  meta:
                    type: object
                    properties:
                      asOf:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      authority:
                        type: string
                        const: supanova-product
                      dataMode:
                        type: string
                        const: simulated
                      disclaimer:
                        type: string
                        minLength: 1
                        maxLength: 1024
                      ledgerEffect:
                        type: string
                        const: none
                      policyVersion:
                        type: string
                        const: points-preview-2026-08-07.1
                    required:
                      - asOf
                      - authority
                      - dataMode
                      - disclaimer
                      - ledgerEffect
                      - policyVersion
                    additionalProperties: false
                  qualifiedReferrals:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  referralPoints:
                    type: string
                    pattern: ^(?:0|[1-9]\d{0,27})$
                  rules:
                    type: object
                    properties:
                      downstreamPointsShareBps:
                        type: string
                        const: '1000'
                      qualification:
                        type: object
                        properties:
                          depositThreshold:
                            type: object
                            properties:
                              currency:
                                type: string
                                const: USD
                              operator:
                                type: string
                                const: greater_than_or_equal
                              value:
                                type: string
                                const: '10'
                              valuationAuthority:
                                type: string
                                const: server_reference_rate_at_confirmed_finality
                            required:
                              - currency
                              - operator
                              - value
                              - valuationAuthority
                            additionalProperties: false
                          signup:
                            type: string
                            const: verified_product_profile
                        required:
                          - depositThreshold
                          - signup
                        additionalProperties: false
                    required:
                      - downstreamPointsShareBps
                      - qualification
                    additionalProperties: false
                  sharing:
                    type: object
                    properties:
                      path:
                        type: 'null'
                      reasonCode:
                        type: string
                        const: REFERRAL_CAPTURE_NOT_CONFIGURED
                      status:
                        type: string
                        const: disabled
                    required:
                      - path
                      - reasonCode
                      - status
                    additionalProperties: false
                required:
                  - code
                  - daily
                  - meta
                  - qualifiedReferrals
                  - referralPoints
                  - rules
                  - sharing
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A durable, reviewed Supanova Points policy engine is not configured.
            Also: `AUTHENTICATION_UNAVAILABLE`, `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Read the authenticated account referral preview state.
      tags:
        - points
  /api/v1/token-launches/policy:
    get:
      operationId: TokenLaunchController_policy_v1
      parameters:
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: >-
            liveTerms carries the Registrar terms new launches use. economics
            and milestones are the legacy fixed 1e9-supply preview; the
            reward-routing and creator-revenue policies are current.
          content:
            application/json:
              schema:
                type: object
                properties:
                  creatorRevenuePolicy:
                    type: object
                    properties:
                      attribution:
                        type: object
                        properties:
                          featuredApp:
                            type: string
                            const: >-
                              authoritative-cc-event-uniquely-correlated-to-one-accepted-launch-instrument-only
                          reversal:
                            type: string
                            const: >-
                              append-only-exact-opposite-once-and-only-before-any-distribution-allocation
                          routedTokenToToken:
                            type: string
                            const: >-
                              one-source-event-per-supaswap-leg-attributed-to-that-leg-token-launch
                          unattributedActivity:
                            type: string
                            const: reject-never-api-prorate
                        required:
                          - featuredApp
                          - reversal
                          - routedTokenToToken
                          - unattributedActivity
                        additionalProperties: false
                      eligibility:
                        type: object
                        properties:
                          activation:
                            type: string
                            const: >-
                              exact-policy-accepted-launches-only-no-retroactive-attribution
                          beneficiary:
                            type: string
                            const: immutable-token-launch-reward-route-party
                          rewardDestination:
                            type: string
                            const: creator
                          traderCashback:
                            type: string
                            const: ineligible-pending-explicit-product-decision
                        required:
                          - activation
                          - beneficiary
                          - rewardDestination
                          - traderCashback
                        additionalProperties: false
                      formulaId:
                        type: string
                        const: supanova-creator-revenue-v1
                      hash:
                        type: string
                        const: >-
                          sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                      id:
                        type: string
                        const: supanova-creator-revenue-policy
                      immutable:
                        type: boolean
                        const: true
                      numericScale:
                        type: number
                        const: 10
                      numericDomain:
                        type: object
                        properties:
                          dust:
                            type: string
                            const: reject-if-gross-or-creator-rounds-to-zero
                          maximumBasisAmountCc:
                            type: string
                            const: '999999999999999999999999.9999999999'
                        required:
                          - dust
                          - maximumBasisAmountCc
                        additionalProperties: false
                      rounding:
                        type: object
                        properties:
                          grossRevenue:
                            type: string
                            const: round10-half-even(source-basis-cc*source-rate)
                          split:
                            type: string
                            const: >-
                              creator=round10-half-even(gross-revenue-cc*creator-share-rate);protocol=gross-revenue-cc-creator-revenue-cc
                        required:
                          - grossRevenue
                          - split
                        additionalProperties: false
                      settlement:
                        type: object
                        properties:
                          execution:
                            type: string
                            const: not-enabled
                          featuredAppExternalPartyRequirement:
                            type: string
                            const: >-
                              beneficiary-mint-delegation-or-manual-mint-each-round-required
                          legalApproval:
                            type: string
                            const: required-before-live
                          readiness:
                            type: string
                            const: >-
                              canton-attribution-and-distribution-writers-not-configured
                        required:
                          - execution
                          - featuredAppExternalPartyRequirement
                          - legalApproval
                          - readiness
                        additionalProperties: false
                      sources:
                        type: array
                        minItems: 3
                        maxItems: 3
                        prefixItems:
                          - type: object
                            properties:
                              basis:
                                type: string
                                const: gross-curve-trade-notional-cc
                              creatorShareRate:
                                type: string
                                const: '0.80'
                              id:
                                type: string
                                const: virtual-curve-trading-fee
                              protocolShareRate:
                                type: string
                                const: '0.20'
                              revenueRate:
                                type: string
                                const: '0.01'
                              settlementStrategy:
                                type: string
                                const: accounted-then-ledger-distribution
                            required:
                              - basis
                              - creatorShareRate
                              - id
                              - protocolShareRate
                              - revenueRate
                              - settlementStrategy
                            additionalProperties: false
                          - type: object
                            properties:
                              basis:
                                type: string
                                const: gross-supaswap-trade-notional-cc
                              creatorShareRate:
                                type: string
                                const: '0.80'
                              id:
                                type: string
                                const: supaswap-amm-trading-fee
                              protocolShareRate:
                                type: string
                                const: '0.20'
                              revenueRate:
                                type: string
                                const: '0.01'
                              settlementStrategy:
                                type: string
                                const: accounted-then-ledger-distribution
                            required:
                              - basis
                              - creatorShareRate
                              - id
                              - protocolShareRate
                              - revenueRate
                              - settlementStrategy
                            additionalProperties: false
                          - type: object
                            properties:
                              basis:
                                type: string
                                const: coin-attributable-featured-app-reward-cc
                              creatorShareRate:
                                type: string
                                const: '0.50'
                              id:
                                type: string
                                const: featured-app-cc-reward
                              protocolShareRate:
                                type: string
                                const: '0.50'
                              revenueRate:
                                type: string
                                const: '1.00'
                              settlementStrategy:
                                type: string
                                const: weighted-featured-app-marker-direct
                            required:
                              - basis
                              - creatorShareRate
                              - id
                              - protocolShareRate
                              - revenueRate
                              - settlementStrategy
                            additionalProperties: false
                      version:
                        type: string
                        const: '1'
                    required:
                      - attribution
                      - eligibility
                      - formulaId
                      - hash
                      - id
                      - immutable
                      - numericScale
                      - numericDomain
                      - rounding
                      - settlement
                      - sources
                      - version
                    additionalProperties: false
                  economics:
                    type: object
                    properties:
                      creationFeeCc:
                        type: string
                        const: '25'
                      curveAllocation:
                        type: string
                        const: '800000000'
                      curve:
                        type: object
                        properties:
                          finalFillPolicy:
                            type: string
                            const: reject-overfill-and-unexecutable-remainder
                          formulaId:
                            type: string
                            const: supanova-virtual-cpmm-v1
                          initialVirtualCcReserve:
                            type: string
                            const: '83333.3333333333'
                          initialVirtualTokenReserve:
                            type: string
                            const: '1066666666.6666666667'
                          minimumGrossBuyCc:
                            type: string
                            const: '0.01'
                          minimumGrossSellCc:
                            type: string
                            const: '0.0099'
                          minimumNetBuyCc:
                            type: string
                            const: '0.0099'
                          nonTerminalMaxGraduationPercent:
                            type: string
                            const: '99.9999999999'
                          numericScale:
                            type: number
                            const: 10
                          openingMarginalPriceCcPerToken:
                            type: string
                            const: '0.000078125'
                          roundingPolicy:
                            type: string
                            const: ledger-decimal10-half-even-each-operation
                          sellResidualPolicy:
                            type: string
                            const: reject-nonzero-reserve-below-minimum-gross-sell
                          terminalMarginalPriceCcPerToken:
                            type: string
                            const: '0.00125'
                        required:
                          - finalFillPolicy
                          - formulaId
                          - initialVirtualCcReserve
                          - initialVirtualTokenReserve
                          - minimumGrossBuyCc
                          - minimumGrossSellCc
                          - minimumNetBuyCc
                          - nonTerminalMaxGraduationPercent
                          - numericScale
                          - openingMarginalPriceCcPerToken
                          - roundingPolicy
                          - sellResidualPolicy
                          - terminalMarginalPriceCcPerToken
                        additionalProperties: false
                      dexReserve:
                        type: string
                        const: '200000000'
                      fixedSupply:
                        type: boolean
                        const: true
                      graduation:
                        type: object
                        properties:
                          acceptedReserveDepthDropBps:
                            type: string
                            const: '2500'
                          feeTreatment:
                            type: string
                            const: outside-active-reserve
                          firstOrderPriceImpactMultiplier:
                            type: string
                            const: '1.3333333333'
                          initialDexCcReserve:
                            type: string
                            const: '250000'
                          initialDexTokenReserve:
                            type: string
                            const: '200000000'
                          postGraduationReserveScale:
                            type: string
                            const: '0.75'
                          priceContinuity:
                            type: string
                            const: ratio-matched
                          reserveDepthContinuity:
                            type: boolean
                            const: false
                          terminalVirtualCcReserve:
                            type: string
                            const: '333333.3333333333'
                          terminalVirtualTokenReserve:
                            type: string
                            const: '266666666.6666666667'
                          trigger:
                            type: string
                            const: >-
                              curve-inventory-exhausted-and-net-cc-reserve-reached
                          virtualReservesMigrated:
                            type: boolean
                            const: false
                        required:
                          - acceptedReserveDepthDropBps
                          - feeTreatment
                          - firstOrderPriceImpactMultiplier
                          - initialDexCcReserve
                          - initialDexTokenReserve
                          - postGraduationReserveScale
                          - priceContinuity
                          - reserveDepthContinuity
                          - terminalVirtualCcReserve
                          - terminalVirtualTokenReserve
                          - trigger
                          - virtualReservesMigrated
                        additionalProperties: false
                      graduationThresholdCc:
                        type: string
                        const: '250000'
                      openingPriceCcPerToken:
                        type: string
                        const: '0.000078125'
                      postGraduationAmm:
                        type: object
                        properties:
                          authorizationMaxTtlSeconds:
                            type: number
                            const: 900
                          fee:
                            type: object
                            properties:
                              asset:
                                type: string
                                const: cc
                              buySide:
                                type: string
                                const: deduct-from-gross-before-cc-enters-pool
                              policy:
                                type: string
                                const: outside-active-reserves
                              rate:
                                type: string
                                const: '0.01'
                              routing:
                                type: string
                                const: creator-revenue-policy-outside-pool
                              sellSide:
                                type: string
                                const: deduct-from-gross-cc-after-cc-leaves-pool
                            required:
                              - asset
                              - buySide
                              - policy
                              - rate
                              - routing
                              - sellSide
                            additionalProperties: false
                          formulaId:
                            type: string
                            const: supanova-real-cpmm-v1
                          goldenManifestDigest:
                            type: string
                            const: >-
                              sha256:7fc5b0d592eaf85cb083775101efe73a099b404e6334cd85ac1683ac753626d0
                          initialRealCcReserve:
                            type: string
                            const: '250000'
                          initialRealTokenReserve:
                            type: string
                            const: '200000000'
                          invariant:
                            type: object
                            properties:
                              anchor:
                                type: string
                                const: '50000000000000'
                              anchorRelation:
                                type: string
                                const: >-
                                  initial=exact-seed;buy=tokenReserve==round10(k/ccReserve);sell=ccReserve==round10(k/tokenReserve)
                              driftPolicy:
                                type: string
                                const: reject-any-noncanonical-anchor-relation
                              transition:
                                type: string
                                const: oppositeReserve=round10(k/nextInputReserve)
                            required:
                              - anchor
                              - anchorRelation
                              - driftPolicy
                              - transition
                            additionalProperties: false
                          lifecycle:
                            type: string
                            const: >-
                              atomic-graduation-seed-then-revisioned-real-reserve
                          minimumGrossBuyCc:
                            type: string
                            const: '0.01'
                          minimumGrossSellCc:
                            type: string
                            const: '0.0099'
                          minimumGrossSellDerivation:
                            type: string
                            const: gross-cc-from-reserve-before-fee
                          numericScale:
                            type: number
                            const: 10
                          rounding:
                            type: object
                            properties:
                              buyGrouping:
                                type: string
                                const: >-
                                  fee=round10(gross*rate);net=round10(gross-fee);x1=round10(x+net);y1=round10(k/x1);out=round10(y-y1)
                              mode:
                                type: string
                                const: ledger-decimal10-half-even-per-operation
                              sellGrouping:
                                type: string
                                const: >-
                                  y1=round10(y+tokenIn);x1=round10(k/y1);gross=round10(x-x1);fee=round10(gross*rate);net=round10(gross-fee)
                            required:
                              - buyGrouping
                              - mode
                              - sellGrouping
                            additionalProperties: false
                          rootUniquenessAssumption:
                            type: string
                            const: >-
                              participant-inventory-and-submission-policy-required
                          settlementReadiness:
                            type: string
                            const: external-settlement-adapter-unproven
                        required:
                          - authorizationMaxTtlSeconds
                          - fee
                          - formulaId
                          - goldenManifestDigest
                          - initialRealCcReserve
                          - initialRealTokenReserve
                          - invariant
                          - lifecycle
                          - minimumGrossBuyCc
                          - minimumGrossSellCc
                          - minimumGrossSellDerivation
                          - numericScale
                          - rounding
                          - rootUniquenessAssumption
                          - settlementReadiness
                        additionalProperties: false
                      totalSupply:
                        type: string
                        const: '1000000000'
                      tradingFeeRate:
                        type: string
                        const: '0.01'
                    required:
                      - creationFeeCc
                      - curveAllocation
                      - curve
                      - dexReserve
                      - fixedSupply
                      - graduation
                      - graduationThresholdCc
                      - openingPriceCcPerToken
                      - postGraduationAmm
                      - totalSupply
                      - tradingFeeRate
                    additionalProperties: false
                    description: >-
                      LEGACY: the fixed 1,000,000,000-supply preview of the
                      first launch policy. Live launches choose their supply and
                      take the Registrar economics; read liveTerms.
                  execution:
                    type: string
                    const: not-enabled
                  liveExecution:
                    type: boolean
                    const: false
                  milestones:
                    description: >-
                      LEGACY: the fixed 1,000,000,000-supply preview of the
                      first launch policy. Live launches choose their supply and
                      take the Registrar economics; read liveTerms. The curve
                      formula is the same at any supply; milestones for another
                      supply scale with it.
                    type: array
                    minItems: 5
                    maxItems: 5
                    prefixItems:
                      - type: object
                        properties:
                          formulaId:
                            type: string
                            const: supanova-virtual-cpmm-v1
                          graduated:
                            type: boolean
                            const: false
                          graduationPercent:
                            type: string
                            const: '0'
                          marginalPriceCcPerToken:
                            type: string
                            const: '0.000078125'
                          netCcReserve:
                            type: string
                            const: '0'
                          tokensRemaining:
                            type: string
                            const: '800000000'
                          tokensSold:
                            type: string
                            const: '0'
                        required:
                          - formulaId
                          - graduated
                          - graduationPercent
                          - marginalPriceCcPerToken
                          - netCcReserve
                          - tokensRemaining
                          - tokensSold
                        additionalProperties: false
                      - type: object
                        properties:
                          formulaId:
                            type: string
                            const: supanova-virtual-cpmm-v1
                          graduated:
                            type: boolean
                            const: false
                          graduationPercent:
                            type: string
                            const: '25'
                          marginalPriceCcPerToken:
                            type: string
                            const: '0.0002392578'
                          netCcReserve:
                            type: string
                            const: '62500'
                          tokensRemaining:
                            type: string
                            const: '342857142.8571428571'
                          tokensSold:
                            type: string
                            const: '457142857.1428571429'
                        required:
                          - formulaId
                          - graduated
                          - graduationPercent
                          - marginalPriceCcPerToken
                          - netCcReserve
                          - tokensRemaining
                          - tokensSold
                        additionalProperties: false
                      - type: object
                        properties:
                          formulaId:
                            type: string
                            const: supanova-virtual-cpmm-v1
                          graduated:
                            type: boolean
                            const: false
                          graduationPercent:
                            type: string
                            const: '50'
                          marginalPriceCcPerToken:
                            type: string
                            const: '0.0004882812'
                          netCcReserve:
                            type: string
                            const: '125000'
                          tokensRemaining:
                            type: string
                            const: '160000000'
                          tokensSold:
                            type: string
                            const: '640000000'
                        required:
                          - formulaId
                          - graduated
                          - graduationPercent
                          - marginalPriceCcPerToken
                          - netCcReserve
                          - tokensRemaining
                          - tokensSold
                        additionalProperties: false
                      - type: object
                        properties:
                          formulaId:
                            type: string
                            const: supanova-virtual-cpmm-v1
                          graduated:
                            type: boolean
                            const: false
                          graduationPercent:
                            type: string
                            const: '75'
                          marginalPriceCcPerToken:
                            type: string
                            const: '0.0008251953'
                          netCcReserve:
                            type: string
                            const: '187500'
                          tokensRemaining:
                            type: string
                            const: '61538461.5384615385'
                          tokensSold:
                            type: string
                            const: '738461538.4615384615'
                        required:
                          - formulaId
                          - graduated
                          - graduationPercent
                          - marginalPriceCcPerToken
                          - netCcReserve
                          - tokensRemaining
                          - tokensSold
                        additionalProperties: false
                      - type: object
                        properties:
                          formulaId:
                            type: string
                            const: supanova-virtual-cpmm-v1
                          graduated:
                            type: boolean
                            const: true
                          graduationPercent:
                            type: string
                            const: '100'
                          marginalPriceCcPerToken:
                            type: string
                            const: '0.00125'
                          netCcReserve:
                            type: string
                            const: '250000'
                          tokensRemaining:
                            type: string
                            const: '0'
                          tokensSold:
                            type: string
                            const: '800000000'
                        required:
                          - formulaId
                          - graduated
                          - graduationPercent
                          - marginalPriceCcPerToken
                          - netCcReserve
                          - tokensRemaining
                          - tokensSold
                        additionalProperties: false
                  policy:
                    type: object
                    properties:
                      document:
                        type: object
                        properties:
                          documentSetDigest:
                            type: string
                            const: >-
                              sha256:334747f374e7ba4ae02b71918bd94f5d4400b19b20997244ccdf7550719296ff
                          documents:
                            type: array
                            minItems: 3
                            maxItems: 3
                            prefixItems:
                              - type: object
                                properties:
                                  digest:
                                    type: string
                                    const: >-
                                      sha256:ae3001c9110291ba6d97fe27343218a23ec93427ac7f7654e45e77b3fe08523d
                                  slug:
                                    type: string
                                    const: terms
                                required:
                                  - digest
                                  - slug
                                additionalProperties: false
                              - type: object
                                properties:
                                  digest:
                                    type: string
                                    const: >-
                                      sha256:44b4ddbc306824bc9c44f1f2c57892169b3fa737df453897c66f36c8127123f5
                                  slug:
                                    type: string
                                    const: launch-terms
                                required:
                                  - digest
                                  - slug
                                additionalProperties: false
                              - type: object
                                properties:
                                  digest:
                                    type: string
                                    const: >-
                                      sha256:3d54b4c54d38211c9cb5b5789e97607bd7c49157f7cff5928d2e348c66d04c84
                                  slug:
                                    type: string
                                    const: risk
                                required:
                                  - digest
                                  - slug
                                additionalProperties: false
                          effectiveAt:
                            type: string
                            const: '2026-08-04T00:00:00.000Z'
                          updatedAt:
                            type: string
                            const: '2026-08-12T00:00:00.000Z'
                          version:
                            type: string
                            const: '1.2'
                        required:
                          - documentSetDigest
                          - documents
                          - effectiveAt
                          - updatedAt
                          - version
                        additionalProperties: false
                      hash:
                        type: string
                        const: >-
                          sha256:c843cc6204a25e687e40fff5f8033416031fb28d191f40b00e530855d70dd0ce
                      id:
                        type: string
                        const: supanova-permissionless-curve-launch
                      immutable:
                        type: boolean
                        const: true
                      version:
                        type: string
                        const: '3'
                    required:
                      - document
                      - hash
                      - id
                      - immutable
                      - version
                    additionalProperties: false
                  readiness:
                    type: string
                    const: preview-math-only
                  rewardRoutingPolicy:
                    type: object
                    properties:
                      authority:
                        type: object
                        properties:
                          prepareRevalidation:
                            type: string
                            const: exact-active-verified-wallet-context
                          quoteBinding:
                            type: string
                            const: verified-wallet-connection-party-and-network
                          quoteReuse:
                            type: string
                            const: single-operation-idempotency-key
                        required:
                          - prepareRevalidation
                          - quoteBinding
                          - quoteReuse
                        additionalProperties: false
                      beneficiary:
                        type: object
                        properties:
                          identity:
                            type: string
                            const: opaque-case-sensitive-canton-party-id
                          routes:
                            type: object
                            properties:
                              creator:
                                type: object
                                properties:
                                  external:
                                    type: string
                                    const: must-differ-from-launcher-party
                                  launcher:
                                    type: string
                                    const: must-equal-launcher-party
                                  partyId:
                                    type: string
                                    const: required
                                required:
                                  - external
                                  - launcher
                                  - partyId
                                additionalProperties: false
                              trader_cashback:
                                type: object
                                properties:
                                  partyId:
                                    type: string
                                    const: forbidden
                                  partySource:
                                    type: string
                                    const: forbidden
                                required:
                                  - partyId
                                  - partySource
                                additionalProperties: false
                            required:
                              - creator
                              - trader_cashback
                            additionalProperties: false
                        required:
                          - identity
                          - routes
                        additionalProperties: false
                      hash:
                        type: string
                        const: >-
                          sha256:fe83c99bff082060a46d8a30ea9de61fc1f165ccd2c28c595b85f393accd86dd
                      id:
                        type: string
                        const: supanova-token-launch-reward-routing
                      immutable:
                        type: boolean
                        const: true
                      privacy:
                        type: object
                        properties:
                          partyIdentifiers:
                            type: string
                            const: backend-and-entitled-ledger-projection-only
                        required:
                          - partyIdentifiers
                        additionalProperties: false
                      settlement:
                        type: object
                        properties:
                          execution:
                            type: string
                            const: not-enabled
                          readiness:
                            type: string
                            const: daml-command-builder-not-configured
                        required:
                          - execution
                          - readiness
                        additionalProperties: false
                      version:
                        type: string
                        const: '1'
                    required:
                      - authority
                      - beneficiary
                      - hash
                      - id
                      - immutable
                      - privacy
                      - settlement
                      - version
                    additionalProperties: false
                  liveTerms:
                    anyOf:
                      - type: object
                        properties:
                          allowedSupplies:
                            maxItems: 64
                            type: array
                            items:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            description: >-
                              Total supplies a launch may choose (those that fit
                              the economics), ascending.
                          asOf:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                          creationFeeCc:
                            anyOf:
                              - type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              - type: 'null'
                            description: >-
                              The CC fee the Registrar charges per launch; null
                              when it charges none.
                          economics:
                            type: object
                            properties:
                              curveAllocationBps:
                                type: integer
                                minimum: 5001
                                maximum: 9999
                              graduationNetCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              maxFeeBps:
                                type: integer
                                minimum: 0
                                maximum: 5000
                              minFeeClaimCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            required:
                              - curveAllocationBps
                              - graduationNetCc
                              - maxFeeBps
                              - minFeeClaimCc
                            additionalProperties: false
                            description: >-
                              Registrar economics: graduationNetCc is the
                              graduation threshold of every new pool.
                          feeConfig:
                            type: object
                            properties:
                              feeBps:
                                type: integer
                                minimum: 0
                                maximum: 5000
                              platformShareBps:
                                type: integer
                                minimum: 0
                                maximum: 10000
                              referralShareBps:
                                type: integer
                                minimum: 0
                                maximum: 10000
                                description: >-
                                  The referrer's share of the fee, carved out of
                                  the platform share; 0 when off.
                            required:
                              - feeBps
                              - platformShareBps
                              - referralShareBps
                            additionalProperties: false
                          source:
                            type: string
                            const: registrar
                          supplyOptionsPath:
                            type: string
                            const: /api/v1/token-launches/supply-options
                            description: >-
                              Per-supply opening and terminal display prices for
                              each allowed supply.
                        required:
                          - allowedSupplies
                          - asOf
                          - creationFeeCc
                          - economics
                          - feeConfig
                          - source
                          - supplyOptionsPath
                        additionalProperties: false
                      - type: 'null'
                    description: >-
                      The live launch terms read from the curve Registrar on the
                      ledger. Null off the curve ledger model or while the
                      Registrar cannot be read.
                required:
                  - creatorRevenuePolicy
                  - economics
                  - execution
                  - liveExecution
                  - milestones
                  - policy
                  - readiness
                  - rewardRoutingPolicy
                  - liveTerms
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '429':
          $ref: '#/components/responses/RateLimited'
        default:
          $ref: '#/components/responses/ApiError'
      security: []
      summary: >-
        Read the launch policy: the live Registrar terms (supplies, economics,
        fees, referral share) and the legacy fixed-supply preview.
      tags:
        - token-launches
  /api/v1/token-launches/quote:
    post:
      operationId: TokenLaunchController_quote_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                creatorRevenuePolicyAcceptance:
                  type: object
                  properties:
                    accepted:
                      type: boolean
                      const: true
                    policyHash:
                      type: string
                      const: >-
                        sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                    policyId:
                      type: string
                      const: supanova-creator-revenue-policy
                    policyVersion:
                      type: string
                      const: '1'
                  required:
                    - accepted
                    - policyHash
                    - policyId
                    - policyVersion
                  additionalProperties: false
                legalAcceptance:
                  type: object
                  properties:
                    accepted:
                      type: boolean
                      const: true
                    documents:
                      type: array
                      minItems: 3
                      maxItems: 3
                      prefixItems:
                        - type: string
                          const: terms
                        - type: string
                          const: launch-terms
                        - type: string
                          const: risk
                    documentSetDigest:
                      type: string
                      const: >-
                        sha256:334747f374e7ba4ae02b71918bd94f5d4400b19b20997244ccdf7550719296ff
                    documentVersion:
                      type: string
                      const: '1.2'
                    effectiveAt:
                      type: string
                      const: '2026-08-04T00:00:00.000Z'
                    policyId:
                      type: string
                      const: supanova-permissionless-curve-launch
                    policyVersion:
                      type: string
                      const: '3'
                    updatedAt:
                      type: string
                      const: '2026-08-12T00:00:00.000Z'
                  required:
                    - accepted
                    - documents
                    - documentSetDigest
                    - documentVersion
                    - effectiveAt
                    - policyId
                    - policyVersion
                    - updatedAt
                  additionalProperties: false
                metadata:
                  type: object
                  properties:
                    bannerMediaId:
                      type: string
                      format: uuid
                      pattern: >-
                        ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    category:
                      type: string
                      enum:
                        - defi
                        - payments
                        - infrastructure
                        - real_world_assets
                        - capital_markets
                        - stablecoins
                        - identity_compliance
                        - data_oracles
                        - consumer
                        - culture
                        - other
                    description:
                      type: string
                      minLength: 30
                      maxLength: 1200
                    docs:
                      type: string
                      maxLength: 2048
                      format: uri
                      description: >-
                        Public navigation-only HTTPS URL with a DNS hostname;
                        credentials, IP literals, localhost and private/local
                        DNS suffixes are forbidden. This is not permission for
                        server-side fetching.
                      pattern: ^https://
                    iconMediaId:
                      type: string
                      format: uuid
                      pattern: >-
                        ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                      minLength: 2
                      maxLength: 32
                    socialReferences:
                      type: object
                      properties:
                        discord:
                          type: string
                          maxLength: 2048
                          format: uri
                          description: >-
                            Non-root HTTPS discord profile/channel URL. Approved
                            hosts: discord.gg, discord.com, discordapp.com.
                          pattern: ^https://
                        instagram:
                          type: string
                          maxLength: 2048
                          format: uri
                          description: >-
                            Non-root HTTPS instagram profile/channel URL.
                            Approved hosts: instagram.com.
                          pattern: ^https://
                        telegram:
                          type: string
                          maxLength: 2048
                          format: uri
                          description: >-
                            Non-root HTTPS telegram profile/channel URL.
                            Approved hosts: t.me, telegram.me.
                          pattern: ^https://
                        tiktok:
                          type: string
                          maxLength: 2048
                          format: uri
                          description: >-
                            Non-root HTTPS tiktok profile/channel URL. Approved
                            hosts: tiktok.com.
                          pattern: ^https://
                        x:
                          type: string
                          maxLength: 2048
                          format: uri
                          description: >-
                            Non-root HTTPS x profile/channel URL. Approved
                            hosts: x.com, twitter.com.
                          pattern: ^https://
                        youtube:
                          type: string
                          maxLength: 2048
                          format: uri
                          description: >-
                            Non-root HTTPS youtube profile/channel URL. Approved
                            hosts: youtube.com, youtu.be.
                          pattern: ^https://
                      additionalProperties: false
                    summary:
                      type: string
                      minLength: 10
                      maxLength: 120
                    ticker:
                      type: string
                      minLength: 2
                      maxLength: 15
                      pattern: ^[A-Z0-9]{2,15}$
                    website:
                      type: string
                      maxLength: 2048
                      format: uri
                      description: >-
                        Public navigation-only HTTPS URL with a DNS hostname;
                        credentials, IP literals, localhost and private/local
                        DNS suffixes are forbidden. This is not permission for
                        server-side fetching.
                      pattern: ^https://
                  required:
                    - category
                    - description
                    - iconMediaId
                    - name
                    - summary
                    - ticker
                  additionalProperties: false
                openingBuy:
                  type: object
                  properties:
                    amount:
                      type: string
                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                    unit:
                      type: string
                      enum:
                        - cc
                        - token
                  required:
                    - amount
                    - unit
                  additionalProperties: false
                rewardConfiguration:
                  oneOf:
                    - type: object
                      properties:
                        creatorRewardPartyId:
                          type: string
                          description: >-
                            Exact opaque, case-sensitive Canton Party ID. It is
                            preserved byte-for-byte: launcher source must equal
                            the verified launcher Party; external source must
                            differ.
                          minLength: 3
                          maxLength: 512
                        creatorRewardPartySource:
                          type: string
                          enum:
                            - launcher
                            - external
                          description: >-
                            Authority rule for creatorRewardPartyId: launcher
                            requires exact equality with the verified launch
                            wallet Party; external requires exact inequality.
                        rewardDestination:
                          type: string
                          const: creator
                      required:
                        - creatorRewardPartyId
                        - creatorRewardPartySource
                        - rewardDestination
                      additionalProperties: false
                      description: >-
                        Creator rewards route only to the exact immutable Party
                        named by this branch.
                    - type: object
                      properties:
                        rewardDestination:
                          type: string
                          const: trader_cashback
                      required:
                        - rewardDestination
                      additionalProperties: false
                      description: >-
                        Trader cashback forbids creator Party source and Party
                        ID fields.
                  description: >-
                    Strict reward-routing authority union. Party IDs are opaque
                    and case-sensitive; no trimming, casing, aliasing, or
                    normalization is allowed.
                walletConnectionId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                totalSupply:
                  description: >-
                    Required on the curve ledger model, where it is one of GET
                    /api/v1/token-launches/supply-options; rejected on the
                    registry model.
                  type: string
                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
              required:
                - creatorRevenuePolicyAcceptance
                - legalAcceptance
                - metadata
                - rewardConfiguration
                - walletConnectionId
              additionalProperties: false
      responses:
        '201':
          description: >-
            A short-lived simulated launch quote: the 0.2.0 quote on the
            registry model, the version 2 quote on the curve model.
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    properties:
                      creatorRevenuePolicy:
                        type: object
                        properties:
                          attribution:
                            type: object
                            properties:
                              featuredApp:
                                type: string
                                const: >-
                                  authoritative-cc-event-uniquely-correlated-to-one-accepted-launch-instrument-only
                              reversal:
                                type: string
                                const: >-
                                  append-only-exact-opposite-once-and-only-before-any-distribution-allocation
                              routedTokenToToken:
                                type: string
                                const: >-
                                  one-source-event-per-supaswap-leg-attributed-to-that-leg-token-launch
                              unattributedActivity:
                                type: string
                                const: reject-never-api-prorate
                            required:
                              - featuredApp
                              - reversal
                              - routedTokenToToken
                              - unattributedActivity
                            additionalProperties: false
                          eligibility:
                            type: object
                            properties:
                              activation:
                                type: string
                                const: >-
                                  exact-policy-accepted-launches-only-no-retroactive-attribution
                              beneficiary:
                                type: string
                                const: immutable-token-launch-reward-route-party
                              rewardDestination:
                                type: string
                                const: creator
                              traderCashback:
                                type: string
                                const: ineligible-pending-explicit-product-decision
                            required:
                              - activation
                              - beneficiary
                              - rewardDestination
                              - traderCashback
                            additionalProperties: false
                          formulaId:
                            type: string
                            const: supanova-creator-revenue-v1
                          hash:
                            type: string
                            const: >-
                              sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                          id:
                            type: string
                            const: supanova-creator-revenue-policy
                          immutable:
                            type: boolean
                            const: true
                          numericScale:
                            type: number
                            const: 10
                          numericDomain:
                            type: object
                            properties:
                              dust:
                                type: string
                                const: reject-if-gross-or-creator-rounds-to-zero
                              maximumBasisAmountCc:
                                type: string
                                const: '999999999999999999999999.9999999999'
                            required:
                              - dust
                              - maximumBasisAmountCc
                            additionalProperties: false
                          rounding:
                            type: object
                            properties:
                              grossRevenue:
                                type: string
                                const: round10-half-even(source-basis-cc*source-rate)
                              split:
                                type: string
                                const: >-
                                  creator=round10-half-even(gross-revenue-cc*creator-share-rate);protocol=gross-revenue-cc-creator-revenue-cc
                            required:
                              - grossRevenue
                              - split
                            additionalProperties: false
                          settlement:
                            type: object
                            properties:
                              execution:
                                type: string
                                const: not-enabled
                              featuredAppExternalPartyRequirement:
                                type: string
                                const: >-
                                  beneficiary-mint-delegation-or-manual-mint-each-round-required
                              legalApproval:
                                type: string
                                const: required-before-live
                              readiness:
                                type: string
                                const: >-
                                  canton-attribution-and-distribution-writers-not-configured
                            required:
                              - execution
                              - featuredAppExternalPartyRequirement
                              - legalApproval
                              - readiness
                            additionalProperties: false
                          sources:
                            type: array
                            minItems: 3
                            maxItems: 3
                            prefixItems:
                              - type: object
                                properties:
                                  basis:
                                    type: string
                                    const: gross-curve-trade-notional-cc
                                  creatorShareRate:
                                    type: string
                                    const: '0.80'
                                  id:
                                    type: string
                                    const: virtual-curve-trading-fee
                                  protocolShareRate:
                                    type: string
                                    const: '0.20'
                                  revenueRate:
                                    type: string
                                    const: '0.01'
                                  settlementStrategy:
                                    type: string
                                    const: accounted-then-ledger-distribution
                                required:
                                  - basis
                                  - creatorShareRate
                                  - id
                                  - protocolShareRate
                                  - revenueRate
                                  - settlementStrategy
                                additionalProperties: false
                              - type: object
                                properties:
                                  basis:
                                    type: string
                                    const: gross-supaswap-trade-notional-cc
                                  creatorShareRate:
                                    type: string
                                    const: '0.80'
                                  id:
                                    type: string
                                    const: supaswap-amm-trading-fee
                                  protocolShareRate:
                                    type: string
                                    const: '0.20'
                                  revenueRate:
                                    type: string
                                    const: '0.01'
                                  settlementStrategy:
                                    type: string
                                    const: accounted-then-ledger-distribution
                                required:
                                  - basis
                                  - creatorShareRate
                                  - id
                                  - protocolShareRate
                                  - revenueRate
                                  - settlementStrategy
                                additionalProperties: false
                              - type: object
                                properties:
                                  basis:
                                    type: string
                                    const: coin-attributable-featured-app-reward-cc
                                  creatorShareRate:
                                    type: string
                                    const: '0.50'
                                  id:
                                    type: string
                                    const: featured-app-cc-reward
                                  protocolShareRate:
                                    type: string
                                    const: '0.50'
                                  revenueRate:
                                    type: string
                                    const: '1.00'
                                  settlementStrategy:
                                    type: string
                                    const: weighted-featured-app-marker-direct
                                required:
                                  - basis
                                  - creatorShareRate
                                  - id
                                  - protocolShareRate
                                  - revenueRate
                                  - settlementStrategy
                                additionalProperties: false
                          version:
                            type: string
                            const: '1'
                        required:
                          - attribution
                          - eligibility
                          - formulaId
                          - hash
                          - id
                          - immutable
                          - numericScale
                          - numericDomain
                          - rounding
                          - settlement
                          - sources
                          - version
                        additionalProperties: false
                      creatorRevenuePolicyAcceptance:
                        type: object
                        properties:
                          accepted:
                            type: boolean
                            const: true
                          policyHash:
                            type: string
                            const: >-
                              sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                          policyId:
                            type: string
                            const: supanova-creator-revenue-policy
                          policyVersion:
                            type: string
                            const: '1'
                        required:
                          - accepted
                          - policyHash
                          - policyId
                          - policyVersion
                        additionalProperties: false
                      damlRewardRouting:
                        type: object
                        properties:
                          creatorRewardBeneficiary:
                            anyOf:
                              - type: string
                                description: >-
                                  Opaque, case-sensitive Canton Party ID
                                  containing 3-512 Unicode scalar values with no
                                  normalization, edge whitespace, or C0/C1
                                  control characters.
                                minLength: 3
                                maxLength: 512
                              - type: 'null'
                          rewardDestination:
                            type: string
                            enum:
                              - CreatorRewardDestination
                              - TraderCashbackDestination
                          rewardRoutingPolicyDigest:
                            type: string
                            const: >-
                              sha256:fe83c99bff082060a46d8a30ea9de61fc1f165ccd2c28c595b85f393accd86dd
                          rewardRoutingPolicyVersion:
                            type: string
                            const: '1'
                        required:
                          - creatorRewardBeneficiary
                          - rewardDestination
                          - rewardRoutingPolicyDigest
                          - rewardRoutingPolicyVersion
                        additionalProperties: false
                      economics:
                        type: object
                        properties:
                          creationFeeCc:
                            type: string
                            const: '25'
                          curveAllocation:
                            type: string
                            const: '800000000'
                          curve:
                            type: object
                            properties:
                              finalFillPolicy:
                                type: string
                                const: reject-overfill-and-unexecutable-remainder
                              formulaId:
                                type: string
                                const: supanova-virtual-cpmm-v1
                              initialVirtualCcReserve:
                                type: string
                                const: '83333.3333333333'
                              initialVirtualTokenReserve:
                                type: string
                                const: '1066666666.6666666667'
                              minimumGrossBuyCc:
                                type: string
                                const: '0.01'
                              minimumGrossSellCc:
                                type: string
                                const: '0.0099'
                              minimumNetBuyCc:
                                type: string
                                const: '0.0099'
                              nonTerminalMaxGraduationPercent:
                                type: string
                                const: '99.9999999999'
                              numericScale:
                                type: number
                                const: 10
                              openingMarginalPriceCcPerToken:
                                type: string
                                const: '0.000078125'
                              roundingPolicy:
                                type: string
                                const: ledger-decimal10-half-even-each-operation
                              sellResidualPolicy:
                                type: string
                                const: >-
                                  reject-nonzero-reserve-below-minimum-gross-sell
                              terminalMarginalPriceCcPerToken:
                                type: string
                                const: '0.00125'
                            required:
                              - finalFillPolicy
                              - formulaId
                              - initialVirtualCcReserve
                              - initialVirtualTokenReserve
                              - minimumGrossBuyCc
                              - minimumGrossSellCc
                              - minimumNetBuyCc
                              - nonTerminalMaxGraduationPercent
                              - numericScale
                              - openingMarginalPriceCcPerToken
                              - roundingPolicy
                              - sellResidualPolicy
                              - terminalMarginalPriceCcPerToken
                            additionalProperties: false
                          dexReserve:
                            type: string
                            const: '200000000'
                          fixedSupply:
                            type: boolean
                            const: true
                          graduation:
                            type: object
                            properties:
                              acceptedReserveDepthDropBps:
                                type: string
                                const: '2500'
                              feeTreatment:
                                type: string
                                const: outside-active-reserve
                              firstOrderPriceImpactMultiplier:
                                type: string
                                const: '1.3333333333'
                              initialDexCcReserve:
                                type: string
                                const: '250000'
                              initialDexTokenReserve:
                                type: string
                                const: '200000000'
                              postGraduationReserveScale:
                                type: string
                                const: '0.75'
                              priceContinuity:
                                type: string
                                const: ratio-matched
                              reserveDepthContinuity:
                                type: boolean
                                const: false
                              terminalVirtualCcReserve:
                                type: string
                                const: '333333.3333333333'
                              terminalVirtualTokenReserve:
                                type: string
                                const: '266666666.6666666667'
                              trigger:
                                type: string
                                const: >-
                                  curve-inventory-exhausted-and-net-cc-reserve-reached
                              virtualReservesMigrated:
                                type: boolean
                                const: false
                            required:
                              - acceptedReserveDepthDropBps
                              - feeTreatment
                              - firstOrderPriceImpactMultiplier
                              - initialDexCcReserve
                              - initialDexTokenReserve
                              - postGraduationReserveScale
                              - priceContinuity
                              - reserveDepthContinuity
                              - terminalVirtualCcReserve
                              - terminalVirtualTokenReserve
                              - trigger
                              - virtualReservesMigrated
                            additionalProperties: false
                          graduationThresholdCc:
                            type: string
                            const: '250000'
                          openingPriceCcPerToken:
                            type: string
                            const: '0.000078125'
                          postGraduationAmm:
                            type: object
                            properties:
                              authorizationMaxTtlSeconds:
                                type: number
                                const: 900
                              fee:
                                type: object
                                properties:
                                  asset:
                                    type: string
                                    const: cc
                                  buySide:
                                    type: string
                                    const: deduct-from-gross-before-cc-enters-pool
                                  policy:
                                    type: string
                                    const: outside-active-reserves
                                  rate:
                                    type: string
                                    const: '0.01'
                                  routing:
                                    type: string
                                    const: creator-revenue-policy-outside-pool
                                  sellSide:
                                    type: string
                                    const: deduct-from-gross-cc-after-cc-leaves-pool
                                required:
                                  - asset
                                  - buySide
                                  - policy
                                  - rate
                                  - routing
                                  - sellSide
                                additionalProperties: false
                              formulaId:
                                type: string
                                const: supanova-real-cpmm-v1
                              goldenManifestDigest:
                                type: string
                                const: >-
                                  sha256:7fc5b0d592eaf85cb083775101efe73a099b404e6334cd85ac1683ac753626d0
                              initialRealCcReserve:
                                type: string
                                const: '250000'
                              initialRealTokenReserve:
                                type: string
                                const: '200000000'
                              invariant:
                                type: object
                                properties:
                                  anchor:
                                    type: string
                                    const: '50000000000000'
                                  anchorRelation:
                                    type: string
                                    const: >-
                                      initial=exact-seed;buy=tokenReserve==round10(k/ccReserve);sell=ccReserve==round10(k/tokenReserve)
                                  driftPolicy:
                                    type: string
                                    const: reject-any-noncanonical-anchor-relation
                                  transition:
                                    type: string
                                    const: >-
                                      oppositeReserve=round10(k/nextInputReserve)
                                required:
                                  - anchor
                                  - anchorRelation
                                  - driftPolicy
                                  - transition
                                additionalProperties: false
                              lifecycle:
                                type: string
                                const: >-
                                  atomic-graduation-seed-then-revisioned-real-reserve
                              minimumGrossBuyCc:
                                type: string
                                const: '0.01'
                              minimumGrossSellCc:
                                type: string
                                const: '0.0099'
                              minimumGrossSellDerivation:
                                type: string
                                const: gross-cc-from-reserve-before-fee
                              numericScale:
                                type: number
                                const: 10
                              rounding:
                                type: object
                                properties:
                                  buyGrouping:
                                    type: string
                                    const: >-
                                      fee=round10(gross*rate);net=round10(gross-fee);x1=round10(x+net);y1=round10(k/x1);out=round10(y-y1)
                                  mode:
                                    type: string
                                    const: ledger-decimal10-half-even-per-operation
                                  sellGrouping:
                                    type: string
                                    const: >-
                                      y1=round10(y+tokenIn);x1=round10(k/y1);gross=round10(x-x1);fee=round10(gross*rate);net=round10(gross-fee)
                                required:
                                  - buyGrouping
                                  - mode
                                  - sellGrouping
                                additionalProperties: false
                              rootUniquenessAssumption:
                                type: string
                                const: >-
                                  participant-inventory-and-submission-policy-required
                              settlementReadiness:
                                type: string
                                const: external-settlement-adapter-unproven
                            required:
                              - authorizationMaxTtlSeconds
                              - fee
                              - formulaId
                              - goldenManifestDigest
                              - initialRealCcReserve
                              - initialRealTokenReserve
                              - invariant
                              - lifecycle
                              - minimumGrossBuyCc
                              - minimumGrossSellCc
                              - minimumGrossSellDerivation
                              - numericScale
                              - rounding
                              - rootUniquenessAssumption
                              - settlementReadiness
                            additionalProperties: false
                          totalSupply:
                            type: string
                            const: '1000000000'
                          tradingFeeRate:
                            type: string
                            const: '0.01'
                        required:
                          - creationFeeCc
                          - curveAllocation
                          - curve
                          - dexReserve
                          - fixedSupply
                          - graduation
                          - graduationThresholdCc
                          - openingPriceCcPerToken
                          - postGraduationAmm
                          - totalSupply
                          - tradingFeeRate
                        additionalProperties: false
                      execution:
                        type: string
                        const: simulated
                      expiresAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                      fees:
                        type: object
                        properties:
                          creationFeeCc:
                            type: string
                            const: '25'
                          openingTradingFeeCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          totalDebitCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          tradingFeeRate:
                            type: string
                            const: '0.01'
                        required:
                          - creationFeeCc
                          - openingTradingFeeCc
                          - totalDebitCc
                          - tradingFeeRate
                        additionalProperties: false
                      issuedAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                      legalAcceptance:
                        type: object
                        properties:
                          accepted:
                            type: boolean
                            const: true
                          acceptedAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                          documentSetDigest:
                            type: string
                            const: >-
                              sha256:334747f374e7ba4ae02b71918bd94f5d4400b19b20997244ccdf7550719296ff
                          documents:
                            type: array
                            minItems: 3
                            maxItems: 3
                            prefixItems:
                              - type: string
                                const: terms
                              - type: string
                                const: launch-terms
                              - type: string
                                const: risk
                          effectiveAt:
                            type: string
                            const: '2026-08-04T00:00:00.000Z'
                          documentVersion:
                            type: string
                            const: '1.2'
                          policyId:
                            type: string
                            const: supanova-permissionless-curve-launch
                          policyVersion:
                            type: string
                            const: '3'
                          updatedAt:
                            type: string
                            const: '2026-08-12T00:00:00.000Z'
                        required:
                          - accepted
                          - acceptedAt
                          - documentSetDigest
                          - documents
                          - effectiveAt
                          - documentVersion
                          - policyId
                          - policyVersion
                          - updatedAt
                        additionalProperties: false
                      media:
                        type: object
                        properties:
                          banner:
                            anyOf:
                              - type: object
                                properties:
                                  contentType:
                                    type: string
                                    enum:
                                      - image/gif
                                      - image/jpeg
                                      - image/png
                                      - image/webp
                                      - video/mp4
                                  dataMode:
                                    type: string
                                    enum:
                                      - durable
                                      - simulated
                                  height:
                                    anyOf:
                                      - type: integer
                                        minimum: -9007199254740991
                                        maximum: 9007199254740991
                                      - type: 'null'
                                  mediaId:
                                    type: string
                                    format: uuid
                                    pattern: >-
                                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                  publicUrl:
                                    anyOf:
                                      - type: string
                                        format: uri
                                      - type: 'null'
                                  role:
                                    type: string
                                    enum:
                                      - token_banner
                                      - token_icon
                                  sha256:
                                    type: string
                                    pattern: ^[0-9a-f]{64}$
                                  sizeBytes:
                                    type: integer
                                    minimum: -9007199254740991
                                    maximum: 9007199254740991
                                  status:
                                    type: string
                                    enum:
                                      - preview_accepted
                                      - published
                                      - quarantined
                                      - rejected
                                      - taken_down
                                  storage:
                                    type: string
                                    enum:
                                      - discarded-preview
                                      - removed
                                      - supabase-private
                                      - supabase-public
                                      - supabase-quarantine
                                  width:
                                    anyOf:
                                      - type: integer
                                        minimum: -9007199254740991
                                        maximum: 9007199254740991
                                      - type: 'null'
                                required:
                                  - contentType
                                  - dataMode
                                  - height
                                  - mediaId
                                  - publicUrl
                                  - role
                                  - sha256
                                  - sizeBytes
                                  - status
                                  - storage
                                  - width
                                additionalProperties: false
                              - type: 'null'
                          icon:
                            type: object
                            properties:
                              contentType:
                                type: string
                                enum:
                                  - image/gif
                                  - image/jpeg
                                  - image/png
                                  - image/webp
                                  - video/mp4
                              dataMode:
                                type: string
                                enum:
                                  - durable
                                  - simulated
                              height:
                                anyOf:
                                  - type: integer
                                    minimum: -9007199254740991
                                    maximum: 9007199254740991
                                  - type: 'null'
                              mediaId:
                                type: string
                                format: uuid
                                pattern: >-
                                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              publicUrl:
                                anyOf:
                                  - type: string
                                    format: uri
                                  - type: 'null'
                              role:
                                type: string
                                enum:
                                  - token_banner
                                  - token_icon
                              sha256:
                                type: string
                                pattern: ^[0-9a-f]{64}$
                              sizeBytes:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              status:
                                type: string
                                enum:
                                  - preview_accepted
                                  - published
                                  - quarantined
                                  - rejected
                                  - taken_down
                              storage:
                                type: string
                                enum:
                                  - discarded-preview
                                  - removed
                                  - supabase-private
                                  - supabase-public
                                  - supabase-quarantine
                              width:
                                anyOf:
                                  - type: integer
                                    minimum: -9007199254740991
                                    maximum: 9007199254740991
                                  - type: 'null'
                            required:
                              - contentType
                              - dataMode
                              - height
                              - mediaId
                              - publicUrl
                              - role
                              - sha256
                              - sizeBytes
                              - status
                              - storage
                              - width
                            additionalProperties: false
                        required:
                          - banner
                          - icon
                        additionalProperties: false
                      metadata:
                        type: object
                        properties:
                          bannerMediaId:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          category:
                            type: string
                            enum:
                              - defi
                              - payments
                              - infrastructure
                              - real_world_assets
                              - capital_markets
                              - stablecoins
                              - identity_compliance
                              - data_oracles
                              - consumer
                              - culture
                              - other
                          description:
                            type: string
                            minLength: 30
                            maxLength: 1200
                          docs:
                            type: string
                            maxLength: 2048
                            format: uri
                            description: >-
                              Public navigation-only HTTPS URL with a DNS
                              hostname; credentials, IP literals, localhost and
                              private/local DNS suffixes are forbidden. This is
                              not permission for server-side fetching.
                            pattern: ^https://
                          iconMediaId:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          name:
                            type: string
                            minLength: 2
                            maxLength: 32
                          socialReferences:
                            type: object
                            properties:
                              discord:
                                type: string
                                maxLength: 2048
                                format: uri
                                description: >-
                                  Non-root HTTPS discord profile/channel URL.
                                  Approved hosts: discord.gg, discord.com,
                                  discordapp.com.
                                pattern: ^https://
                              instagram:
                                type: string
                                maxLength: 2048
                                format: uri
                                description: >-
                                  Non-root HTTPS instagram profile/channel URL.
                                  Approved hosts: instagram.com.
                                pattern: ^https://
                              telegram:
                                type: string
                                maxLength: 2048
                                format: uri
                                description: >-
                                  Non-root HTTPS telegram profile/channel URL.
                                  Approved hosts: t.me, telegram.me.
                                pattern: ^https://
                              tiktok:
                                type: string
                                maxLength: 2048
                                format: uri
                                description: >-
                                  Non-root HTTPS tiktok profile/channel URL.
                                  Approved hosts: tiktok.com.
                                pattern: ^https://
                              x:
                                type: string
                                maxLength: 2048
                                format: uri
                                description: >-
                                  Non-root HTTPS x profile/channel URL. Approved
                                  hosts: x.com, twitter.com.
                                pattern: ^https://
                              youtube:
                                type: string
                                maxLength: 2048
                                format: uri
                                description: >-
                                  Non-root HTTPS youtube profile/channel URL.
                                  Approved hosts: youtube.com, youtu.be.
                                pattern: ^https://
                            additionalProperties: false
                          summary:
                            type: string
                            minLength: 10
                            maxLength: 120
                          ticker:
                            type: string
                            pattern: ^[A-Z0-9]{1,16}$
                          website:
                            type: string
                            maxLength: 2048
                            format: uri
                            description: >-
                              Public navigation-only HTTPS URL with a DNS
                              hostname; credentials, IP literals, localhost and
                              private/local DNS suffixes are forbidden. This is
                              not permission for server-side fetching.
                            pattern: ^https://
                        required:
                          - category
                          - description
                          - iconMediaId
                          - name
                          - summary
                          - ticker
                        additionalProperties: false
                      networkId:
                        type: string
                        pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                      openingBuy:
                        anyOf:
                          - type: object
                            properties:
                              averagePriceCcPerToken:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              creatorRevenueAllocation:
                                oneOf:
                                  - type: object
                                    properties:
                                      basisAmountCc:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      creatorRevenueCc:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      eligibility:
                                        type: string
                                        const: eligible
                                      grossRevenueCc:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      lineage:
                                        type: string
                                        const: bind-on-confirmed-launch-route
                                      policy:
                                        type: object
                                        properties:
                                          hash:
                                            type: string
                                            const: >-
                                              sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                                          id:
                                            type: string
                                            const: supanova-creator-revenue-policy
                                          version:
                                            type: string
                                            const: '1'
                                        required:
                                          - hash
                                          - id
                                          - version
                                        additionalProperties: false
                                      protocolRevenueCc:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      source:
                                        type: string
                                        const: virtual-curve-trading-fee
                                    required:
                                      - basisAmountCc
                                      - creatorRevenueCc
                                      - eligibility
                                      - grossRevenueCc
                                      - lineage
                                      - policy
                                      - protocolRevenueCc
                                      - source
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      eligibility:
                                        type: string
                                        const: ineligible
                                      reason:
                                        type: string
                                        const: trader-cashback
                                    required:
                                      - eligibility
                                      - reason
                                    additionalProperties: false
                              grossCcAmount:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              inputAmount:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              inputUnit:
                                type: string
                                enum:
                                  - cc
                                  - token
                              netCcToCurve:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              priceImpactBps:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              stateAfter:
                                type: object
                                properties:
                                  formulaId:
                                    type: string
                                    const: supanova-virtual-cpmm-v1
                                  graduated:
                                    type: boolean
                                  graduationPercent:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                  marginalPriceCcPerToken:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                  netCcReserve:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                  tokensRemaining:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                  tokensSold:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                required:
                                  - formulaId
                                  - graduated
                                  - graduationPercent
                                  - marginalPriceCcPerToken
                                  - netCcReserve
                                  - tokensRemaining
                                  - tokensSold
                                additionalProperties: false
                              tokenAmount:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              tradingFeeCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            required:
                              - averagePriceCcPerToken
                              - creatorRevenueAllocation
                              - grossCcAmount
                              - inputAmount
                              - inputUnit
                              - netCcToCurve
                              - priceImpactBps
                              - stateAfter
                              - tokenAmount
                              - tradingFeeCc
                            additionalProperties: false
                          - type: 'null'
                      policy:
                        type: object
                        properties:
                          document:
                            type: object
                            properties:
                              documentSetDigest:
                                type: string
                                const: >-
                                  sha256:334747f374e7ba4ae02b71918bd94f5d4400b19b20997244ccdf7550719296ff
                              documents:
                                type: array
                                minItems: 3
                                maxItems: 3
                                prefixItems:
                                  - type: object
                                    properties:
                                      digest:
                                        type: string
                                        const: >-
                                          sha256:ae3001c9110291ba6d97fe27343218a23ec93427ac7f7654e45e77b3fe08523d
                                      slug:
                                        type: string
                                        const: terms
                                    required:
                                      - digest
                                      - slug
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      digest:
                                        type: string
                                        const: >-
                                          sha256:44b4ddbc306824bc9c44f1f2c57892169b3fa737df453897c66f36c8127123f5
                                      slug:
                                        type: string
                                        const: launch-terms
                                    required:
                                      - digest
                                      - slug
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      digest:
                                        type: string
                                        const: >-
                                          sha256:3d54b4c54d38211c9cb5b5789e97607bd7c49157f7cff5928d2e348c66d04c84
                                      slug:
                                        type: string
                                        const: risk
                                    required:
                                      - digest
                                      - slug
                                    additionalProperties: false
                              effectiveAt:
                                type: string
                                const: '2026-08-04T00:00:00.000Z'
                              updatedAt:
                                type: string
                                const: '2026-08-12T00:00:00.000Z'
                              version:
                                type: string
                                const: '1.2'
                            required:
                              - documentSetDigest
                              - documents
                              - effectiveAt
                              - updatedAt
                              - version
                            additionalProperties: false
                          hash:
                            type: string
                            const: >-
                              sha256:c843cc6204a25e687e40fff5f8033416031fb28d191f40b00e530855d70dd0ce
                          id:
                            type: string
                            const: supanova-permissionless-curve-launch
                          immutable:
                            type: boolean
                            const: true
                          version:
                            type: string
                            const: '3'
                        required:
                          - document
                          - hash
                          - id
                          - immutable
                          - version
                        additionalProperties: false
                      proposedInstrument:
                        type: object
                        properties:
                          instrumentId:
                            type: object
                            properties:
                              admin:
                                type: string
                                minLength: 1
                                maxLength: 512
                              id:
                                type: string
                                minLength: 1
                                maxLength: 512
                            required:
                              - admin
                              - id
                            additionalProperties: false
                          standard:
                            type: string
                            const: CIP-0056
                          status:
                            type: string
                            const: proposed
                        required:
                          - instrumentId
                          - standard
                          - status
                        additionalProperties: false
                      proposedSlug:
                        type: string
                        pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
                      quoteHash:
                        type: string
                        pattern: ^sha256:[a-f0-9]{64}$
                      quoteId:
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      requestHash:
                        type: string
                        pattern: ^sha256:[a-f0-9]{64}$
                      rewardConfiguration:
                        oneOf:
                          - type: object
                            properties:
                              creatorRewardPartyId:
                                type: string
                                description: >-
                                  Exact opaque, case-sensitive Canton Party ID.
                                  It is preserved byte-for-byte: launcher source
                                  must equal the verified launcher Party;
                                  external source must differ.
                                minLength: 3
                                maxLength: 512
                              creatorRewardPartySource:
                                type: string
                                enum:
                                  - launcher
                                  - external
                                description: >-
                                  Authority rule for creatorRewardPartyId:
                                  launcher requires exact equality with the
                                  verified launch wallet Party; external
                                  requires exact inequality.
                              rewardDestination:
                                type: string
                                const: creator
                            required:
                              - creatorRewardPartyId
                              - creatorRewardPartySource
                              - rewardDestination
                            additionalProperties: false
                            description: >-
                              Creator rewards route only to the exact immutable
                              Party named by this branch.
                          - type: object
                            properties:
                              rewardDestination:
                                type: string
                                const: trader_cashback
                            required:
                              - rewardDestination
                            additionalProperties: false
                            description: >-
                              Trader cashback forbids creator Party source and
                              Party ID fields.
                        description: >-
                          Strict reward-routing authority union. Party IDs are
                          opaque and case-sensitive; no trimming, casing,
                          aliasing, or normalization is allowed.
                      rewardRoutingPolicy:
                        type: object
                        properties:
                          authority:
                            type: object
                            properties:
                              prepareRevalidation:
                                type: string
                                const: exact-active-verified-wallet-context
                              quoteBinding:
                                type: string
                                const: verified-wallet-connection-party-and-network
                              quoteReuse:
                                type: string
                                const: single-operation-idempotency-key
                            required:
                              - prepareRevalidation
                              - quoteBinding
                              - quoteReuse
                            additionalProperties: false
                          beneficiary:
                            type: object
                            properties:
                              identity:
                                type: string
                                const: opaque-case-sensitive-canton-party-id
                              routes:
                                type: object
                                properties:
                                  creator:
                                    type: object
                                    properties:
                                      external:
                                        type: string
                                        const: must-differ-from-launcher-party
                                      launcher:
                                        type: string
                                        const: must-equal-launcher-party
                                      partyId:
                                        type: string
                                        const: required
                                    required:
                                      - external
                                      - launcher
                                      - partyId
                                    additionalProperties: false
                                  trader_cashback:
                                    type: object
                                    properties:
                                      partyId:
                                        type: string
                                        const: forbidden
                                      partySource:
                                        type: string
                                        const: forbidden
                                    required:
                                      - partyId
                                      - partySource
                                    additionalProperties: false
                                required:
                                  - creator
                                  - trader_cashback
                                additionalProperties: false
                            required:
                              - identity
                              - routes
                            additionalProperties: false
                          hash:
                            type: string
                            const: >-
                              sha256:fe83c99bff082060a46d8a30ea9de61fc1f165ccd2c28c595b85f393accd86dd
                          id:
                            type: string
                            const: supanova-token-launch-reward-routing
                          immutable:
                            type: boolean
                            const: true
                          privacy:
                            type: object
                            properties:
                              partyIdentifiers:
                                type: string
                                const: backend-and-entitled-ledger-projection-only
                            required:
                              - partyIdentifiers
                            additionalProperties: false
                          settlement:
                            type: object
                            properties:
                              execution:
                                type: string
                                const: not-enabled
                              readiness:
                                type: string
                                const: daml-command-builder-not-configured
                            required:
                              - execution
                              - readiness
                            additionalProperties: false
                          version:
                            type: string
                            const: '1'
                        required:
                          - authority
                          - beneficiary
                          - hash
                          - id
                          - immutable
                          - privacy
                          - settlement
                          - version
                        additionalProperties: false
                      walletContext:
                        type: object
                        properties:
                          creatorPartyId:
                            type: string
                            description: >-
                              Opaque, case-sensitive Canton Party ID containing
                              3-512 Unicode scalar values with no normalization,
                              edge whitespace, or C0/C1 control characters.
                            minLength: 3
                            maxLength: 512
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                          walletConnectionId:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        required:
                          - creatorPartyId
                          - networkId
                          - walletConnectionId
                        additionalProperties: false
                    required:
                      - creatorRevenuePolicy
                      - creatorRevenuePolicyAcceptance
                      - damlRewardRouting
                      - economics
                      - execution
                      - expiresAt
                      - fees
                      - issuedAt
                      - legalAcceptance
                      - media
                      - metadata
                      - networkId
                      - openingBuy
                      - policy
                      - proposedInstrument
                      - proposedSlug
                      - quoteHash
                      - quoteId
                      - requestHash
                      - rewardConfiguration
                      - rewardRoutingPolicy
                      - walletContext
                    additionalProperties: false
                  - type: object
                    properties:
                      allocation:
                        type: object
                        properties:
                          curveAllocation:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          dexAllocation:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                        required:
                          - curveAllocation
                          - dexAllocation
                        additionalProperties: false
                      creatorRevenuePolicy:
                        type: object
                        properties:
                          attribution:
                            type: object
                            properties:
                              featuredApp:
                                type: string
                                const: >-
                                  authoritative-cc-event-uniquely-correlated-to-one-accepted-launch-instrument-only
                              reversal:
                                type: string
                                const: >-
                                  append-only-exact-opposite-once-and-only-before-any-distribution-allocation
                              routedTokenToToken:
                                type: string
                                const: >-
                                  one-source-event-per-supaswap-leg-attributed-to-that-leg-token-launch
                              unattributedActivity:
                                type: string
                                const: reject-never-api-prorate
                            required:
                              - featuredApp
                              - reversal
                              - routedTokenToToken
                              - unattributedActivity
                            additionalProperties: false
                          eligibility:
                            type: object
                            properties:
                              activation:
                                type: string
                                const: >-
                                  exact-policy-accepted-launches-only-no-retroactive-attribution
                              beneficiary:
                                type: string
                                const: immutable-token-launch-reward-route-party
                              rewardDestination:
                                type: string
                                const: creator
                              traderCashback:
                                type: string
                                const: ineligible-pending-explicit-product-decision
                            required:
                              - activation
                              - beneficiary
                              - rewardDestination
                              - traderCashback
                            additionalProperties: false
                          formulaId:
                            type: string
                            const: supanova-creator-revenue-v1
                          hash:
                            type: string
                            const: >-
                              sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                          id:
                            type: string
                            const: supanova-creator-revenue-policy
                          immutable:
                            type: boolean
                            const: true
                          numericScale:
                            type: number
                            const: 10
                          numericDomain:
                            type: object
                            properties:
                              dust:
                                type: string
                                const: reject-if-gross-or-creator-rounds-to-zero
                              maximumBasisAmountCc:
                                type: string
                                const: '999999999999999999999999.9999999999'
                            required:
                              - dust
                              - maximumBasisAmountCc
                            additionalProperties: false
                          rounding:
                            type: object
                            properties:
                              grossRevenue:
                                type: string
                                const: round10-half-even(source-basis-cc*source-rate)
                              split:
                                type: string
                                const: >-
                                  creator=round10-half-even(gross-revenue-cc*creator-share-rate);protocol=gross-revenue-cc-creator-revenue-cc
                            required:
                              - grossRevenue
                              - split
                            additionalProperties: false
                          settlement:
                            type: object
                            properties:
                              execution:
                                type: string
                                const: not-enabled
                              featuredAppExternalPartyRequirement:
                                type: string
                                const: >-
                                  beneficiary-mint-delegation-or-manual-mint-each-round-required
                              legalApproval:
                                type: string
                                const: required-before-live
                              readiness:
                                type: string
                                const: >-
                                  canton-attribution-and-distribution-writers-not-configured
                            required:
                              - execution
                              - featuredAppExternalPartyRequirement
                              - legalApproval
                              - readiness
                            additionalProperties: false
                          sources:
                            type: array
                            minItems: 3
                            maxItems: 3
                            prefixItems:
                              - type: object
                                properties:
                                  basis:
                                    type: string
                                    const: gross-curve-trade-notional-cc
                                  creatorShareRate:
                                    type: string
                                    const: '0.80'
                                  id:
                                    type: string
                                    const: virtual-curve-trading-fee
                                  protocolShareRate:
                                    type: string
                                    const: '0.20'
                                  revenueRate:
                                    type: string
                                    const: '0.01'
                                  settlementStrategy:
                                    type: string
                                    const: accounted-then-ledger-distribution
                                required:
                                  - basis
                                  - creatorShareRate
                                  - id
                                  - protocolShareRate
                                  - revenueRate
                                  - settlementStrategy
                                additionalProperties: false
                              - type: object
                                properties:
                                  basis:
                                    type: string
                                    const: gross-supaswap-trade-notional-cc
                                  creatorShareRate:
                                    type: string
                                    const: '0.80'
                                  id:
                                    type: string
                                    const: supaswap-amm-trading-fee
                                  protocolShareRate:
                                    type: string
                                    const: '0.20'
                                  revenueRate:
                                    type: string
                                    const: '0.01'
                                  settlementStrategy:
                                    type: string
                                    const: accounted-then-ledger-distribution
                                required:
                                  - basis
                                  - creatorShareRate
                                  - id
                                  - protocolShareRate
                                  - revenueRate
                                  - settlementStrategy
                                additionalProperties: false
                              - type: object
                                properties:
                                  basis:
                                    type: string
                                    const: coin-attributable-featured-app-reward-cc
                                  creatorShareRate:
                                    type: string
                                    const: '0.50'
                                  id:
                                    type: string
                                    const: featured-app-cc-reward
                                  protocolShareRate:
                                    type: string
                                    const: '0.50'
                                  revenueRate:
                                    type: string
                                    const: '1.00'
                                  settlementStrategy:
                                    type: string
                                    const: weighted-featured-app-marker-direct
                                required:
                                  - basis
                                  - creatorShareRate
                                  - id
                                  - protocolShareRate
                                  - revenueRate
                                  - settlementStrategy
                                additionalProperties: false
                          version:
                            type: string
                            const: '1'
                        required:
                          - attribution
                          - eligibility
                          - formulaId
                          - hash
                          - id
                          - immutable
                          - numericScale
                          - numericDomain
                          - rounding
                          - settlement
                          - sources
                          - version
                        additionalProperties: false
                      creatorRevenuePolicyAcceptance:
                        type: object
                        properties:
                          accepted:
                            type: boolean
                            const: true
                          policyHash:
                            type: string
                            const: >-
                              sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                          policyId:
                            type: string
                            const: supanova-creator-revenue-policy
                          policyVersion:
                            type: string
                            const: '1'
                        required:
                          - accepted
                          - policyHash
                          - policyId
                          - policyVersion
                        additionalProperties: false
                      curvePolicy:
                        type: object
                        properties:
                          hash:
                            type: string
                            const: >-
                              sha256:f0cf06fab397cb2593557dcc8d90701becc653607388286ddbe51a91be73144c
                          id:
                            type: string
                            const: supanova-curve-launch-policy
                          version:
                            type: string
                            const: '1'
                        required:
                          - hash
                          - id
                          - version
                        additionalProperties: false
                      damlRewardRouting:
                        type: object
                        properties:
                          creatorRewardBeneficiary:
                            anyOf:
                              - type: string
                                description: >-
                                  Opaque, case-sensitive Canton Party ID
                                  containing 3-512 Unicode scalar values with no
                                  normalization, edge whitespace, or C0/C1
                                  control characters.
                                minLength: 3
                                maxLength: 512
                              - type: 'null'
                          rewardDestination:
                            type: string
                            enum:
                              - CreatorRewardDestination
                              - TraderCashbackDestination
                          rewardRoutingPolicyDigest:
                            type: string
                            const: >-
                              sha256:fe83c99bff082060a46d8a30ea9de61fc1f165ccd2c28c595b85f393accd86dd
                          rewardRoutingPolicyVersion:
                            type: string
                            const: '1'
                        required:
                          - creatorRewardBeneficiary
                          - rewardDestination
                          - rewardRoutingPolicyDigest
                          - rewardRoutingPolicyVersion
                        additionalProperties: false
                      display:
                        type: object
                        properties:
                          openingPriceCcPerToken:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                          openingPricePerMillionTokensCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                          smallestSellableLotTokens:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                          terminalPriceCcPerToken:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                          terminalPricePerMillionTokensCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                        required:
                          - openingPriceCcPerToken
                          - openingPricePerMillionTokensCc
                          - smallestSellableLotTokens
                          - terminalPriceCcPerToken
                          - terminalPricePerMillionTokensCc
                        additionalProperties: false
                      economics:
                        type: object
                        properties:
                          curveAllocationBps:
                            type: integer
                            minimum: 5001
                            maximum: 9999
                          graduationNetCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          maxFeeBps:
                            type: integer
                            minimum: 0
                            maximum: 5000
                          minFeeClaimCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                        required:
                          - curveAllocationBps
                          - graduationNetCc
                          - maxFeeBps
                          - minFeeClaimCc
                        additionalProperties: false
                      execution:
                        type: string
                        const: simulated
                      expiresAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                      feeConfig:
                        type: object
                        properties:
                          feeBps:
                            type: integer
                            minimum: 0
                            maximum: 5000
                          platformShareBps:
                            type: integer
                            minimum: 0
                            maximum: 10000
                        required:
                          - feeBps
                          - platformShareBps
                        additionalProperties: false
                      fees:
                        type: object
                        properties:
                          creationFeeCc:
                            type: string
                            const: '25'
                          openingTradingFeeCc:
                            type: string
                            const: '0'
                          totalDebitCc:
                            type: string
                            const: '25'
                        required:
                          - creationFeeCc
                          - openingTradingFeeCc
                          - totalDebitCc
                        additionalProperties: false
                      issuedAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                      ledgerCreationFeeCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      legalAcceptance:
                        type: object
                        properties:
                          accepted:
                            type: boolean
                            const: true
                          acceptedAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                          documentSetDigest:
                            type: string
                            const: >-
                              sha256:334747f374e7ba4ae02b71918bd94f5d4400b19b20997244ccdf7550719296ff
                          documents:
                            type: array
                            minItems: 3
                            maxItems: 3
                            prefixItems:
                              - type: string
                                const: terms
                              - type: string
                                const: launch-terms
                              - type: string
                                const: risk
                          effectiveAt:
                            type: string
                            const: '2026-08-04T00:00:00.000Z'
                          documentVersion:
                            type: string
                            const: '1.2'
                          policyId:
                            type: string
                            const: supanova-permissionless-curve-launch
                          policyVersion:
                            type: string
                            const: '3'
                          updatedAt:
                            type: string
                            const: '2026-08-12T00:00:00.000Z'
                        required:
                          - accepted
                          - acceptedAt
                          - documentSetDigest
                          - documents
                          - effectiveAt
                          - documentVersion
                          - policyId
                          - policyVersion
                          - updatedAt
                        additionalProperties: false
                      media:
                        type: object
                        properties:
                          banner:
                            anyOf:
                              - type: object
                                properties:
                                  contentType:
                                    type: string
                                    enum:
                                      - image/gif
                                      - image/jpeg
                                      - image/png
                                      - image/webp
                                      - video/mp4
                                  dataMode:
                                    type: string
                                    enum:
                                      - durable
                                      - simulated
                                  height:
                                    anyOf:
                                      - type: integer
                                        minimum: -9007199254740991
                                        maximum: 9007199254740991
                                      - type: 'null'
                                  mediaId:
                                    type: string
                                    format: uuid
                                    pattern: >-
                                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                  publicUrl:
                                    anyOf:
                                      - type: string
                                        format: uri
                                      - type: 'null'
                                  role:
                                    type: string
                                    enum:
                                      - token_banner
                                      - token_icon
                                  sha256:
                                    type: string
                                    pattern: ^[0-9a-f]{64}$
                                  sizeBytes:
                                    type: integer
                                    minimum: -9007199254740991
                                    maximum: 9007199254740991
                                  status:
                                    type: string
                                    enum:
                                      - preview_accepted
                                      - published
                                      - quarantined
                                      - rejected
                                      - taken_down
                                  storage:
                                    type: string
                                    enum:
                                      - discarded-preview
                                      - removed
                                      - supabase-private
                                      - supabase-public
                                      - supabase-quarantine
                                  width:
                                    anyOf:
                                      - type: integer
                                        minimum: -9007199254740991
                                        maximum: 9007199254740991
                                      - type: 'null'
                                required:
                                  - contentType
                                  - dataMode
                                  - height
                                  - mediaId
                                  - publicUrl
                                  - role
                                  - sha256
                                  - sizeBytes
                                  - status
                                  - storage
                                  - width
                                additionalProperties: false
                              - type: 'null'
                          icon:
                            type: object
                            properties:
                              contentType:
                                type: string
                                enum:
                                  - image/gif
                                  - image/jpeg
                                  - image/png
                                  - image/webp
                                  - video/mp4
                              dataMode:
                                type: string
                                enum:
                                  - durable
                                  - simulated
                              height:
                                anyOf:
                                  - type: integer
                                    minimum: -9007199254740991
                                    maximum: 9007199254740991
                                  - type: 'null'
                              mediaId:
                                type: string
                                format: uuid
                                pattern: >-
                                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              publicUrl:
                                anyOf:
                                  - type: string
                                    format: uri
                                  - type: 'null'
                              role:
                                type: string
                                enum:
                                  - token_banner
                                  - token_icon
                              sha256:
                                type: string
                                pattern: ^[0-9a-f]{64}$
                              sizeBytes:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              status:
                                type: string
                                enum:
                                  - preview_accepted
                                  - published
                                  - quarantined
                                  - rejected
                                  - taken_down
                              storage:
                                type: string
                                enum:
                                  - discarded-preview
                                  - removed
                                  - supabase-private
                                  - supabase-public
                                  - supabase-quarantine
                              width:
                                anyOf:
                                  - type: integer
                                    minimum: -9007199254740991
                                    maximum: 9007199254740991
                                  - type: 'null'
                            required:
                              - contentType
                              - dataMode
                              - height
                              - mediaId
                              - publicUrl
                              - role
                              - sha256
                              - sizeBytes
                              - status
                              - storage
                              - width
                            additionalProperties: false
                        required:
                          - banner
                          - icon
                        additionalProperties: false
                      metadata:
                        type: object
                        properties:
                          bannerMediaId:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          category:
                            type: string
                            enum:
                              - defi
                              - payments
                              - infrastructure
                              - real_world_assets
                              - capital_markets
                              - stablecoins
                              - identity_compliance
                              - data_oracles
                              - consumer
                              - culture
                              - other
                          description:
                            type: string
                            minLength: 30
                            maxLength: 1200
                          docs:
                            type: string
                            maxLength: 2048
                            format: uri
                            description: >-
                              Public navigation-only HTTPS URL with a DNS
                              hostname; credentials, IP literals, localhost and
                              private/local DNS suffixes are forbidden. This is
                              not permission for server-side fetching.
                            pattern: ^https://
                          iconMediaId:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          name:
                            type: string
                            minLength: 2
                            maxLength: 32
                          socialReferences:
                            type: object
                            properties:
                              discord:
                                type: string
                                maxLength: 2048
                                format: uri
                                description: >-
                                  Non-root HTTPS discord profile/channel URL.
                                  Approved hosts: discord.gg, discord.com,
                                  discordapp.com.
                                pattern: ^https://
                              instagram:
                                type: string
                                maxLength: 2048
                                format: uri
                                description: >-
                                  Non-root HTTPS instagram profile/channel URL.
                                  Approved hosts: instagram.com.
                                pattern: ^https://
                              telegram:
                                type: string
                                maxLength: 2048
                                format: uri
                                description: >-
                                  Non-root HTTPS telegram profile/channel URL.
                                  Approved hosts: t.me, telegram.me.
                                pattern: ^https://
                              tiktok:
                                type: string
                                maxLength: 2048
                                format: uri
                                description: >-
                                  Non-root HTTPS tiktok profile/channel URL.
                                  Approved hosts: tiktok.com.
                                pattern: ^https://
                              x:
                                type: string
                                maxLength: 2048
                                format: uri
                                description: >-
                                  Non-root HTTPS x profile/channel URL. Approved
                                  hosts: x.com, twitter.com.
                                pattern: ^https://
                              youtube:
                                type: string
                                maxLength: 2048
                                format: uri
                                description: >-
                                  Non-root HTTPS youtube profile/channel URL.
                                  Approved hosts: youtube.com, youtu.be.
                                pattern: ^https://
                            additionalProperties: false
                          summary:
                            type: string
                            minLength: 10
                            maxLength: 120
                          ticker:
                            type: string
                            pattern: ^[A-Z0-9]{1,16}$
                          website:
                            type: string
                            maxLength: 2048
                            format: uri
                            description: >-
                              Public navigation-only HTTPS URL with a DNS
                              hostname; credentials, IP literals, localhost and
                              private/local DNS suffixes are forbidden. This is
                              not permission for server-side fetching.
                            pattern: ^https://
                        required:
                          - category
                          - description
                          - iconMediaId
                          - name
                          - summary
                          - ticker
                        additionalProperties: false
                      networkId:
                        type: string
                        pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                      openingBuy:
                        type: 'null'
                      policy:
                        type: object
                        properties:
                          document:
                            type: object
                            properties:
                              documentSetDigest:
                                type: string
                                const: >-
                                  sha256:334747f374e7ba4ae02b71918bd94f5d4400b19b20997244ccdf7550719296ff
                              documents:
                                type: array
                                minItems: 3
                                maxItems: 3
                                prefixItems:
                                  - type: object
                                    properties:
                                      digest:
                                        type: string
                                        const: >-
                                          sha256:ae3001c9110291ba6d97fe27343218a23ec93427ac7f7654e45e77b3fe08523d
                                      slug:
                                        type: string
                                        const: terms
                                    required:
                                      - digest
                                      - slug
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      digest:
                                        type: string
                                        const: >-
                                          sha256:44b4ddbc306824bc9c44f1f2c57892169b3fa737df453897c66f36c8127123f5
                                      slug:
                                        type: string
                                        const: launch-terms
                                    required:
                                      - digest
                                      - slug
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      digest:
                                        type: string
                                        const: >-
                                          sha256:3d54b4c54d38211c9cb5b5789e97607bd7c49157f7cff5928d2e348c66d04c84
                                      slug:
                                        type: string
                                        const: risk
                                    required:
                                      - digest
                                      - slug
                                    additionalProperties: false
                              effectiveAt:
                                type: string
                                const: '2026-08-04T00:00:00.000Z'
                              updatedAt:
                                type: string
                                const: '2026-08-12T00:00:00.000Z'
                              version:
                                type: string
                                const: '1.2'
                            required:
                              - documentSetDigest
                              - documents
                              - effectiveAt
                              - updatedAt
                              - version
                            additionalProperties: false
                          hash:
                            type: string
                            const: >-
                              sha256:c843cc6204a25e687e40fff5f8033416031fb28d191f40b00e530855d70dd0ce
                          id:
                            type: string
                            const: supanova-permissionless-curve-launch
                          immutable:
                            type: boolean
                            const: true
                          version:
                            type: string
                            const: '3'
                        required:
                          - document
                          - hash
                          - id
                          - immutable
                          - version
                        additionalProperties: false
                      proposedInstrument:
                        type: object
                        properties:
                          instrumentId:
                            type: object
                            properties:
                              admin:
                                type: string
                                minLength: 1
                                maxLength: 512
                              id:
                                type: string
                                minLength: 1
                                maxLength: 512
                            required:
                              - admin
                              - id
                            additionalProperties: false
                          standard:
                            type: string
                            const: CIP-0056
                          status:
                            type: string
                            const: proposed
                        required:
                          - instrumentId
                          - standard
                          - status
                        additionalProperties: false
                      proposedSlug:
                        type: string
                        pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
                      quoteHash:
                        type: string
                        pattern: ^sha256:[a-f0-9]{64}$
                      quoteId:
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      requestHash:
                        type: string
                        pattern: ^sha256:[a-f0-9]{64}$
                      rewardConfiguration:
                        oneOf:
                          - type: object
                            properties:
                              creatorRewardPartyId:
                                type: string
                                description: >-
                                  Exact opaque, case-sensitive Canton Party ID.
                                  It is preserved byte-for-byte: launcher source
                                  must equal the verified launcher Party;
                                  external source must differ.
                                minLength: 3
                                maxLength: 512
                              creatorRewardPartySource:
                                type: string
                                enum:
                                  - launcher
                                  - external
                                description: >-
                                  Authority rule for creatorRewardPartyId:
                                  launcher requires exact equality with the
                                  verified launch wallet Party; external
                                  requires exact inequality.
                              rewardDestination:
                                type: string
                                const: creator
                            required:
                              - creatorRewardPartyId
                              - creatorRewardPartySource
                              - rewardDestination
                            additionalProperties: false
                            description: >-
                              Creator rewards route only to the exact immutable
                              Party named by this branch.
                          - type: object
                            properties:
                              rewardDestination:
                                type: string
                                const: trader_cashback
                            required:
                              - rewardDestination
                            additionalProperties: false
                            description: >-
                              Trader cashback forbids creator Party source and
                              Party ID fields.
                        description: >-
                          Strict reward-routing authority union. Party IDs are
                          opaque and case-sensitive; no trimming, casing,
                          aliasing, or normalization is allowed.
                      rewardRoutingPolicy:
                        type: object
                        properties:
                          authority:
                            type: object
                            properties:
                              prepareRevalidation:
                                type: string
                                const: exact-active-verified-wallet-context
                              quoteBinding:
                                type: string
                                const: verified-wallet-connection-party-and-network
                              quoteReuse:
                                type: string
                                const: single-operation-idempotency-key
                            required:
                              - prepareRevalidation
                              - quoteBinding
                              - quoteReuse
                            additionalProperties: false
                          beneficiary:
                            type: object
                            properties:
                              identity:
                                type: string
                                const: opaque-case-sensitive-canton-party-id
                              routes:
                                type: object
                                properties:
                                  creator:
                                    type: object
                                    properties:
                                      external:
                                        type: string
                                        const: must-differ-from-launcher-party
                                      launcher:
                                        type: string
                                        const: must-equal-launcher-party
                                      partyId:
                                        type: string
                                        const: required
                                    required:
                                      - external
                                      - launcher
                                      - partyId
                                    additionalProperties: false
                                  trader_cashback:
                                    type: object
                                    properties:
                                      partyId:
                                        type: string
                                        const: forbidden
                                      partySource:
                                        type: string
                                        const: forbidden
                                    required:
                                      - partyId
                                      - partySource
                                    additionalProperties: false
                                required:
                                  - creator
                                  - trader_cashback
                                additionalProperties: false
                            required:
                              - identity
                              - routes
                            additionalProperties: false
                          hash:
                            type: string
                            const: >-
                              sha256:fe83c99bff082060a46d8a30ea9de61fc1f165ccd2c28c595b85f393accd86dd
                          id:
                            type: string
                            const: supanova-token-launch-reward-routing
                          immutable:
                            type: boolean
                            const: true
                          privacy:
                            type: object
                            properties:
                              partyIdentifiers:
                                type: string
                                const: backend-and-entitled-ledger-projection-only
                            required:
                              - partyIdentifiers
                            additionalProperties: false
                          settlement:
                            type: object
                            properties:
                              execution:
                                type: string
                                const: not-enabled
                              readiness:
                                type: string
                                const: daml-command-builder-not-configured
                            required:
                              - execution
                              - readiness
                            additionalProperties: false
                          version:
                            type: string
                            const: '1'
                        required:
                          - authority
                          - beneficiary
                          - hash
                          - id
                          - immutable
                          - privacy
                          - settlement
                          - version
                        additionalProperties: false
                      totalSupply:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      walletContext:
                        type: object
                        properties:
                          creatorPartyId:
                            type: string
                            description: >-
                              Opaque, case-sensitive Canton Party ID containing
                              3-512 Unicode scalar values with no normalization,
                              edge whitespace, or C0/C1 control characters.
                            minLength: 3
                            maxLength: 512
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                          walletConnectionId:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        required:
                          - creatorPartyId
                          - networkId
                          - walletConnectionId
                        additionalProperties: false
                    required:
                      - allocation
                      - creatorRevenuePolicy
                      - creatorRevenuePolicyAcceptance
                      - curvePolicy
                      - damlRewardRouting
                      - display
                      - economics
                      - execution
                      - expiresAt
                      - feeConfig
                      - fees
                      - issuedAt
                      - legalAcceptance
                      - media
                      - metadata
                      - networkId
                      - openingBuy
                      - policy
                      - proposedInstrument
                      - proposedSlug
                      - quoteHash
                      - quoteId
                      - requestHash
                      - rewardConfiguration
                      - rewardRoutingPolicy
                      - totalSupply
                      - walletContext
                    additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: A referenced quote or media item does not exist.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '422':
          description: >-
            The launch cannot be quoted as requested:
            `LAUNCH_MEDIA_NOT_PUBLISHED`, `LAUNCH_MEDIA_ROLE_MISMATCH`,
            `CREATOR_REWARD_PARTY_SOURCE_MISMATCH`,
            `TOKEN_LAUNCH_OPENING_BUY_NOT_SUPPORTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: >-
        Quote the immutable permissionless curve-launch policy. On the curve
        ledger model the request carries the chosen totalSupply and the quote
        carries the Registrar economics and fee configuration.
      tags:
        - token-launches
  /api/v1/token-launches/prepare:
    post:
      operationId: TokenLaunchController_prepare_v1
      parameters:
        - name: Idempotency-Key
          in: header
          required: true
          schema:
            type: string
            minLength: 8
            maxLength: 256
            pattern: ^[A-Za-z0-9._:-]+$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                quoteId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                walletConnectionId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              required:
                - quoteId
                - walletConnectionId
              additionalProperties: false
      responses:
        '201':
          description: >-
            A simulated CIP-0103 wallet review and operation record: the 0.2.0
            shape on the registry model, the version 2 quote and intent on the
            curve model.
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    properties:
                      execution:
                        type: string
                        enum:
                          - ledger
                          - simulated
                      operation:
                        type: object
                        properties:
                          expiresAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                          id:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          status:
                            type: string
                        required:
                          - expiresAt
                          - id
                          - status
                        additionalProperties: false
                      quote:
                        type: object
                        properties:
                          creatorRevenuePolicy:
                            type: object
                            properties:
                              attribution:
                                type: object
                                properties:
                                  featuredApp:
                                    type: string
                                    const: >-
                                      authoritative-cc-event-uniquely-correlated-to-one-accepted-launch-instrument-only
                                  reversal:
                                    type: string
                                    const: >-
                                      append-only-exact-opposite-once-and-only-before-any-distribution-allocation
                                  routedTokenToToken:
                                    type: string
                                    const: >-
                                      one-source-event-per-supaswap-leg-attributed-to-that-leg-token-launch
                                  unattributedActivity:
                                    type: string
                                    const: reject-never-api-prorate
                                required:
                                  - featuredApp
                                  - reversal
                                  - routedTokenToToken
                                  - unattributedActivity
                                additionalProperties: false
                              eligibility:
                                type: object
                                properties:
                                  activation:
                                    type: string
                                    const: >-
                                      exact-policy-accepted-launches-only-no-retroactive-attribution
                                  beneficiary:
                                    type: string
                                    const: immutable-token-launch-reward-route-party
                                  rewardDestination:
                                    type: string
                                    const: creator
                                  traderCashback:
                                    type: string
                                    const: >-
                                      ineligible-pending-explicit-product-decision
                                required:
                                  - activation
                                  - beneficiary
                                  - rewardDestination
                                  - traderCashback
                                additionalProperties: false
                              formulaId:
                                type: string
                                const: supanova-creator-revenue-v1
                              hash:
                                type: string
                                const: >-
                                  sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                              id:
                                type: string
                                const: supanova-creator-revenue-policy
                              immutable:
                                type: boolean
                                const: true
                              numericScale:
                                type: number
                                const: 10
                              numericDomain:
                                type: object
                                properties:
                                  dust:
                                    type: string
                                    const: reject-if-gross-or-creator-rounds-to-zero
                                  maximumBasisAmountCc:
                                    type: string
                                    const: '999999999999999999999999.9999999999'
                                required:
                                  - dust
                                  - maximumBasisAmountCc
                                additionalProperties: false
                              rounding:
                                type: object
                                properties:
                                  grossRevenue:
                                    type: string
                                    const: >-
                                      round10-half-even(source-basis-cc*source-rate)
                                  split:
                                    type: string
                                    const: >-
                                      creator=round10-half-even(gross-revenue-cc*creator-share-rate);protocol=gross-revenue-cc-creator-revenue-cc
                                required:
                                  - grossRevenue
                                  - split
                                additionalProperties: false
                              settlement:
                                type: object
                                properties:
                                  execution:
                                    type: string
                                    const: not-enabled
                                  featuredAppExternalPartyRequirement:
                                    type: string
                                    const: >-
                                      beneficiary-mint-delegation-or-manual-mint-each-round-required
                                  legalApproval:
                                    type: string
                                    const: required-before-live
                                  readiness:
                                    type: string
                                    const: >-
                                      canton-attribution-and-distribution-writers-not-configured
                                required:
                                  - execution
                                  - featuredAppExternalPartyRequirement
                                  - legalApproval
                                  - readiness
                                additionalProperties: false
                              sources:
                                type: array
                                minItems: 3
                                maxItems: 3
                                prefixItems:
                                  - type: object
                                    properties:
                                      basis:
                                        type: string
                                        const: gross-curve-trade-notional-cc
                                      creatorShareRate:
                                        type: string
                                        const: '0.80'
                                      id:
                                        type: string
                                        const: virtual-curve-trading-fee
                                      protocolShareRate:
                                        type: string
                                        const: '0.20'
                                      revenueRate:
                                        type: string
                                        const: '0.01'
                                      settlementStrategy:
                                        type: string
                                        const: accounted-then-ledger-distribution
                                    required:
                                      - basis
                                      - creatorShareRate
                                      - id
                                      - protocolShareRate
                                      - revenueRate
                                      - settlementStrategy
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      basis:
                                        type: string
                                        const: gross-supaswap-trade-notional-cc
                                      creatorShareRate:
                                        type: string
                                        const: '0.80'
                                      id:
                                        type: string
                                        const: supaswap-amm-trading-fee
                                      protocolShareRate:
                                        type: string
                                        const: '0.20'
                                      revenueRate:
                                        type: string
                                        const: '0.01'
                                      settlementStrategy:
                                        type: string
                                        const: accounted-then-ledger-distribution
                                    required:
                                      - basis
                                      - creatorShareRate
                                      - id
                                      - protocolShareRate
                                      - revenueRate
                                      - settlementStrategy
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      basis:
                                        type: string
                                        const: coin-attributable-featured-app-reward-cc
                                      creatorShareRate:
                                        type: string
                                        const: '0.50'
                                      id:
                                        type: string
                                        const: featured-app-cc-reward
                                      protocolShareRate:
                                        type: string
                                        const: '0.50'
                                      revenueRate:
                                        type: string
                                        const: '1.00'
                                      settlementStrategy:
                                        type: string
                                        const: weighted-featured-app-marker-direct
                                    required:
                                      - basis
                                      - creatorShareRate
                                      - id
                                      - protocolShareRate
                                      - revenueRate
                                      - settlementStrategy
                                    additionalProperties: false
                              version:
                                type: string
                                const: '1'
                            required:
                              - attribution
                              - eligibility
                              - formulaId
                              - hash
                              - id
                              - immutable
                              - numericScale
                              - numericDomain
                              - rounding
                              - settlement
                              - sources
                              - version
                            additionalProperties: false
                          creatorRevenuePolicyAcceptance:
                            type: object
                            properties:
                              accepted:
                                type: boolean
                                const: true
                              policyHash:
                                type: string
                                const: >-
                                  sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                              policyId:
                                type: string
                                const: supanova-creator-revenue-policy
                              policyVersion:
                                type: string
                                const: '1'
                            required:
                              - accepted
                              - policyHash
                              - policyId
                              - policyVersion
                            additionalProperties: false
                          damlRewardRouting:
                            type: object
                            properties:
                              creatorRewardBeneficiary:
                                anyOf:
                                  - type: string
                                    description: >-
                                      Opaque, case-sensitive Canton Party ID
                                      containing 3-512 Unicode scalar values
                                      with no normalization, edge whitespace, or
                                      C0/C1 control characters.
                                    minLength: 3
                                    maxLength: 512
                                  - type: 'null'
                              rewardDestination:
                                type: string
                                enum:
                                  - CreatorRewardDestination
                                  - TraderCashbackDestination
                              rewardRoutingPolicyDigest:
                                type: string
                                const: >-
                                  sha256:fe83c99bff082060a46d8a30ea9de61fc1f165ccd2c28c595b85f393accd86dd
                              rewardRoutingPolicyVersion:
                                type: string
                                const: '1'
                            required:
                              - creatorRewardBeneficiary
                              - rewardDestination
                              - rewardRoutingPolicyDigest
                              - rewardRoutingPolicyVersion
                            additionalProperties: false
                          economics:
                            type: object
                            properties:
                              creationFeeCc:
                                type: string
                                const: '25'
                              curveAllocation:
                                type: string
                                const: '800000000'
                              curve:
                                type: object
                                properties:
                                  finalFillPolicy:
                                    type: string
                                    const: reject-overfill-and-unexecutable-remainder
                                  formulaId:
                                    type: string
                                    const: supanova-virtual-cpmm-v1
                                  initialVirtualCcReserve:
                                    type: string
                                    const: '83333.3333333333'
                                  initialVirtualTokenReserve:
                                    type: string
                                    const: '1066666666.6666666667'
                                  minimumGrossBuyCc:
                                    type: string
                                    const: '0.01'
                                  minimumGrossSellCc:
                                    type: string
                                    const: '0.0099'
                                  minimumNetBuyCc:
                                    type: string
                                    const: '0.0099'
                                  nonTerminalMaxGraduationPercent:
                                    type: string
                                    const: '99.9999999999'
                                  numericScale:
                                    type: number
                                    const: 10
                                  openingMarginalPriceCcPerToken:
                                    type: string
                                    const: '0.000078125'
                                  roundingPolicy:
                                    type: string
                                    const: ledger-decimal10-half-even-each-operation
                                  sellResidualPolicy:
                                    type: string
                                    const: >-
                                      reject-nonzero-reserve-below-minimum-gross-sell
                                  terminalMarginalPriceCcPerToken:
                                    type: string
                                    const: '0.00125'
                                required:
                                  - finalFillPolicy
                                  - formulaId
                                  - initialVirtualCcReserve
                                  - initialVirtualTokenReserve
                                  - minimumGrossBuyCc
                                  - minimumGrossSellCc
                                  - minimumNetBuyCc
                                  - nonTerminalMaxGraduationPercent
                                  - numericScale
                                  - openingMarginalPriceCcPerToken
                                  - roundingPolicy
                                  - sellResidualPolicy
                                  - terminalMarginalPriceCcPerToken
                                additionalProperties: false
                              dexReserve:
                                type: string
                                const: '200000000'
                              fixedSupply:
                                type: boolean
                                const: true
                              graduation:
                                type: object
                                properties:
                                  acceptedReserveDepthDropBps:
                                    type: string
                                    const: '2500'
                                  feeTreatment:
                                    type: string
                                    const: outside-active-reserve
                                  firstOrderPriceImpactMultiplier:
                                    type: string
                                    const: '1.3333333333'
                                  initialDexCcReserve:
                                    type: string
                                    const: '250000'
                                  initialDexTokenReserve:
                                    type: string
                                    const: '200000000'
                                  postGraduationReserveScale:
                                    type: string
                                    const: '0.75'
                                  priceContinuity:
                                    type: string
                                    const: ratio-matched
                                  reserveDepthContinuity:
                                    type: boolean
                                    const: false
                                  terminalVirtualCcReserve:
                                    type: string
                                    const: '333333.3333333333'
                                  terminalVirtualTokenReserve:
                                    type: string
                                    const: '266666666.6666666667'
                                  trigger:
                                    type: string
                                    const: >-
                                      curve-inventory-exhausted-and-net-cc-reserve-reached
                                  virtualReservesMigrated:
                                    type: boolean
                                    const: false
                                required:
                                  - acceptedReserveDepthDropBps
                                  - feeTreatment
                                  - firstOrderPriceImpactMultiplier
                                  - initialDexCcReserve
                                  - initialDexTokenReserve
                                  - postGraduationReserveScale
                                  - priceContinuity
                                  - reserveDepthContinuity
                                  - terminalVirtualCcReserve
                                  - terminalVirtualTokenReserve
                                  - trigger
                                  - virtualReservesMigrated
                                additionalProperties: false
                              graduationThresholdCc:
                                type: string
                                const: '250000'
                              openingPriceCcPerToken:
                                type: string
                                const: '0.000078125'
                              postGraduationAmm:
                                type: object
                                properties:
                                  authorizationMaxTtlSeconds:
                                    type: number
                                    const: 900
                                  fee:
                                    type: object
                                    properties:
                                      asset:
                                        type: string
                                        const: cc
                                      buySide:
                                        type: string
                                        const: deduct-from-gross-before-cc-enters-pool
                                      policy:
                                        type: string
                                        const: outside-active-reserves
                                      rate:
                                        type: string
                                        const: '0.01'
                                      routing:
                                        type: string
                                        const: creator-revenue-policy-outside-pool
                                      sellSide:
                                        type: string
                                        const: >-
                                          deduct-from-gross-cc-after-cc-leaves-pool
                                    required:
                                      - asset
                                      - buySide
                                      - policy
                                      - rate
                                      - routing
                                      - sellSide
                                    additionalProperties: false
                                  formulaId:
                                    type: string
                                    const: supanova-real-cpmm-v1
                                  goldenManifestDigest:
                                    type: string
                                    const: >-
                                      sha256:7fc5b0d592eaf85cb083775101efe73a099b404e6334cd85ac1683ac753626d0
                                  initialRealCcReserve:
                                    type: string
                                    const: '250000'
                                  initialRealTokenReserve:
                                    type: string
                                    const: '200000000'
                                  invariant:
                                    type: object
                                    properties:
                                      anchor:
                                        type: string
                                        const: '50000000000000'
                                      anchorRelation:
                                        type: string
                                        const: >-
                                          initial=exact-seed;buy=tokenReserve==round10(k/ccReserve);sell=ccReserve==round10(k/tokenReserve)
                                      driftPolicy:
                                        type: string
                                        const: reject-any-noncanonical-anchor-relation
                                      transition:
                                        type: string
                                        const: >-
                                          oppositeReserve=round10(k/nextInputReserve)
                                    required:
                                      - anchor
                                      - anchorRelation
                                      - driftPolicy
                                      - transition
                                    additionalProperties: false
                                  lifecycle:
                                    type: string
                                    const: >-
                                      atomic-graduation-seed-then-revisioned-real-reserve
                                  minimumGrossBuyCc:
                                    type: string
                                    const: '0.01'
                                  minimumGrossSellCc:
                                    type: string
                                    const: '0.0099'
                                  minimumGrossSellDerivation:
                                    type: string
                                    const: gross-cc-from-reserve-before-fee
                                  numericScale:
                                    type: number
                                    const: 10
                                  rounding:
                                    type: object
                                    properties:
                                      buyGrouping:
                                        type: string
                                        const: >-
                                          fee=round10(gross*rate);net=round10(gross-fee);x1=round10(x+net);y1=round10(k/x1);out=round10(y-y1)
                                      mode:
                                        type: string
                                        const: ledger-decimal10-half-even-per-operation
                                      sellGrouping:
                                        type: string
                                        const: >-
                                          y1=round10(y+tokenIn);x1=round10(k/y1);gross=round10(x-x1);fee=round10(gross*rate);net=round10(gross-fee)
                                    required:
                                      - buyGrouping
                                      - mode
                                      - sellGrouping
                                    additionalProperties: false
                                  rootUniquenessAssumption:
                                    type: string
                                    const: >-
                                      participant-inventory-and-submission-policy-required
                                  settlementReadiness:
                                    type: string
                                    const: external-settlement-adapter-unproven
                                required:
                                  - authorizationMaxTtlSeconds
                                  - fee
                                  - formulaId
                                  - goldenManifestDigest
                                  - initialRealCcReserve
                                  - initialRealTokenReserve
                                  - invariant
                                  - lifecycle
                                  - minimumGrossBuyCc
                                  - minimumGrossSellCc
                                  - minimumGrossSellDerivation
                                  - numericScale
                                  - rounding
                                  - rootUniquenessAssumption
                                  - settlementReadiness
                                additionalProperties: false
                              totalSupply:
                                type: string
                                const: '1000000000'
                              tradingFeeRate:
                                type: string
                                const: '0.01'
                            required:
                              - creationFeeCc
                              - curveAllocation
                              - curve
                              - dexReserve
                              - fixedSupply
                              - graduation
                              - graduationThresholdCc
                              - openingPriceCcPerToken
                              - postGraduationAmm
                              - totalSupply
                              - tradingFeeRate
                            additionalProperties: false
                          execution:
                            type: string
                            const: simulated
                          expiresAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                          fees:
                            type: object
                            properties:
                              creationFeeCc:
                                type: string
                                const: '25'
                              openingTradingFeeCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              totalDebitCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              tradingFeeRate:
                                type: string
                                const: '0.01'
                            required:
                              - creationFeeCc
                              - openingTradingFeeCc
                              - totalDebitCc
                              - tradingFeeRate
                            additionalProperties: false
                          issuedAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                          legalAcceptance:
                            type: object
                            properties:
                              accepted:
                                type: boolean
                                const: true
                              acceptedAt:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                              documentSetDigest:
                                type: string
                                const: >-
                                  sha256:334747f374e7ba4ae02b71918bd94f5d4400b19b20997244ccdf7550719296ff
                              documents:
                                type: array
                                minItems: 3
                                maxItems: 3
                                prefixItems:
                                  - type: string
                                    const: terms
                                  - type: string
                                    const: launch-terms
                                  - type: string
                                    const: risk
                              effectiveAt:
                                type: string
                                const: '2026-08-04T00:00:00.000Z'
                              documentVersion:
                                type: string
                                const: '1.2'
                              policyId:
                                type: string
                                const: supanova-permissionless-curve-launch
                              policyVersion:
                                type: string
                                const: '3'
                              updatedAt:
                                type: string
                                const: '2026-08-12T00:00:00.000Z'
                            required:
                              - accepted
                              - acceptedAt
                              - documentSetDigest
                              - documents
                              - effectiveAt
                              - documentVersion
                              - policyId
                              - policyVersion
                              - updatedAt
                            additionalProperties: false
                          media:
                            type: object
                            properties:
                              banner:
                                anyOf:
                                  - type: object
                                    properties:
                                      contentType:
                                        type: string
                                        enum:
                                          - image/gif
                                          - image/jpeg
                                          - image/png
                                          - image/webp
                                          - video/mp4
                                      dataMode:
                                        type: string
                                        enum:
                                          - durable
                                          - simulated
                                      height:
                                        anyOf:
                                          - type: integer
                                            minimum: -9007199254740991
                                            maximum: 9007199254740991
                                          - type: 'null'
                                      mediaId:
                                        type: string
                                        format: uuid
                                        pattern: >-
                                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                      publicUrl:
                                        anyOf:
                                          - type: string
                                            format: uri
                                          - type: 'null'
                                      role:
                                        type: string
                                        enum:
                                          - token_banner
                                          - token_icon
                                      sha256:
                                        type: string
                                        pattern: ^[0-9a-f]{64}$
                                      sizeBytes:
                                        type: integer
                                        minimum: -9007199254740991
                                        maximum: 9007199254740991
                                      status:
                                        type: string
                                        enum:
                                          - preview_accepted
                                          - published
                                          - quarantined
                                          - rejected
                                          - taken_down
                                      storage:
                                        type: string
                                        enum:
                                          - discarded-preview
                                          - removed
                                          - supabase-private
                                          - supabase-public
                                          - supabase-quarantine
                                      width:
                                        anyOf:
                                          - type: integer
                                            minimum: -9007199254740991
                                            maximum: 9007199254740991
                                          - type: 'null'
                                    required:
                                      - contentType
                                      - dataMode
                                      - height
                                      - mediaId
                                      - publicUrl
                                      - role
                                      - sha256
                                      - sizeBytes
                                      - status
                                      - storage
                                      - width
                                    additionalProperties: false
                                  - type: 'null'
                              icon:
                                type: object
                                properties:
                                  contentType:
                                    type: string
                                    enum:
                                      - image/gif
                                      - image/jpeg
                                      - image/png
                                      - image/webp
                                      - video/mp4
                                  dataMode:
                                    type: string
                                    enum:
                                      - durable
                                      - simulated
                                  height:
                                    anyOf:
                                      - type: integer
                                        minimum: -9007199254740991
                                        maximum: 9007199254740991
                                      - type: 'null'
                                  mediaId:
                                    type: string
                                    format: uuid
                                    pattern: >-
                                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                  publicUrl:
                                    anyOf:
                                      - type: string
                                        format: uri
                                      - type: 'null'
                                  role:
                                    type: string
                                    enum:
                                      - token_banner
                                      - token_icon
                                  sha256:
                                    type: string
                                    pattern: ^[0-9a-f]{64}$
                                  sizeBytes:
                                    type: integer
                                    minimum: -9007199254740991
                                    maximum: 9007199254740991
                                  status:
                                    type: string
                                    enum:
                                      - preview_accepted
                                      - published
                                      - quarantined
                                      - rejected
                                      - taken_down
                                  storage:
                                    type: string
                                    enum:
                                      - discarded-preview
                                      - removed
                                      - supabase-private
                                      - supabase-public
                                      - supabase-quarantine
                                  width:
                                    anyOf:
                                      - type: integer
                                        minimum: -9007199254740991
                                        maximum: 9007199254740991
                                      - type: 'null'
                                required:
                                  - contentType
                                  - dataMode
                                  - height
                                  - mediaId
                                  - publicUrl
                                  - role
                                  - sha256
                                  - sizeBytes
                                  - status
                                  - storage
                                  - width
                                additionalProperties: false
                            required:
                              - banner
                              - icon
                            additionalProperties: false
                          metadata:
                            type: object
                            properties:
                              bannerMediaId:
                                type: string
                                format: uuid
                                pattern: >-
                                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              category:
                                type: string
                                enum:
                                  - defi
                                  - payments
                                  - infrastructure
                                  - real_world_assets
                                  - capital_markets
                                  - stablecoins
                                  - identity_compliance
                                  - data_oracles
                                  - consumer
                                  - culture
                                  - other
                              description:
                                type: string
                                minLength: 30
                                maxLength: 1200
                              docs:
                                type: string
                                maxLength: 2048
                                format: uri
                                description: >-
                                  Public navigation-only HTTPS URL with a DNS
                                  hostname; credentials, IP literals, localhost
                                  and private/local DNS suffixes are forbidden.
                                  This is not permission for server-side
                                  fetching.
                                pattern: ^https://
                              iconMediaId:
                                type: string
                                format: uuid
                                pattern: >-
                                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              name:
                                type: string
                                minLength: 2
                                maxLength: 32
                              socialReferences:
                                type: object
                                properties:
                                  discord:
                                    type: string
                                    maxLength: 2048
                                    format: uri
                                    description: >-
                                      Non-root HTTPS discord profile/channel
                                      URL. Approved hosts: discord.gg,
                                      discord.com, discordapp.com.
                                    pattern: ^https://
                                  instagram:
                                    type: string
                                    maxLength: 2048
                                    format: uri
                                    description: >-
                                      Non-root HTTPS instagram profile/channel
                                      URL. Approved hosts: instagram.com.
                                    pattern: ^https://
                                  telegram:
                                    type: string
                                    maxLength: 2048
                                    format: uri
                                    description: >-
                                      Non-root HTTPS telegram profile/channel
                                      URL. Approved hosts: t.me, telegram.me.
                                    pattern: ^https://
                                  tiktok:
                                    type: string
                                    maxLength: 2048
                                    format: uri
                                    description: >-
                                      Non-root HTTPS tiktok profile/channel URL.
                                      Approved hosts: tiktok.com.
                                    pattern: ^https://
                                  x:
                                    type: string
                                    maxLength: 2048
                                    format: uri
                                    description: >-
                                      Non-root HTTPS x profile/channel URL.
                                      Approved hosts: x.com, twitter.com.
                                    pattern: ^https://
                                  youtube:
                                    type: string
                                    maxLength: 2048
                                    format: uri
                                    description: >-
                                      Non-root HTTPS youtube profile/channel
                                      URL. Approved hosts: youtube.com,
                                      youtu.be.
                                    pattern: ^https://
                                additionalProperties: false
                              summary:
                                type: string
                                minLength: 10
                                maxLength: 120
                              ticker:
                                type: string
                                pattern: ^[A-Z0-9]{1,16}$
                              website:
                                type: string
                                maxLength: 2048
                                format: uri
                                description: >-
                                  Public navigation-only HTTPS URL with a DNS
                                  hostname; credentials, IP literals, localhost
                                  and private/local DNS suffixes are forbidden.
                                  This is not permission for server-side
                                  fetching.
                                pattern: ^https://
                            required:
                              - category
                              - description
                              - iconMediaId
                              - name
                              - summary
                              - ticker
                            additionalProperties: false
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                          openingBuy:
                            anyOf:
                              - type: object
                                properties:
                                  averagePriceCcPerToken:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                  creatorRevenueAllocation:
                                    oneOf:
                                      - type: object
                                        properties:
                                          basisAmountCc:
                                            type: string
                                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                          creatorRevenueCc:
                                            type: string
                                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                          eligibility:
                                            type: string
                                            const: eligible
                                          grossRevenueCc:
                                            type: string
                                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                          lineage:
                                            type: string
                                            const: bind-on-confirmed-launch-route
                                          policy:
                                            type: object
                                            properties:
                                              hash:
                                                type: string
                                                const: >-
                                                  sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                                              id:
                                                type: string
                                                const: supanova-creator-revenue-policy
                                              version:
                                                type: string
                                                const: '1'
                                            required:
                                              - hash
                                              - id
                                              - version
                                            additionalProperties: false
                                          protocolRevenueCc:
                                            type: string
                                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                          source:
                                            type: string
                                            const: virtual-curve-trading-fee
                                        required:
                                          - basisAmountCc
                                          - creatorRevenueCc
                                          - eligibility
                                          - grossRevenueCc
                                          - lineage
                                          - policy
                                          - protocolRevenueCc
                                          - source
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          eligibility:
                                            type: string
                                            const: ineligible
                                          reason:
                                            type: string
                                            const: trader-cashback
                                        required:
                                          - eligibility
                                          - reason
                                        additionalProperties: false
                                  grossCcAmount:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                  inputAmount:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                  inputUnit:
                                    type: string
                                    enum:
                                      - cc
                                      - token
                                  netCcToCurve:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                  priceImpactBps:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                  stateAfter:
                                    type: object
                                    properties:
                                      formulaId:
                                        type: string
                                        const: supanova-virtual-cpmm-v1
                                      graduated:
                                        type: boolean
                                      graduationPercent:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      marginalPriceCcPerToken:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      netCcReserve:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      tokensRemaining:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      tokensSold:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                    required:
                                      - formulaId
                                      - graduated
                                      - graduationPercent
                                      - marginalPriceCcPerToken
                                      - netCcReserve
                                      - tokensRemaining
                                      - tokensSold
                                    additionalProperties: false
                                  tokenAmount:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                  tradingFeeCc:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                required:
                                  - averagePriceCcPerToken
                                  - creatorRevenueAllocation
                                  - grossCcAmount
                                  - inputAmount
                                  - inputUnit
                                  - netCcToCurve
                                  - priceImpactBps
                                  - stateAfter
                                  - tokenAmount
                                  - tradingFeeCc
                                additionalProperties: false
                              - type: 'null'
                          policy:
                            type: object
                            properties:
                              document:
                                type: object
                                properties:
                                  documentSetDigest:
                                    type: string
                                    const: >-
                                      sha256:334747f374e7ba4ae02b71918bd94f5d4400b19b20997244ccdf7550719296ff
                                  documents:
                                    type: array
                                    minItems: 3
                                    maxItems: 3
                                    prefixItems:
                                      - type: object
                                        properties:
                                          digest:
                                            type: string
                                            const: >-
                                              sha256:ae3001c9110291ba6d97fe27343218a23ec93427ac7f7654e45e77b3fe08523d
                                          slug:
                                            type: string
                                            const: terms
                                        required:
                                          - digest
                                          - slug
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          digest:
                                            type: string
                                            const: >-
                                              sha256:44b4ddbc306824bc9c44f1f2c57892169b3fa737df453897c66f36c8127123f5
                                          slug:
                                            type: string
                                            const: launch-terms
                                        required:
                                          - digest
                                          - slug
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          digest:
                                            type: string
                                            const: >-
                                              sha256:3d54b4c54d38211c9cb5b5789e97607bd7c49157f7cff5928d2e348c66d04c84
                                          slug:
                                            type: string
                                            const: risk
                                        required:
                                          - digest
                                          - slug
                                        additionalProperties: false
                                  effectiveAt:
                                    type: string
                                    const: '2026-08-04T00:00:00.000Z'
                                  updatedAt:
                                    type: string
                                    const: '2026-08-12T00:00:00.000Z'
                                  version:
                                    type: string
                                    const: '1.2'
                                required:
                                  - documentSetDigest
                                  - documents
                                  - effectiveAt
                                  - updatedAt
                                  - version
                                additionalProperties: false
                              hash:
                                type: string
                                const: >-
                                  sha256:c843cc6204a25e687e40fff5f8033416031fb28d191f40b00e530855d70dd0ce
                              id:
                                type: string
                                const: supanova-permissionless-curve-launch
                              immutable:
                                type: boolean
                                const: true
                              version:
                                type: string
                                const: '3'
                            required:
                              - document
                              - hash
                              - id
                              - immutable
                              - version
                            additionalProperties: false
                          proposedInstrument:
                            type: object
                            properties:
                              instrumentId:
                                type: object
                                properties:
                                  admin:
                                    type: string
                                    minLength: 1
                                    maxLength: 512
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 512
                                required:
                                  - admin
                                  - id
                                additionalProperties: false
                              standard:
                                type: string
                                const: CIP-0056
                              status:
                                type: string
                                const: proposed
                            required:
                              - instrumentId
                              - standard
                              - status
                            additionalProperties: false
                          proposedSlug:
                            type: string
                            pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
                          quoteHash:
                            type: string
                            pattern: ^sha256:[a-f0-9]{64}$
                          quoteId:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          requestHash:
                            type: string
                            pattern: ^sha256:[a-f0-9]{64}$
                          rewardConfiguration:
                            oneOf:
                              - type: object
                                properties:
                                  creatorRewardPartyId:
                                    type: string
                                    description: >-
                                      Exact opaque, case-sensitive Canton Party
                                      ID. It is preserved byte-for-byte:
                                      launcher source must equal the verified
                                      launcher Party; external source must
                                      differ.
                                    minLength: 3
                                    maxLength: 512
                                  creatorRewardPartySource:
                                    type: string
                                    enum:
                                      - launcher
                                      - external
                                    description: >-
                                      Authority rule for creatorRewardPartyId:
                                      launcher requires exact equality with the
                                      verified launch wallet Party; external
                                      requires exact inequality.
                                  rewardDestination:
                                    type: string
                                    const: creator
                                required:
                                  - creatorRewardPartyId
                                  - creatorRewardPartySource
                                  - rewardDestination
                                additionalProperties: false
                                description: >-
                                  Creator rewards route only to the exact
                                  immutable Party named by this branch.
                              - type: object
                                properties:
                                  rewardDestination:
                                    type: string
                                    const: trader_cashback
                                required:
                                  - rewardDestination
                                additionalProperties: false
                                description: >-
                                  Trader cashback forbids creator Party source
                                  and Party ID fields.
                            description: >-
                              Strict reward-routing authority union. Party IDs
                              are opaque and case-sensitive; no trimming,
                              casing, aliasing, or normalization is allowed.
                          rewardRoutingPolicy:
                            type: object
                            properties:
                              authority:
                                type: object
                                properties:
                                  prepareRevalidation:
                                    type: string
                                    const: exact-active-verified-wallet-context
                                  quoteBinding:
                                    type: string
                                    const: >-
                                      verified-wallet-connection-party-and-network
                                  quoteReuse:
                                    type: string
                                    const: single-operation-idempotency-key
                                required:
                                  - prepareRevalidation
                                  - quoteBinding
                                  - quoteReuse
                                additionalProperties: false
                              beneficiary:
                                type: object
                                properties:
                                  identity:
                                    type: string
                                    const: opaque-case-sensitive-canton-party-id
                                  routes:
                                    type: object
                                    properties:
                                      creator:
                                        type: object
                                        properties:
                                          external:
                                            type: string
                                            const: must-differ-from-launcher-party
                                          launcher:
                                            type: string
                                            const: must-equal-launcher-party
                                          partyId:
                                            type: string
                                            const: required
                                        required:
                                          - external
                                          - launcher
                                          - partyId
                                        additionalProperties: false
                                      trader_cashback:
                                        type: object
                                        properties:
                                          partyId:
                                            type: string
                                            const: forbidden
                                          partySource:
                                            type: string
                                            const: forbidden
                                        required:
                                          - partyId
                                          - partySource
                                        additionalProperties: false
                                    required:
                                      - creator
                                      - trader_cashback
                                    additionalProperties: false
                                required:
                                  - identity
                                  - routes
                                additionalProperties: false
                              hash:
                                type: string
                                const: >-
                                  sha256:fe83c99bff082060a46d8a30ea9de61fc1f165ccd2c28c595b85f393accd86dd
                              id:
                                type: string
                                const: supanova-token-launch-reward-routing
                              immutable:
                                type: boolean
                                const: true
                              privacy:
                                type: object
                                properties:
                                  partyIdentifiers:
                                    type: string
                                    const: >-
                                      backend-and-entitled-ledger-projection-only
                                required:
                                  - partyIdentifiers
                                additionalProperties: false
                              settlement:
                                type: object
                                properties:
                                  execution:
                                    type: string
                                    const: not-enabled
                                  readiness:
                                    type: string
                                    const: daml-command-builder-not-configured
                                required:
                                  - execution
                                  - readiness
                                additionalProperties: false
                              version:
                                type: string
                                const: '1'
                            required:
                              - authority
                              - beneficiary
                              - hash
                              - id
                              - immutable
                              - privacy
                              - settlement
                              - version
                            additionalProperties: false
                          walletContext:
                            type: object
                            properties:
                              creatorPartyId:
                                type: string
                                description: >-
                                  Opaque, case-sensitive Canton Party ID
                                  containing 3-512 Unicode scalar values with no
                                  normalization, edge whitespace, or C0/C1
                                  control characters.
                                minLength: 3
                                maxLength: 512
                              networkId:
                                type: string
                                pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                              walletConnectionId:
                                type: string
                                format: uuid
                                pattern: >-
                                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                            required:
                              - creatorPartyId
                              - networkId
                              - walletConnectionId
                            additionalProperties: false
                        required:
                          - creatorRevenuePolicy
                          - creatorRevenuePolicyAcceptance
                          - damlRewardRouting
                          - economics
                          - execution
                          - expiresAt
                          - fees
                          - issuedAt
                          - legalAcceptance
                          - media
                          - metadata
                          - networkId
                          - openingBuy
                          - policy
                          - proposedInstrument
                          - proposedSlug
                          - quoteHash
                          - quoteId
                          - requestHash
                          - rewardConfiguration
                          - rewardRoutingPolicy
                          - walletContext
                        additionalProperties: false
                      walletAction:
                        type: object
                        properties:
                          expiresAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                          intent:
                            type: object
                            properties:
                              creatorRevenuePolicy:
                                type: object
                                properties:
                                  attribution:
                                    type: object
                                    properties:
                                      featuredApp:
                                        type: string
                                        const: >-
                                          authoritative-cc-event-uniquely-correlated-to-one-accepted-launch-instrument-only
                                      reversal:
                                        type: string
                                        const: >-
                                          append-only-exact-opposite-once-and-only-before-any-distribution-allocation
                                      routedTokenToToken:
                                        type: string
                                        const: >-
                                          one-source-event-per-supaswap-leg-attributed-to-that-leg-token-launch
                                      unattributedActivity:
                                        type: string
                                        const: reject-never-api-prorate
                                    required:
                                      - featuredApp
                                      - reversal
                                      - routedTokenToToken
                                      - unattributedActivity
                                    additionalProperties: false
                                  eligibility:
                                    type: object
                                    properties:
                                      activation:
                                        type: string
                                        const: >-
                                          exact-policy-accepted-launches-only-no-retroactive-attribution
                                      beneficiary:
                                        type: string
                                        const: >-
                                          immutable-token-launch-reward-route-party
                                      rewardDestination:
                                        type: string
                                        const: creator
                                      traderCashback:
                                        type: string
                                        const: >-
                                          ineligible-pending-explicit-product-decision
                                    required:
                                      - activation
                                      - beneficiary
                                      - rewardDestination
                                      - traderCashback
                                    additionalProperties: false
                                  formulaId:
                                    type: string
                                    const: supanova-creator-revenue-v1
                                  hash:
                                    type: string
                                    const: >-
                                      sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                                  id:
                                    type: string
                                    const: supanova-creator-revenue-policy
                                  immutable:
                                    type: boolean
                                    const: true
                                  numericScale:
                                    type: number
                                    const: 10
                                  numericDomain:
                                    type: object
                                    properties:
                                      dust:
                                        type: string
                                        const: >-
                                          reject-if-gross-or-creator-rounds-to-zero
                                      maximumBasisAmountCc:
                                        type: string
                                        const: '999999999999999999999999.9999999999'
                                    required:
                                      - dust
                                      - maximumBasisAmountCc
                                    additionalProperties: false
                                  rounding:
                                    type: object
                                    properties:
                                      grossRevenue:
                                        type: string
                                        const: >-
                                          round10-half-even(source-basis-cc*source-rate)
                                      split:
                                        type: string
                                        const: >-
                                          creator=round10-half-even(gross-revenue-cc*creator-share-rate);protocol=gross-revenue-cc-creator-revenue-cc
                                    required:
                                      - grossRevenue
                                      - split
                                    additionalProperties: false
                                  settlement:
                                    type: object
                                    properties:
                                      execution:
                                        type: string
                                        const: not-enabled
                                      featuredAppExternalPartyRequirement:
                                        type: string
                                        const: >-
                                          beneficiary-mint-delegation-or-manual-mint-each-round-required
                                      legalApproval:
                                        type: string
                                        const: required-before-live
                                      readiness:
                                        type: string
                                        const: >-
                                          canton-attribution-and-distribution-writers-not-configured
                                    required:
                                      - execution
                                      - featuredAppExternalPartyRequirement
                                      - legalApproval
                                      - readiness
                                    additionalProperties: false
                                  sources:
                                    type: array
                                    minItems: 3
                                    maxItems: 3
                                    prefixItems:
                                      - type: object
                                        properties:
                                          basis:
                                            type: string
                                            const: gross-curve-trade-notional-cc
                                          creatorShareRate:
                                            type: string
                                            const: '0.80'
                                          id:
                                            type: string
                                            const: virtual-curve-trading-fee
                                          protocolShareRate:
                                            type: string
                                            const: '0.20'
                                          revenueRate:
                                            type: string
                                            const: '0.01'
                                          settlementStrategy:
                                            type: string
                                            const: accounted-then-ledger-distribution
                                        required:
                                          - basis
                                          - creatorShareRate
                                          - id
                                          - protocolShareRate
                                          - revenueRate
                                          - settlementStrategy
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          basis:
                                            type: string
                                            const: gross-supaswap-trade-notional-cc
                                          creatorShareRate:
                                            type: string
                                            const: '0.80'
                                          id:
                                            type: string
                                            const: supaswap-amm-trading-fee
                                          protocolShareRate:
                                            type: string
                                            const: '0.20'
                                          revenueRate:
                                            type: string
                                            const: '0.01'
                                          settlementStrategy:
                                            type: string
                                            const: accounted-then-ledger-distribution
                                        required:
                                          - basis
                                          - creatorShareRate
                                          - id
                                          - protocolShareRate
                                          - revenueRate
                                          - settlementStrategy
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          basis:
                                            type: string
                                            const: coin-attributable-featured-app-reward-cc
                                          creatorShareRate:
                                            type: string
                                            const: '0.50'
                                          id:
                                            type: string
                                            const: featured-app-cc-reward
                                          protocolShareRate:
                                            type: string
                                            const: '0.50'
                                          revenueRate:
                                            type: string
                                            const: '1.00'
                                          settlementStrategy:
                                            type: string
                                            const: weighted-featured-app-marker-direct
                                        required:
                                          - basis
                                          - creatorShareRate
                                          - id
                                          - protocolShareRate
                                          - revenueRate
                                          - settlementStrategy
                                        additionalProperties: false
                                  version:
                                    type: string
                                    const: '1'
                                required:
                                  - attribution
                                  - eligibility
                                  - formulaId
                                  - hash
                                  - id
                                  - immutable
                                  - numericScale
                                  - numericDomain
                                  - rounding
                                  - settlement
                                  - sources
                                  - version
                                additionalProperties: false
                              creatorRevenuePolicyAcceptance:
                                type: object
                                properties:
                                  accepted:
                                    type: boolean
                                    const: true
                                  policyHash:
                                    type: string
                                    const: >-
                                      sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                                  policyId:
                                    type: string
                                    const: supanova-creator-revenue-policy
                                  policyVersion:
                                    type: string
                                    const: '1'
                                required:
                                  - accepted
                                  - policyHash
                                  - policyId
                                  - policyVersion
                                additionalProperties: false
                              damlRewardRouting:
                                type: object
                                properties:
                                  creatorRewardBeneficiary:
                                    anyOf:
                                      - type: string
                                        description: >-
                                          Opaque, case-sensitive Canton Party ID
                                          containing 3-512 Unicode scalar values
                                          with no normalization, edge whitespace,
                                          or C0/C1 control characters.
                                        minLength: 3
                                        maxLength: 512
                                      - type: 'null'
                                  rewardDestination:
                                    type: string
                                    enum:
                                      - CreatorRewardDestination
                                      - TraderCashbackDestination
                                  rewardRoutingPolicyDigest:
                                    type: string
                                    const: >-
                                      sha256:fe83c99bff082060a46d8a30ea9de61fc1f165ccd2c28c595b85f393accd86dd
                                  rewardRoutingPolicyVersion:
                                    type: string
                                    const: '1'
                                required:
                                  - creatorRewardBeneficiary
                                  - rewardDestination
                                  - rewardRoutingPolicyDigest
                                  - rewardRoutingPolicyVersion
                                additionalProperties: false
                              economics:
                                type: object
                                properties:
                                  creationFeeCc:
                                    type: string
                                    const: '25'
                                  curveAllocation:
                                    type: string
                                    const: '800000000'
                                  curve:
                                    type: object
                                    properties:
                                      finalFillPolicy:
                                        type: string
                                        const: >-
                                          reject-overfill-and-unexecutable-remainder
                                      formulaId:
                                        type: string
                                        const: supanova-virtual-cpmm-v1
                                      initialVirtualCcReserve:
                                        type: string
                                        const: '83333.3333333333'
                                      initialVirtualTokenReserve:
                                        type: string
                                        const: '1066666666.6666666667'
                                      minimumGrossBuyCc:
                                        type: string
                                        const: '0.01'
                                      minimumGrossSellCc:
                                        type: string
                                        const: '0.0099'
                                      minimumNetBuyCc:
                                        type: string
                                        const: '0.0099'
                                      nonTerminalMaxGraduationPercent:
                                        type: string
                                        const: '99.9999999999'
                                      numericScale:
                                        type: number
                                        const: 10
                                      openingMarginalPriceCcPerToken:
                                        type: string
                                        const: '0.000078125'
                                      roundingPolicy:
                                        type: string
                                        const: >-
                                          ledger-decimal10-half-even-each-operation
                                      sellResidualPolicy:
                                        type: string
                                        const: >-
                                          reject-nonzero-reserve-below-minimum-gross-sell
                                      terminalMarginalPriceCcPerToken:
                                        type: string
                                        const: '0.00125'
                                    required:
                                      - finalFillPolicy
                                      - formulaId
                                      - initialVirtualCcReserve
                                      - initialVirtualTokenReserve
                                      - minimumGrossBuyCc
                                      - minimumGrossSellCc
                                      - minimumNetBuyCc
                                      - nonTerminalMaxGraduationPercent
                                      - numericScale
                                      - openingMarginalPriceCcPerToken
                                      - roundingPolicy
                                      - sellResidualPolicy
                                      - terminalMarginalPriceCcPerToken
                                    additionalProperties: false
                                  dexReserve:
                                    type: string
                                    const: '200000000'
                                  fixedSupply:
                                    type: boolean
                                    const: true
                                  graduation:
                                    type: object
                                    properties:
                                      acceptedReserveDepthDropBps:
                                        type: string
                                        const: '2500'
                                      feeTreatment:
                                        type: string
                                        const: outside-active-reserve
                                      firstOrderPriceImpactMultiplier:
                                        type: string
                                        const: '1.3333333333'
                                      initialDexCcReserve:
                                        type: string
                                        const: '250000'
                                      initialDexTokenReserve:
                                        type: string
                                        const: '200000000'
                                      postGraduationReserveScale:
                                        type: string
                                        const: '0.75'
                                      priceContinuity:
                                        type: string
                                        const: ratio-matched
                                      reserveDepthContinuity:
                                        type: boolean
                                        const: false
                                      terminalVirtualCcReserve:
                                        type: string
                                        const: '333333.3333333333'
                                      terminalVirtualTokenReserve:
                                        type: string
                                        const: '266666666.6666666667'
                                      trigger:
                                        type: string
                                        const: >-
                                          curve-inventory-exhausted-and-net-cc-reserve-reached
                                      virtualReservesMigrated:
                                        type: boolean
                                        const: false
                                    required:
                                      - acceptedReserveDepthDropBps
                                      - feeTreatment
                                      - firstOrderPriceImpactMultiplier
                                      - initialDexCcReserve
                                      - initialDexTokenReserve
                                      - postGraduationReserveScale
                                      - priceContinuity
                                      - reserveDepthContinuity
                                      - terminalVirtualCcReserve
                                      - terminalVirtualTokenReserve
                                      - trigger
                                      - virtualReservesMigrated
                                    additionalProperties: false
                                  graduationThresholdCc:
                                    type: string
                                    const: '250000'
                                  openingPriceCcPerToken:
                                    type: string
                                    const: '0.000078125'
                                  postGraduationAmm:
                                    type: object
                                    properties:
                                      authorizationMaxTtlSeconds:
                                        type: number
                                        const: 900
                                      fee:
                                        type: object
                                        properties:
                                          asset:
                                            type: string
                                            const: cc
                                          buySide:
                                            type: string
                                            const: deduct-from-gross-before-cc-enters-pool
                                          policy:
                                            type: string
                                            const: outside-active-reserves
                                          rate:
                                            type: string
                                            const: '0.01'
                                          routing:
                                            type: string
                                            const: creator-revenue-policy-outside-pool
                                          sellSide:
                                            type: string
                                            const: >-
                                              deduct-from-gross-cc-after-cc-leaves-pool
                                        required:
                                          - asset
                                          - buySide
                                          - policy
                                          - rate
                                          - routing
                                          - sellSide
                                        additionalProperties: false
                                      formulaId:
                                        type: string
                                        const: supanova-real-cpmm-v1
                                      goldenManifestDigest:
                                        type: string
                                        const: >-
                                          sha256:7fc5b0d592eaf85cb083775101efe73a099b404e6334cd85ac1683ac753626d0
                                      initialRealCcReserve:
                                        type: string
                                        const: '250000'
                                      initialRealTokenReserve:
                                        type: string
                                        const: '200000000'
                                      invariant:
                                        type: object
                                        properties:
                                          anchor:
                                            type: string
                                            const: '50000000000000'
                                          anchorRelation:
                                            type: string
                                            const: >-
                                              initial=exact-seed;buy=tokenReserve==round10(k/ccReserve);sell=ccReserve==round10(k/tokenReserve)
                                          driftPolicy:
                                            type: string
                                            const: reject-any-noncanonical-anchor-relation
                                          transition:
                                            type: string
                                            const: >-
                                              oppositeReserve=round10(k/nextInputReserve)
                                        required:
                                          - anchor
                                          - anchorRelation
                                          - driftPolicy
                                          - transition
                                        additionalProperties: false
                                      lifecycle:
                                        type: string
                                        const: >-
                                          atomic-graduation-seed-then-revisioned-real-reserve
                                      minimumGrossBuyCc:
                                        type: string
                                        const: '0.01'
                                      minimumGrossSellCc:
                                        type: string
                                        const: '0.0099'
                                      minimumGrossSellDerivation:
                                        type: string
                                        const: gross-cc-from-reserve-before-fee
                                      numericScale:
                                        type: number
                                        const: 10
                                      rounding:
                                        type: object
                                        properties:
                                          buyGrouping:
                                            type: string
                                            const: >-
                                              fee=round10(gross*rate);net=round10(gross-fee);x1=round10(x+net);y1=round10(k/x1);out=round10(y-y1)
                                          mode:
                                            type: string
                                            const: ledger-decimal10-half-even-per-operation
                                          sellGrouping:
                                            type: string
                                            const: >-
                                              y1=round10(y+tokenIn);x1=round10(k/y1);gross=round10(x-x1);fee=round10(gross*rate);net=round10(gross-fee)
                                        required:
                                          - buyGrouping
                                          - mode
                                          - sellGrouping
                                        additionalProperties: false
                                      rootUniquenessAssumption:
                                        type: string
                                        const: >-
                                          participant-inventory-and-submission-policy-required
                                      settlementReadiness:
                                        type: string
                                        const: external-settlement-adapter-unproven
                                    required:
                                      - authorizationMaxTtlSeconds
                                      - fee
                                      - formulaId
                                      - goldenManifestDigest
                                      - initialRealCcReserve
                                      - initialRealTokenReserve
                                      - invariant
                                      - lifecycle
                                      - minimumGrossBuyCc
                                      - minimumGrossSellCc
                                      - minimumGrossSellDerivation
                                      - numericScale
                                      - rounding
                                      - rootUniquenessAssumption
                                      - settlementReadiness
                                    additionalProperties: false
                                  totalSupply:
                                    type: string
                                    const: '1000000000'
                                  tradingFeeRate:
                                    type: string
                                    const: '0.01'
                                required:
                                  - creationFeeCc
                                  - curveAllocation
                                  - curve
                                  - dexReserve
                                  - fixedSupply
                                  - graduation
                                  - graduationThresholdCc
                                  - openingPriceCcPerToken
                                  - postGraduationAmm
                                  - totalSupply
                                  - tradingFeeRate
                                additionalProperties: false
                              fees:
                                type: object
                                properties:
                                  creationFeeCc:
                                    type: string
                                    const: '25'
                                  openingTradingFeeCc:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                  totalDebitCc:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                  tradingFeeRate:
                                    type: string
                                    const: '0.01'
                                required:
                                  - creationFeeCc
                                  - openingTradingFeeCc
                                  - totalDebitCc
                                  - tradingFeeRate
                                additionalProperties: false
                              legalAcceptance:
                                type: object
                                properties:
                                  accepted:
                                    type: boolean
                                    const: true
                                  acceptedAt:
                                    type: string
                                    format: date-time
                                    pattern: >-
                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                                  documentSetDigest:
                                    type: string
                                    const: >-
                                      sha256:334747f374e7ba4ae02b71918bd94f5d4400b19b20997244ccdf7550719296ff
                                  documents:
                                    type: array
                                    minItems: 3
                                    maxItems: 3
                                    prefixItems:
                                      - type: string
                                        const: terms
                                      - type: string
                                        const: launch-terms
                                      - type: string
                                        const: risk
                                  effectiveAt:
                                    type: string
                                    const: '2026-08-04T00:00:00.000Z'
                                  documentVersion:
                                    type: string
                                    const: '1.2'
                                  policyId:
                                    type: string
                                    const: supanova-permissionless-curve-launch
                                  policyVersion:
                                    type: string
                                    const: '3'
                                  updatedAt:
                                    type: string
                                    const: '2026-08-12T00:00:00.000Z'
                                required:
                                  - accepted
                                  - acceptedAt
                                  - documentSetDigest
                                  - documents
                                  - effectiveAt
                                  - documentVersion
                                  - policyId
                                  - policyVersion
                                  - updatedAt
                                additionalProperties: false
                              media:
                                type: object
                                properties:
                                  banner:
                                    anyOf:
                                      - type: object
                                        properties:
                                          contentType:
                                            type: string
                                            enum:
                                              - image/gif
                                              - image/jpeg
                                              - image/png
                                              - image/webp
                                              - video/mp4
                                          dataMode:
                                            type: string
                                            enum:
                                              - durable
                                              - simulated
                                          height:
                                            anyOf:
                                              - type: integer
                                                minimum: -9007199254740991
                                                maximum: 9007199254740991
                                              - type: 'null'
                                          mediaId:
                                            type: string
                                            format: uuid
                                            pattern: >-
                                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                          publicUrl:
                                            anyOf:
                                              - type: string
                                                format: uri
                                              - type: 'null'
                                          role:
                                            type: string
                                            enum:
                                              - token_banner
                                              - token_icon
                                          sha256:
                                            type: string
                                            pattern: ^[0-9a-f]{64}$
                                          sizeBytes:
                                            type: integer
                                            minimum: -9007199254740991
                                            maximum: 9007199254740991
                                          status:
                                            type: string
                                            enum:
                                              - preview_accepted
                                              - published
                                              - quarantined
                                              - rejected
                                              - taken_down
                                          storage:
                                            type: string
                                            enum:
                                              - discarded-preview
                                              - removed
                                              - supabase-private
                                              - supabase-public
                                              - supabase-quarantine
                                          width:
                                            anyOf:
                                              - type: integer
                                                minimum: -9007199254740991
                                                maximum: 9007199254740991
                                              - type: 'null'
                                        required:
                                          - contentType
                                          - dataMode
                                          - height
                                          - mediaId
                                          - publicUrl
                                          - role
                                          - sha256
                                          - sizeBytes
                                          - status
                                          - storage
                                          - width
                                        additionalProperties: false
                                      - type: 'null'
                                  icon:
                                    type: object
                                    properties:
                                      contentType:
                                        type: string
                                        enum:
                                          - image/gif
                                          - image/jpeg
                                          - image/png
                                          - image/webp
                                          - video/mp4
                                      dataMode:
                                        type: string
                                        enum:
                                          - durable
                                          - simulated
                                      height:
                                        anyOf:
                                          - type: integer
                                            minimum: -9007199254740991
                                            maximum: 9007199254740991
                                          - type: 'null'
                                      mediaId:
                                        type: string
                                        format: uuid
                                        pattern: >-
                                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                      publicUrl:
                                        anyOf:
                                          - type: string
                                            format: uri
                                          - type: 'null'
                                      role:
                                        type: string
                                        enum:
                                          - token_banner
                                          - token_icon
                                      sha256:
                                        type: string
                                        pattern: ^[0-9a-f]{64}$
                                      sizeBytes:
                                        type: integer
                                        minimum: -9007199254740991
                                        maximum: 9007199254740991
                                      status:
                                        type: string
                                        enum:
                                          - preview_accepted
                                          - published
                                          - quarantined
                                          - rejected
                                          - taken_down
                                      storage:
                                        type: string
                                        enum:
                                          - discarded-preview
                                          - removed
                                          - supabase-private
                                          - supabase-public
                                          - supabase-quarantine
                                      width:
                                        anyOf:
                                          - type: integer
                                            minimum: -9007199254740991
                                            maximum: 9007199254740991
                                          - type: 'null'
                                    required:
                                      - contentType
                                      - dataMode
                                      - height
                                      - mediaId
                                      - publicUrl
                                      - role
                                      - sha256
                                      - sizeBytes
                                      - status
                                      - storage
                                      - width
                                    additionalProperties: false
                                required:
                                  - banner
                                  - icon
                                additionalProperties: false
                              metadata:
                                type: object
                                properties:
                                  bannerMediaId:
                                    type: string
                                    format: uuid
                                    pattern: >-
                                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                  category:
                                    type: string
                                    enum:
                                      - defi
                                      - payments
                                      - infrastructure
                                      - real_world_assets
                                      - capital_markets
                                      - stablecoins
                                      - identity_compliance
                                      - data_oracles
                                      - consumer
                                      - culture
                                      - other
                                  description:
                                    type: string
                                    minLength: 30
                                    maxLength: 1200
                                  docs:
                                    type: string
                                    maxLength: 2048
                                    format: uri
                                    description: >-
                                      Public navigation-only HTTPS URL with a
                                      DNS hostname; credentials, IP literals,
                                      localhost and private/local DNS suffixes
                                      are forbidden. This is not permission for
                                      server-side fetching.
                                    pattern: ^https://
                                  iconMediaId:
                                    type: string
                                    format: uuid
                                    pattern: >-
                                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                  name:
                                    type: string
                                    minLength: 2
                                    maxLength: 32
                                  socialReferences:
                                    type: object
                                    properties:
                                      discord:
                                        type: string
                                        maxLength: 2048
                                        format: uri
                                        description: >-
                                          Non-root HTTPS discord profile/channel
                                          URL. Approved hosts: discord.gg,
                                          discord.com, discordapp.com.
                                        pattern: ^https://
                                      instagram:
                                        type: string
                                        maxLength: 2048
                                        format: uri
                                        description: >-
                                          Non-root HTTPS instagram profile/channel
                                          URL. Approved hosts: instagram.com.
                                        pattern: ^https://
                                      telegram:
                                        type: string
                                        maxLength: 2048
                                        format: uri
                                        description: >-
                                          Non-root HTTPS telegram profile/channel
                                          URL. Approved hosts: t.me, telegram.me.
                                        pattern: ^https://
                                      tiktok:
                                        type: string
                                        maxLength: 2048
                                        format: uri
                                        description: >-
                                          Non-root HTTPS tiktok profile/channel
                                          URL. Approved hosts: tiktok.com.
                                        pattern: ^https://
                                      x:
                                        type: string
                                        maxLength: 2048
                                        format: uri
                                        description: >-
                                          Non-root HTTPS x profile/channel URL.
                                          Approved hosts: x.com, twitter.com.
                                        pattern: ^https://
                                      youtube:
                                        type: string
                                        maxLength: 2048
                                        format: uri
                                        description: >-
                                          Non-root HTTPS youtube profile/channel
                                          URL. Approved hosts: youtube.com,
                                          youtu.be.
                                        pattern: ^https://
                                    additionalProperties: false
                                  summary:
                                    type: string
                                    minLength: 10
                                    maxLength: 120
                                  ticker:
                                    type: string
                                    pattern: ^[A-Z0-9]{1,16}$
                                  website:
                                    type: string
                                    maxLength: 2048
                                    format: uri
                                    description: >-
                                      Public navigation-only HTTPS URL with a
                                      DNS hostname; credentials, IP literals,
                                      localhost and private/local DNS suffixes
                                      are forbidden. This is not permission for
                                      server-side fetching.
                                    pattern: ^https://
                                required:
                                  - category
                                  - description
                                  - iconMediaId
                                  - name
                                  - summary
                                  - ticker
                                additionalProperties: false
                              openingBuy:
                                anyOf:
                                  - type: object
                                    properties:
                                      averagePriceCcPerToken:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      creatorRevenueAllocation:
                                        oneOf:
                                          - type: object
                                            properties:
                                              basisAmountCc:
                                                type: string
                                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                              creatorRevenueCc:
                                                type: string
                                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                              eligibility:
                                                type: string
                                                const: eligible
                                              grossRevenueCc:
                                                type: string
                                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                              lineage:
                                                type: string
                                                const: bind-on-confirmed-launch-route
                                              policy:
                                                type: object
                                                properties:
                                                  hash:
                                                    type: string
                                                    const: >-
                                                      sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                                                  id:
                                                    type: string
                                                    const: supanova-creator-revenue-policy
                                                  version:
                                                    type: string
                                                    const: '1'
                                                required:
                                                  - hash
                                                  - id
                                                  - version
                                                additionalProperties: false
                                              protocolRevenueCc:
                                                type: string
                                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                              source:
                                                type: string
                                                const: virtual-curve-trading-fee
                                            required:
                                              - basisAmountCc
                                              - creatorRevenueCc
                                              - eligibility
                                              - grossRevenueCc
                                              - lineage
                                              - policy
                                              - protocolRevenueCc
                                              - source
                                            additionalProperties: false
                                          - type: object
                                            properties:
                                              eligibility:
                                                type: string
                                                const: ineligible
                                              reason:
                                                type: string
                                                const: trader-cashback
                                            required:
                                              - eligibility
                                              - reason
                                            additionalProperties: false
                                      grossCcAmount:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      inputAmount:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      inputUnit:
                                        type: string
                                        enum:
                                          - cc
                                          - token
                                      netCcToCurve:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      priceImpactBps:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      stateAfter:
                                        type: object
                                        properties:
                                          formulaId:
                                            type: string
                                            const: supanova-virtual-cpmm-v1
                                          graduated:
                                            type: boolean
                                          graduationPercent:
                                            type: string
                                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                          marginalPriceCcPerToken:
                                            type: string
                                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                          netCcReserve:
                                            type: string
                                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                          tokensRemaining:
                                            type: string
                                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                          tokensSold:
                                            type: string
                                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        required:
                                          - formulaId
                                          - graduated
                                          - graduationPercent
                                          - marginalPriceCcPerToken
                                          - netCcReserve
                                          - tokensRemaining
                                          - tokensSold
                                        additionalProperties: false
                                      tokenAmount:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      tradingFeeCc:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                    required:
                                      - averagePriceCcPerToken
                                      - creatorRevenueAllocation
                                      - grossCcAmount
                                      - inputAmount
                                      - inputUnit
                                      - netCcToCurve
                                      - priceImpactBps
                                      - stateAfter
                                      - tokenAmount
                                      - tradingFeeCc
                                    additionalProperties: false
                                  - type: 'null'
                              policy:
                                type: object
                                properties:
                                  document:
                                    type: object
                                    properties:
                                      documentSetDigest:
                                        type: string
                                        const: >-
                                          sha256:334747f374e7ba4ae02b71918bd94f5d4400b19b20997244ccdf7550719296ff
                                      documents:
                                        type: array
                                        minItems: 3
                                        maxItems: 3
                                        prefixItems:
                                          - type: object
                                            properties:
                                              digest:
                                                type: string
                                                const: >-
                                                  sha256:ae3001c9110291ba6d97fe27343218a23ec93427ac7f7654e45e77b3fe08523d
                                              slug:
                                                type: string
                                                const: terms
                                            required:
                                              - digest
                                              - slug
                                            additionalProperties: false
                                          - type: object
                                            properties:
                                              digest:
                                                type: string
                                                const: >-
                                                  sha256:44b4ddbc306824bc9c44f1f2c57892169b3fa737df453897c66f36c8127123f5
                                              slug:
                                                type: string
                                                const: launch-terms
                                            required:
                                              - digest
                                              - slug
                                            additionalProperties: false
                                          - type: object
                                            properties:
                                              digest:
                                                type: string
                                                const: >-
                                                  sha256:3d54b4c54d38211c9cb5b5789e97607bd7c49157f7cff5928d2e348c66d04c84
                                              slug:
                                                type: string
                                                const: risk
                                            required:
                                              - digest
                                              - slug
                                            additionalProperties: false
                                      effectiveAt:
                                        type: string
                                        const: '2026-08-04T00:00:00.000Z'
                                      updatedAt:
                                        type: string
                                        const: '2026-08-12T00:00:00.000Z'
                                      version:
                                        type: string
                                        const: '1.2'
                                    required:
                                      - documentSetDigest
                                      - documents
                                      - effectiveAt
                                      - updatedAt
                                      - version
                                    additionalProperties: false
                                  hash:
                                    type: string
                                    const: >-
                                      sha256:c843cc6204a25e687e40fff5f8033416031fb28d191f40b00e530855d70dd0ce
                                  id:
                                    type: string
                                    const: supanova-permissionless-curve-launch
                                  immutable:
                                    type: boolean
                                    const: true
                                  version:
                                    type: string
                                    const: '3'
                                required:
                                  - document
                                  - hash
                                  - id
                                  - immutable
                                  - version
                                additionalProperties: false
                              proposedInstrument:
                                type: object
                                properties:
                                  instrumentId:
                                    type: object
                                    properties:
                                      admin:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                    required:
                                      - admin
                                      - id
                                    additionalProperties: false
                                  standard:
                                    type: string
                                    const: CIP-0056
                                  status:
                                    type: string
                                    const: proposed
                                required:
                                  - instrumentId
                                  - standard
                                  - status
                                additionalProperties: false
                              proposedSlug:
                                type: string
                                pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
                              quoteHash:
                                type: string
                                pattern: ^sha256:[a-f0-9]{64}$
                              quoteId:
                                type: string
                                format: uuid
                                pattern: >-
                                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              requestHash:
                                type: string
                                pattern: ^sha256:[a-f0-9]{64}$
                              rewardConfiguration:
                                oneOf:
                                  - type: object
                                    properties:
                                      creatorRewardPartyId:
                                        type: string
                                        description: >-
                                          Exact opaque, case-sensitive Canton
                                          Party ID. It is preserved byte-for-byte:
                                          launcher source must equal the verified
                                          launcher Party; external source must
                                          differ.
                                        minLength: 3
                                        maxLength: 512
                                      creatorRewardPartySource:
                                        type: string
                                        enum:
                                          - launcher
                                          - external
                                        description: >-
                                          Authority rule for creatorRewardPartyId:
                                          launcher requires exact equality with
                                          the verified launch wallet Party;
                                          external requires exact inequality.
                                      rewardDestination:
                                        type: string
                                        const: creator
                                    required:
                                      - creatorRewardPartyId
                                      - creatorRewardPartySource
                                      - rewardDestination
                                    additionalProperties: false
                                    description: >-
                                      Creator rewards route only to the exact
                                      immutable Party named by this branch.
                                  - type: object
                                    properties:
                                      rewardDestination:
                                        type: string
                                        const: trader_cashback
                                    required:
                                      - rewardDestination
                                    additionalProperties: false
                                    description: >-
                                      Trader cashback forbids creator Party
                                      source and Party ID fields.
                                description: >-
                                  Strict reward-routing authority union. Party
                                  IDs are opaque and case-sensitive; no
                                  trimming, casing, aliasing, or normalization
                                  is allowed.
                              rewardRoutingPolicy:
                                type: object
                                properties:
                                  authority:
                                    type: object
                                    properties:
                                      prepareRevalidation:
                                        type: string
                                        const: exact-active-verified-wallet-context
                                      quoteBinding:
                                        type: string
                                        const: >-
                                          verified-wallet-connection-party-and-network
                                      quoteReuse:
                                        type: string
                                        const: single-operation-idempotency-key
                                    required:
                                      - prepareRevalidation
                                      - quoteBinding
                                      - quoteReuse
                                    additionalProperties: false
                                  beneficiary:
                                    type: object
                                    properties:
                                      identity:
                                        type: string
                                        const: opaque-case-sensitive-canton-party-id
                                      routes:
                                        type: object
                                        properties:
                                          creator:
                                            type: object
                                            properties:
                                              external:
                                                type: string
                                                const: must-differ-from-launcher-party
                                              launcher:
                                                type: string
                                                const: must-equal-launcher-party
                                              partyId:
                                                type: string
                                                const: required
                                            required:
                                              - external
                                              - launcher
                                              - partyId
                                            additionalProperties: false
                                          trader_cashback:
                                            type: object
                                            properties:
                                              partyId:
                                                type: string
                                                const: forbidden
                                              partySource:
                                                type: string
                                                const: forbidden
                                            required:
                                              - partyId
                                              - partySource
                                            additionalProperties: false
                                        required:
                                          - creator
                                          - trader_cashback
                                        additionalProperties: false
                                    required:
                                      - identity
                                      - routes
                                    additionalProperties: false
                                  hash:
                                    type: string
                                    const: >-
                                      sha256:fe83c99bff082060a46d8a30ea9de61fc1f165ccd2c28c595b85f393accd86dd
                                  id:
                                    type: string
                                    const: supanova-token-launch-reward-routing
                                  immutable:
                                    type: boolean
                                    const: true
                                  privacy:
                                    type: object
                                    properties:
                                      partyIdentifiers:
                                        type: string
                                        const: >-
                                          backend-and-entitled-ledger-projection-only
                                    required:
                                      - partyIdentifiers
                                    additionalProperties: false
                                  settlement:
                                    type: object
                                    properties:
                                      execution:
                                        type: string
                                        const: not-enabled
                                      readiness:
                                        type: string
                                        const: daml-command-builder-not-configured
                                    required:
                                      - execution
                                      - readiness
                                    additionalProperties: false
                                  version:
                                    type: string
                                    const: '1'
                                required:
                                  - authority
                                  - beneficiary
                                  - hash
                                  - id
                                  - immutable
                                  - privacy
                                  - settlement
                                  - version
                                additionalProperties: false
                              type:
                                type: string
                                const: token-launch.create
                              walletContext:
                                type: object
                                properties:
                                  creatorPartyId:
                                    type: string
                                    description: >-
                                      Opaque, case-sensitive Canton Party ID
                                      containing 3-512 Unicode scalar values
                                      with no normalization, edge whitespace, or
                                      C0/C1 control characters.
                                    minLength: 3
                                    maxLength: 512
                                  networkId:
                                    type: string
                                    pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                                  walletConnectionId:
                                    type: string
                                    format: uuid
                                    pattern: >-
                                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                required:
                                  - creatorPartyId
                                  - networkId
                                  - walletConnectionId
                                additionalProperties: false
                            required:
                              - creatorRevenuePolicy
                              - creatorRevenuePolicyAcceptance
                              - damlRewardRouting
                              - economics
                              - fees
                              - legalAcceptance
                              - media
                              - metadata
                              - openingBuy
                              - policy
                              - proposedInstrument
                              - proposedSlug
                              - quoteHash
                              - quoteId
                              - requestHash
                              - rewardConfiguration
                              - rewardRoutingPolicy
                              - type
                              - walletContext
                            additionalProperties: false
                          kind:
                            type: string
                            const: canton.prepare-execute
                          method:
                            type: string
                            const: prepareExecute
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                          operationId:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          readiness:
                            type: string
                            enum:
                              - daml-command-builder-not-configured
                              - ready
                          request:
                            anyOf:
                              - type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - application-submission
                                      - interactive-submission
                                      - wallet-submission
                                  commandId:
                                    type: string
                                    minLength: 1
                                    maxLength: 255
                                  actAs:
                                    minItems: 1
                                    maxItems: 8
                                    type: array
                                    items:
                                      type: string
                                      minLength: 3
                                      maxLength: 512
                                  synchronizerId:
                                    type: string
                                    minLength: 1
                                    maxLength: 512
                                  hashingSchemeVersion:
                                    type: string
                                    minLength: 1
                                    maxLength: 64
                                  signatureFormat:
                                    type: string
                                    const: SIGNATURE_FORMAT_RAW
                                  signingAlgorithmSpec:
                                    type: string
                                    const: SIGNING_ALGORITHM_SPEC_ED25519
                                  signedBy:
                                    anyOf:
                                      - type: string
                                        minLength: 4
                                        maxLength: 160
                                      - type: 'null'
                                  preparedTransaction:
                                    anyOf:
                                      - type: string
                                        maxLength: 4194304
                                      - type: 'null'
                                  preparedTransactionHash:
                                    anyOf:
                                      - type: string
                                        maxLength: 512
                                      - type: 'null'
                                required:
                                  - kind
                                  - commandId
                                  - actAs
                                  - synchronizerId
                                  - hashingSchemeVersion
                                  - signatureFormat
                                  - signingAlgorithmSpec
                                  - signedBy
                                  - preparedTransaction
                                  - preparedTransactionHash
                                additionalProperties: false
                              - type: 'null'
                          standard:
                            type: string
                            const: CIP-0103
                        required:
                          - expiresAt
                          - intent
                          - kind
                          - method
                          - networkId
                          - operationId
                          - readiness
                          - request
                          - standard
                        additionalProperties: false
                    required:
                      - execution
                      - operation
                      - quote
                      - walletAction
                    additionalProperties: false
                  - type: object
                    properties:
                      execution:
                        type: string
                        enum:
                          - ledger
                          - simulated
                      operation:
                        type: object
                        properties:
                          expiresAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                          id:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          status:
                            type: string
                        required:
                          - expiresAt
                          - id
                          - status
                        additionalProperties: false
                      quote:
                        type: object
                        properties:
                          allocation:
                            type: object
                            properties:
                              curveAllocation:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              dexAllocation:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            required:
                              - curveAllocation
                              - dexAllocation
                            additionalProperties: false
                          creatorRevenuePolicy:
                            type: object
                            properties:
                              attribution:
                                type: object
                                properties:
                                  featuredApp:
                                    type: string
                                    const: >-
                                      authoritative-cc-event-uniquely-correlated-to-one-accepted-launch-instrument-only
                                  reversal:
                                    type: string
                                    const: >-
                                      append-only-exact-opposite-once-and-only-before-any-distribution-allocation
                                  routedTokenToToken:
                                    type: string
                                    const: >-
                                      one-source-event-per-supaswap-leg-attributed-to-that-leg-token-launch
                                  unattributedActivity:
                                    type: string
                                    const: reject-never-api-prorate
                                required:
                                  - featuredApp
                                  - reversal
                                  - routedTokenToToken
                                  - unattributedActivity
                                additionalProperties: false
                              eligibility:
                                type: object
                                properties:
                                  activation:
                                    type: string
                                    const: >-
                                      exact-policy-accepted-launches-only-no-retroactive-attribution
                                  beneficiary:
                                    type: string
                                    const: immutable-token-launch-reward-route-party
                                  rewardDestination:
                                    type: string
                                    const: creator
                                  traderCashback:
                                    type: string
                                    const: >-
                                      ineligible-pending-explicit-product-decision
                                required:
                                  - activation
                                  - beneficiary
                                  - rewardDestination
                                  - traderCashback
                                additionalProperties: false
                              formulaId:
                                type: string
                                const: supanova-creator-revenue-v1
                              hash:
                                type: string
                                const: >-
                                  sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                              id:
                                type: string
                                const: supanova-creator-revenue-policy
                              immutable:
                                type: boolean
                                const: true
                              numericScale:
                                type: number
                                const: 10
                              numericDomain:
                                type: object
                                properties:
                                  dust:
                                    type: string
                                    const: reject-if-gross-or-creator-rounds-to-zero
                                  maximumBasisAmountCc:
                                    type: string
                                    const: '999999999999999999999999.9999999999'
                                required:
                                  - dust
                                  - maximumBasisAmountCc
                                additionalProperties: false
                              rounding:
                                type: object
                                properties:
                                  grossRevenue:
                                    type: string
                                    const: >-
                                      round10-half-even(source-basis-cc*source-rate)
                                  split:
                                    type: string
                                    const: >-
                                      creator=round10-half-even(gross-revenue-cc*creator-share-rate);protocol=gross-revenue-cc-creator-revenue-cc
                                required:
                                  - grossRevenue
                                  - split
                                additionalProperties: false
                              settlement:
                                type: object
                                properties:
                                  execution:
                                    type: string
                                    const: not-enabled
                                  featuredAppExternalPartyRequirement:
                                    type: string
                                    const: >-
                                      beneficiary-mint-delegation-or-manual-mint-each-round-required
                                  legalApproval:
                                    type: string
                                    const: required-before-live
                                  readiness:
                                    type: string
                                    const: >-
                                      canton-attribution-and-distribution-writers-not-configured
                                required:
                                  - execution
                                  - featuredAppExternalPartyRequirement
                                  - legalApproval
                                  - readiness
                                additionalProperties: false
                              sources:
                                type: array
                                minItems: 3
                                maxItems: 3
                                prefixItems:
                                  - type: object
                                    properties:
                                      basis:
                                        type: string
                                        const: gross-curve-trade-notional-cc
                                      creatorShareRate:
                                        type: string
                                        const: '0.80'
                                      id:
                                        type: string
                                        const: virtual-curve-trading-fee
                                      protocolShareRate:
                                        type: string
                                        const: '0.20'
                                      revenueRate:
                                        type: string
                                        const: '0.01'
                                      settlementStrategy:
                                        type: string
                                        const: accounted-then-ledger-distribution
                                    required:
                                      - basis
                                      - creatorShareRate
                                      - id
                                      - protocolShareRate
                                      - revenueRate
                                      - settlementStrategy
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      basis:
                                        type: string
                                        const: gross-supaswap-trade-notional-cc
                                      creatorShareRate:
                                        type: string
                                        const: '0.80'
                                      id:
                                        type: string
                                        const: supaswap-amm-trading-fee
                                      protocolShareRate:
                                        type: string
                                        const: '0.20'
                                      revenueRate:
                                        type: string
                                        const: '0.01'
                                      settlementStrategy:
                                        type: string
                                        const: accounted-then-ledger-distribution
                                    required:
                                      - basis
                                      - creatorShareRate
                                      - id
                                      - protocolShareRate
                                      - revenueRate
                                      - settlementStrategy
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      basis:
                                        type: string
                                        const: coin-attributable-featured-app-reward-cc
                                      creatorShareRate:
                                        type: string
                                        const: '0.50'
                                      id:
                                        type: string
                                        const: featured-app-cc-reward
                                      protocolShareRate:
                                        type: string
                                        const: '0.50'
                                      revenueRate:
                                        type: string
                                        const: '1.00'
                                      settlementStrategy:
                                        type: string
                                        const: weighted-featured-app-marker-direct
                                    required:
                                      - basis
                                      - creatorShareRate
                                      - id
                                      - protocolShareRate
                                      - revenueRate
                                      - settlementStrategy
                                    additionalProperties: false
                              version:
                                type: string
                                const: '1'
                            required:
                              - attribution
                              - eligibility
                              - formulaId
                              - hash
                              - id
                              - immutable
                              - numericScale
                              - numericDomain
                              - rounding
                              - settlement
                              - sources
                              - version
                            additionalProperties: false
                          creatorRevenuePolicyAcceptance:
                            type: object
                            properties:
                              accepted:
                                type: boolean
                                const: true
                              policyHash:
                                type: string
                                const: >-
                                  sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                              policyId:
                                type: string
                                const: supanova-creator-revenue-policy
                              policyVersion:
                                type: string
                                const: '1'
                            required:
                              - accepted
                              - policyHash
                              - policyId
                              - policyVersion
                            additionalProperties: false
                          curvePolicy:
                            type: object
                            properties:
                              hash:
                                type: string
                                const: >-
                                  sha256:f0cf06fab397cb2593557dcc8d90701becc653607388286ddbe51a91be73144c
                              id:
                                type: string
                                const: supanova-curve-launch-policy
                              version:
                                type: string
                                const: '1'
                            required:
                              - hash
                              - id
                              - version
                            additionalProperties: false
                          damlRewardRouting:
                            type: object
                            properties:
                              creatorRewardBeneficiary:
                                anyOf:
                                  - type: string
                                    description: >-
                                      Opaque, case-sensitive Canton Party ID
                                      containing 3-512 Unicode scalar values
                                      with no normalization, edge whitespace, or
                                      C0/C1 control characters.
                                    minLength: 3
                                    maxLength: 512
                                  - type: 'null'
                              rewardDestination:
                                type: string
                                enum:
                                  - CreatorRewardDestination
                                  - TraderCashbackDestination
                              rewardRoutingPolicyDigest:
                                type: string
                                const: >-
                                  sha256:fe83c99bff082060a46d8a30ea9de61fc1f165ccd2c28c595b85f393accd86dd
                              rewardRoutingPolicyVersion:
                                type: string
                                const: '1'
                            required:
                              - creatorRewardBeneficiary
                              - rewardDestination
                              - rewardRoutingPolicyDigest
                              - rewardRoutingPolicyVersion
                            additionalProperties: false
                          display:
                            type: object
                            properties:
                              openingPriceCcPerToken:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                              openingPricePerMillionTokensCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                              smallestSellableLotTokens:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                              terminalPriceCcPerToken:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                              terminalPricePerMillionTokensCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                            required:
                              - openingPriceCcPerToken
                              - openingPricePerMillionTokensCc
                              - smallestSellableLotTokens
                              - terminalPriceCcPerToken
                              - terminalPricePerMillionTokensCc
                            additionalProperties: false
                          economics:
                            type: object
                            properties:
                              curveAllocationBps:
                                type: integer
                                minimum: 5001
                                maximum: 9999
                              graduationNetCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              maxFeeBps:
                                type: integer
                                minimum: 0
                                maximum: 5000
                              minFeeClaimCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            required:
                              - curveAllocationBps
                              - graduationNetCc
                              - maxFeeBps
                              - minFeeClaimCc
                            additionalProperties: false
                          execution:
                            type: string
                            const: simulated
                          expiresAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                          feeConfig:
                            type: object
                            properties:
                              feeBps:
                                type: integer
                                minimum: 0
                                maximum: 5000
                              platformShareBps:
                                type: integer
                                minimum: 0
                                maximum: 10000
                            required:
                              - feeBps
                              - platformShareBps
                            additionalProperties: false
                          fees:
                            type: object
                            properties:
                              creationFeeCc:
                                type: string
                                const: '25'
                              openingTradingFeeCc:
                                type: string
                                const: '0'
                              totalDebitCc:
                                type: string
                                const: '25'
                            required:
                              - creationFeeCc
                              - openingTradingFeeCc
                              - totalDebitCc
                            additionalProperties: false
                          issuedAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                          ledgerCreationFeeCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          legalAcceptance:
                            type: object
                            properties:
                              accepted:
                                type: boolean
                                const: true
                              acceptedAt:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                              documentSetDigest:
                                type: string
                                const: >-
                                  sha256:334747f374e7ba4ae02b71918bd94f5d4400b19b20997244ccdf7550719296ff
                              documents:
                                type: array
                                minItems: 3
                                maxItems: 3
                                prefixItems:
                                  - type: string
                                    const: terms
                                  - type: string
                                    const: launch-terms
                                  - type: string
                                    const: risk
                              effectiveAt:
                                type: string
                                const: '2026-08-04T00:00:00.000Z'
                              documentVersion:
                                type: string
                                const: '1.2'
                              policyId:
                                type: string
                                const: supanova-permissionless-curve-launch
                              policyVersion:
                                type: string
                                const: '3'
                              updatedAt:
                                type: string
                                const: '2026-08-12T00:00:00.000Z'
                            required:
                              - accepted
                              - acceptedAt
                              - documentSetDigest
                              - documents
                              - effectiveAt
                              - documentVersion
                              - policyId
                              - policyVersion
                              - updatedAt
                            additionalProperties: false
                          media:
                            type: object
                            properties:
                              banner:
                                anyOf:
                                  - type: object
                                    properties:
                                      contentType:
                                        type: string
                                        enum:
                                          - image/gif
                                          - image/jpeg
                                          - image/png
                                          - image/webp
                                          - video/mp4
                                      dataMode:
                                        type: string
                                        enum:
                                          - durable
                                          - simulated
                                      height:
                                        anyOf:
                                          - type: integer
                                            minimum: -9007199254740991
                                            maximum: 9007199254740991
                                          - type: 'null'
                                      mediaId:
                                        type: string
                                        format: uuid
                                        pattern: >-
                                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                      publicUrl:
                                        anyOf:
                                          - type: string
                                            format: uri
                                          - type: 'null'
                                      role:
                                        type: string
                                        enum:
                                          - token_banner
                                          - token_icon
                                      sha256:
                                        type: string
                                        pattern: ^[0-9a-f]{64}$
                                      sizeBytes:
                                        type: integer
                                        minimum: -9007199254740991
                                        maximum: 9007199254740991
                                      status:
                                        type: string
                                        enum:
                                          - preview_accepted
                                          - published
                                          - quarantined
                                          - rejected
                                          - taken_down
                                      storage:
                                        type: string
                                        enum:
                                          - discarded-preview
                                          - removed
                                          - supabase-private
                                          - supabase-public
                                          - supabase-quarantine
                                      width:
                                        anyOf:
                                          - type: integer
                                            minimum: -9007199254740991
                                            maximum: 9007199254740991
                                          - type: 'null'
                                    required:
                                      - contentType
                                      - dataMode
                                      - height
                                      - mediaId
                                      - publicUrl
                                      - role
                                      - sha256
                                      - sizeBytes
                                      - status
                                      - storage
                                      - width
                                    additionalProperties: false
                                  - type: 'null'
                              icon:
                                type: object
                                properties:
                                  contentType:
                                    type: string
                                    enum:
                                      - image/gif
                                      - image/jpeg
                                      - image/png
                                      - image/webp
                                      - video/mp4
                                  dataMode:
                                    type: string
                                    enum:
                                      - durable
                                      - simulated
                                  height:
                                    anyOf:
                                      - type: integer
                                        minimum: -9007199254740991
                                        maximum: 9007199254740991
                                      - type: 'null'
                                  mediaId:
                                    type: string
                                    format: uuid
                                    pattern: >-
                                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                  publicUrl:
                                    anyOf:
                                      - type: string
                                        format: uri
                                      - type: 'null'
                                  role:
                                    type: string
                                    enum:
                                      - token_banner
                                      - token_icon
                                  sha256:
                                    type: string
                                    pattern: ^[0-9a-f]{64}$
                                  sizeBytes:
                                    type: integer
                                    minimum: -9007199254740991
                                    maximum: 9007199254740991
                                  status:
                                    type: string
                                    enum:
                                      - preview_accepted
                                      - published
                                      - quarantined
                                      - rejected
                                      - taken_down
                                  storage:
                                    type: string
                                    enum:
                                      - discarded-preview
                                      - removed
                                      - supabase-private
                                      - supabase-public
                                      - supabase-quarantine
                                  width:
                                    anyOf:
                                      - type: integer
                                        minimum: -9007199254740991
                                        maximum: 9007199254740991
                                      - type: 'null'
                                required:
                                  - contentType
                                  - dataMode
                                  - height
                                  - mediaId
                                  - publicUrl
                                  - role
                                  - sha256
                                  - sizeBytes
                                  - status
                                  - storage
                                  - width
                                additionalProperties: false
                            required:
                              - banner
                              - icon
                            additionalProperties: false
                          metadata:
                            type: object
                            properties:
                              bannerMediaId:
                                type: string
                                format: uuid
                                pattern: >-
                                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              category:
                                type: string
                                enum:
                                  - defi
                                  - payments
                                  - infrastructure
                                  - real_world_assets
                                  - capital_markets
                                  - stablecoins
                                  - identity_compliance
                                  - data_oracles
                                  - consumer
                                  - culture
                                  - other
                              description:
                                type: string
                                minLength: 30
                                maxLength: 1200
                              docs:
                                type: string
                                maxLength: 2048
                                format: uri
                                description: >-
                                  Public navigation-only HTTPS URL with a DNS
                                  hostname; credentials, IP literals, localhost
                                  and private/local DNS suffixes are forbidden.
                                  This is not permission for server-side
                                  fetching.
                                pattern: ^https://
                              iconMediaId:
                                type: string
                                format: uuid
                                pattern: >-
                                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              name:
                                type: string
                                minLength: 2
                                maxLength: 32
                              socialReferences:
                                type: object
                                properties:
                                  discord:
                                    type: string
                                    maxLength: 2048
                                    format: uri
                                    description: >-
                                      Non-root HTTPS discord profile/channel
                                      URL. Approved hosts: discord.gg,
                                      discord.com, discordapp.com.
                                    pattern: ^https://
                                  instagram:
                                    type: string
                                    maxLength: 2048
                                    format: uri
                                    description: >-
                                      Non-root HTTPS instagram profile/channel
                                      URL. Approved hosts: instagram.com.
                                    pattern: ^https://
                                  telegram:
                                    type: string
                                    maxLength: 2048
                                    format: uri
                                    description: >-
                                      Non-root HTTPS telegram profile/channel
                                      URL. Approved hosts: t.me, telegram.me.
                                    pattern: ^https://
                                  tiktok:
                                    type: string
                                    maxLength: 2048
                                    format: uri
                                    description: >-
                                      Non-root HTTPS tiktok profile/channel URL.
                                      Approved hosts: tiktok.com.
                                    pattern: ^https://
                                  x:
                                    type: string
                                    maxLength: 2048
                                    format: uri
                                    description: >-
                                      Non-root HTTPS x profile/channel URL.
                                      Approved hosts: x.com, twitter.com.
                                    pattern: ^https://
                                  youtube:
                                    type: string
                                    maxLength: 2048
                                    format: uri
                                    description: >-
                                      Non-root HTTPS youtube profile/channel
                                      URL. Approved hosts: youtube.com,
                                      youtu.be.
                                    pattern: ^https://
                                additionalProperties: false
                              summary:
                                type: string
                                minLength: 10
                                maxLength: 120
                              ticker:
                                type: string
                                pattern: ^[A-Z0-9]{1,16}$
                              website:
                                type: string
                                maxLength: 2048
                                format: uri
                                description: >-
                                  Public navigation-only HTTPS URL with a DNS
                                  hostname; credentials, IP literals, localhost
                                  and private/local DNS suffixes are forbidden.
                                  This is not permission for server-side
                                  fetching.
                                pattern: ^https://
                            required:
                              - category
                              - description
                              - iconMediaId
                              - name
                              - summary
                              - ticker
                            additionalProperties: false
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                          openingBuy:
                            type: 'null'
                          policy:
                            type: object
                            properties:
                              document:
                                type: object
                                properties:
                                  documentSetDigest:
                                    type: string
                                    const: >-
                                      sha256:334747f374e7ba4ae02b71918bd94f5d4400b19b20997244ccdf7550719296ff
                                  documents:
                                    type: array
                                    minItems: 3
                                    maxItems: 3
                                    prefixItems:
                                      - type: object
                                        properties:
                                          digest:
                                            type: string
                                            const: >-
                                              sha256:ae3001c9110291ba6d97fe27343218a23ec93427ac7f7654e45e77b3fe08523d
                                          slug:
                                            type: string
                                            const: terms
                                        required:
                                          - digest
                                          - slug
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          digest:
                                            type: string
                                            const: >-
                                              sha256:44b4ddbc306824bc9c44f1f2c57892169b3fa737df453897c66f36c8127123f5
                                          slug:
                                            type: string
                                            const: launch-terms
                                        required:
                                          - digest
                                          - slug
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          digest:
                                            type: string
                                            const: >-
                                              sha256:3d54b4c54d38211c9cb5b5789e97607bd7c49157f7cff5928d2e348c66d04c84
                                          slug:
                                            type: string
                                            const: risk
                                        required:
                                          - digest
                                          - slug
                                        additionalProperties: false
                                  effectiveAt:
                                    type: string
                                    const: '2026-08-04T00:00:00.000Z'
                                  updatedAt:
                                    type: string
                                    const: '2026-08-12T00:00:00.000Z'
                                  version:
                                    type: string
                                    const: '1.2'
                                required:
                                  - documentSetDigest
                                  - documents
                                  - effectiveAt
                                  - updatedAt
                                  - version
                                additionalProperties: false
                              hash:
                                type: string
                                const: >-
                                  sha256:c843cc6204a25e687e40fff5f8033416031fb28d191f40b00e530855d70dd0ce
                              id:
                                type: string
                                const: supanova-permissionless-curve-launch
                              immutable:
                                type: boolean
                                const: true
                              version:
                                type: string
                                const: '3'
                            required:
                              - document
                              - hash
                              - id
                              - immutable
                              - version
                            additionalProperties: false
                          proposedInstrument:
                            type: object
                            properties:
                              instrumentId:
                                type: object
                                properties:
                                  admin:
                                    type: string
                                    minLength: 1
                                    maxLength: 512
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 512
                                required:
                                  - admin
                                  - id
                                additionalProperties: false
                              standard:
                                type: string
                                const: CIP-0056
                              status:
                                type: string
                                const: proposed
                            required:
                              - instrumentId
                              - standard
                              - status
                            additionalProperties: false
                          proposedSlug:
                            type: string
                            pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
                          quoteHash:
                            type: string
                            pattern: ^sha256:[a-f0-9]{64}$
                          quoteId:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          requestHash:
                            type: string
                            pattern: ^sha256:[a-f0-9]{64}$
                          rewardConfiguration:
                            oneOf:
                              - type: object
                                properties:
                                  creatorRewardPartyId:
                                    type: string
                                    description: >-
                                      Exact opaque, case-sensitive Canton Party
                                      ID. It is preserved byte-for-byte:
                                      launcher source must equal the verified
                                      launcher Party; external source must
                                      differ.
                                    minLength: 3
                                    maxLength: 512
                                  creatorRewardPartySource:
                                    type: string
                                    enum:
                                      - launcher
                                      - external
                                    description: >-
                                      Authority rule for creatorRewardPartyId:
                                      launcher requires exact equality with the
                                      verified launch wallet Party; external
                                      requires exact inequality.
                                  rewardDestination:
                                    type: string
                                    const: creator
                                required:
                                  - creatorRewardPartyId
                                  - creatorRewardPartySource
                                  - rewardDestination
                                additionalProperties: false
                                description: >-
                                  Creator rewards route only to the exact
                                  immutable Party named by this branch.
                              - type: object
                                properties:
                                  rewardDestination:
                                    type: string
                                    const: trader_cashback
                                required:
                                  - rewardDestination
                                additionalProperties: false
                                description: >-
                                  Trader cashback forbids creator Party source
                                  and Party ID fields.
                            description: >-
                              Strict reward-routing authority union. Party IDs
                              are opaque and case-sensitive; no trimming,
                              casing, aliasing, or normalization is allowed.
                          rewardRoutingPolicy:
                            type: object
                            properties:
                              authority:
                                type: object
                                properties:
                                  prepareRevalidation:
                                    type: string
                                    const: exact-active-verified-wallet-context
                                  quoteBinding:
                                    type: string
                                    const: >-
                                      verified-wallet-connection-party-and-network
                                  quoteReuse:
                                    type: string
                                    const: single-operation-idempotency-key
                                required:
                                  - prepareRevalidation
                                  - quoteBinding
                                  - quoteReuse
                                additionalProperties: false
                              beneficiary:
                                type: object
                                properties:
                                  identity:
                                    type: string
                                    const: opaque-case-sensitive-canton-party-id
                                  routes:
                                    type: object
                                    properties:
                                      creator:
                                        type: object
                                        properties:
                                          external:
                                            type: string
                                            const: must-differ-from-launcher-party
                                          launcher:
                                            type: string
                                            const: must-equal-launcher-party
                                          partyId:
                                            type: string
                                            const: required
                                        required:
                                          - external
                                          - launcher
                                          - partyId
                                        additionalProperties: false
                                      trader_cashback:
                                        type: object
                                        properties:
                                          partyId:
                                            type: string
                                            const: forbidden
                                          partySource:
                                            type: string
                                            const: forbidden
                                        required:
                                          - partyId
                                          - partySource
                                        additionalProperties: false
                                    required:
                                      - creator
                                      - trader_cashback
                                    additionalProperties: false
                                required:
                                  - identity
                                  - routes
                                additionalProperties: false
                              hash:
                                type: string
                                const: >-
                                  sha256:fe83c99bff082060a46d8a30ea9de61fc1f165ccd2c28c595b85f393accd86dd
                              id:
                                type: string
                                const: supanova-token-launch-reward-routing
                              immutable:
                                type: boolean
                                const: true
                              privacy:
                                type: object
                                properties:
                                  partyIdentifiers:
                                    type: string
                                    const: >-
                                      backend-and-entitled-ledger-projection-only
                                required:
                                  - partyIdentifiers
                                additionalProperties: false
                              settlement:
                                type: object
                                properties:
                                  execution:
                                    type: string
                                    const: not-enabled
                                  readiness:
                                    type: string
                                    const: daml-command-builder-not-configured
                                required:
                                  - execution
                                  - readiness
                                additionalProperties: false
                              version:
                                type: string
                                const: '1'
                            required:
                              - authority
                              - beneficiary
                              - hash
                              - id
                              - immutable
                              - privacy
                              - settlement
                              - version
                            additionalProperties: false
                          totalSupply:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          walletContext:
                            type: object
                            properties:
                              creatorPartyId:
                                type: string
                                description: >-
                                  Opaque, case-sensitive Canton Party ID
                                  containing 3-512 Unicode scalar values with no
                                  normalization, edge whitespace, or C0/C1
                                  control characters.
                                minLength: 3
                                maxLength: 512
                              networkId:
                                type: string
                                pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                              walletConnectionId:
                                type: string
                                format: uuid
                                pattern: >-
                                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                            required:
                              - creatorPartyId
                              - networkId
                              - walletConnectionId
                            additionalProperties: false
                        required:
                          - allocation
                          - creatorRevenuePolicy
                          - creatorRevenuePolicyAcceptance
                          - curvePolicy
                          - damlRewardRouting
                          - display
                          - economics
                          - execution
                          - expiresAt
                          - feeConfig
                          - fees
                          - issuedAt
                          - legalAcceptance
                          - media
                          - metadata
                          - networkId
                          - openingBuy
                          - policy
                          - proposedInstrument
                          - proposedSlug
                          - quoteHash
                          - quoteId
                          - requestHash
                          - rewardConfiguration
                          - rewardRoutingPolicy
                          - totalSupply
                          - walletContext
                        additionalProperties: false
                      walletAction:
                        type: object
                        properties:
                          expiresAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                          intent:
                            type: object
                            properties:
                              creatorRevenuePolicy:
                                type: object
                                properties:
                                  attribution:
                                    type: object
                                    properties:
                                      featuredApp:
                                        type: string
                                        const: >-
                                          authoritative-cc-event-uniquely-correlated-to-one-accepted-launch-instrument-only
                                      reversal:
                                        type: string
                                        const: >-
                                          append-only-exact-opposite-once-and-only-before-any-distribution-allocation
                                      routedTokenToToken:
                                        type: string
                                        const: >-
                                          one-source-event-per-supaswap-leg-attributed-to-that-leg-token-launch
                                      unattributedActivity:
                                        type: string
                                        const: reject-never-api-prorate
                                    required:
                                      - featuredApp
                                      - reversal
                                      - routedTokenToToken
                                      - unattributedActivity
                                    additionalProperties: false
                                  eligibility:
                                    type: object
                                    properties:
                                      activation:
                                        type: string
                                        const: >-
                                          exact-policy-accepted-launches-only-no-retroactive-attribution
                                      beneficiary:
                                        type: string
                                        const: >-
                                          immutable-token-launch-reward-route-party
                                      rewardDestination:
                                        type: string
                                        const: creator
                                      traderCashback:
                                        type: string
                                        const: >-
                                          ineligible-pending-explicit-product-decision
                                    required:
                                      - activation
                                      - beneficiary
                                      - rewardDestination
                                      - traderCashback
                                    additionalProperties: false
                                  formulaId:
                                    type: string
                                    const: supanova-creator-revenue-v1
                                  hash:
                                    type: string
                                    const: >-
                                      sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                                  id:
                                    type: string
                                    const: supanova-creator-revenue-policy
                                  immutable:
                                    type: boolean
                                    const: true
                                  numericScale:
                                    type: number
                                    const: 10
                                  numericDomain:
                                    type: object
                                    properties:
                                      dust:
                                        type: string
                                        const: >-
                                          reject-if-gross-or-creator-rounds-to-zero
                                      maximumBasisAmountCc:
                                        type: string
                                        const: '999999999999999999999999.9999999999'
                                    required:
                                      - dust
                                      - maximumBasisAmountCc
                                    additionalProperties: false
                                  rounding:
                                    type: object
                                    properties:
                                      grossRevenue:
                                        type: string
                                        const: >-
                                          round10-half-even(source-basis-cc*source-rate)
                                      split:
                                        type: string
                                        const: >-
                                          creator=round10-half-even(gross-revenue-cc*creator-share-rate);protocol=gross-revenue-cc-creator-revenue-cc
                                    required:
                                      - grossRevenue
                                      - split
                                    additionalProperties: false
                                  settlement:
                                    type: object
                                    properties:
                                      execution:
                                        type: string
                                        const: not-enabled
                                      featuredAppExternalPartyRequirement:
                                        type: string
                                        const: >-
                                          beneficiary-mint-delegation-or-manual-mint-each-round-required
                                      legalApproval:
                                        type: string
                                        const: required-before-live
                                      readiness:
                                        type: string
                                        const: >-
                                          canton-attribution-and-distribution-writers-not-configured
                                    required:
                                      - execution
                                      - featuredAppExternalPartyRequirement
                                      - legalApproval
                                      - readiness
                                    additionalProperties: false
                                  sources:
                                    type: array
                                    minItems: 3
                                    maxItems: 3
                                    prefixItems:
                                      - type: object
                                        properties:
                                          basis:
                                            type: string
                                            const: gross-curve-trade-notional-cc
                                          creatorShareRate:
                                            type: string
                                            const: '0.80'
                                          id:
                                            type: string
                                            const: virtual-curve-trading-fee
                                          protocolShareRate:
                                            type: string
                                            const: '0.20'
                                          revenueRate:
                                            type: string
                                            const: '0.01'
                                          settlementStrategy:
                                            type: string
                                            const: accounted-then-ledger-distribution
                                        required:
                                          - basis
                                          - creatorShareRate
                                          - id
                                          - protocolShareRate
                                          - revenueRate
                                          - settlementStrategy
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          basis:
                                            type: string
                                            const: gross-supaswap-trade-notional-cc
                                          creatorShareRate:
                                            type: string
                                            const: '0.80'
                                          id:
                                            type: string
                                            const: supaswap-amm-trading-fee
                                          protocolShareRate:
                                            type: string
                                            const: '0.20'
                                          revenueRate:
                                            type: string
                                            const: '0.01'
                                          settlementStrategy:
                                            type: string
                                            const: accounted-then-ledger-distribution
                                        required:
                                          - basis
                                          - creatorShareRate
                                          - id
                                          - protocolShareRate
                                          - revenueRate
                                          - settlementStrategy
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          basis:
                                            type: string
                                            const: coin-attributable-featured-app-reward-cc
                                          creatorShareRate:
                                            type: string
                                            const: '0.50'
                                          id:
                                            type: string
                                            const: featured-app-cc-reward
                                          protocolShareRate:
                                            type: string
                                            const: '0.50'
                                          revenueRate:
                                            type: string
                                            const: '1.00'
                                          settlementStrategy:
                                            type: string
                                            const: weighted-featured-app-marker-direct
                                        required:
                                          - basis
                                          - creatorShareRate
                                          - id
                                          - protocolShareRate
                                          - revenueRate
                                          - settlementStrategy
                                        additionalProperties: false
                                  version:
                                    type: string
                                    const: '1'
                                required:
                                  - attribution
                                  - eligibility
                                  - formulaId
                                  - hash
                                  - id
                                  - immutable
                                  - numericScale
                                  - numericDomain
                                  - rounding
                                  - settlement
                                  - sources
                                  - version
                                additionalProperties: false
                              creatorRevenuePolicyAcceptance:
                                type: object
                                properties:
                                  accepted:
                                    type: boolean
                                    const: true
                                  policyHash:
                                    type: string
                                    const: >-
                                      sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                                  policyId:
                                    type: string
                                    const: supanova-creator-revenue-policy
                                  policyVersion:
                                    type: string
                                    const: '1'
                                required:
                                  - accepted
                                  - policyHash
                                  - policyId
                                  - policyVersion
                                additionalProperties: false
                              damlRewardRouting:
                                type: object
                                properties:
                                  creatorRewardBeneficiary:
                                    anyOf:
                                      - type: string
                                        description: >-
                                          Opaque, case-sensitive Canton Party ID
                                          containing 3-512 Unicode scalar values
                                          with no normalization, edge whitespace,
                                          or C0/C1 control characters.
                                        minLength: 3
                                        maxLength: 512
                                      - type: 'null'
                                  rewardDestination:
                                    type: string
                                    enum:
                                      - CreatorRewardDestination
                                      - TraderCashbackDestination
                                  rewardRoutingPolicyDigest:
                                    type: string
                                    const: >-
                                      sha256:fe83c99bff082060a46d8a30ea9de61fc1f165ccd2c28c595b85f393accd86dd
                                  rewardRoutingPolicyVersion:
                                    type: string
                                    const: '1'
                                required:
                                  - creatorRewardBeneficiary
                                  - rewardDestination
                                  - rewardRoutingPolicyDigest
                                  - rewardRoutingPolicyVersion
                                additionalProperties: false
                              economics:
                                type: object
                                properties:
                                  curveAllocationBps:
                                    type: integer
                                    minimum: 5001
                                    maximum: 9999
                                  graduationNetCc:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                  maxFeeBps:
                                    type: integer
                                    minimum: 0
                                    maximum: 5000
                                  minFeeClaimCc:
                                    type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                required:
                                  - curveAllocationBps
                                  - graduationNetCc
                                  - maxFeeBps
                                  - minFeeClaimCc
                                additionalProperties: false
                              fees:
                                type: object
                                properties:
                                  creationFeeCc:
                                    type: string
                                    const: '25'
                                  openingTradingFeeCc:
                                    type: string
                                    const: '0'
                                  totalDebitCc:
                                    type: string
                                    const: '25'
                                required:
                                  - creationFeeCc
                                  - openingTradingFeeCc
                                  - totalDebitCc
                                additionalProperties: false
                              legalAcceptance:
                                type: object
                                properties:
                                  accepted:
                                    type: boolean
                                    const: true
                                  acceptedAt:
                                    type: string
                                    format: date-time
                                    pattern: >-
                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                                  documentSetDigest:
                                    type: string
                                    const: >-
                                      sha256:334747f374e7ba4ae02b71918bd94f5d4400b19b20997244ccdf7550719296ff
                                  documents:
                                    type: array
                                    minItems: 3
                                    maxItems: 3
                                    prefixItems:
                                      - type: string
                                        const: terms
                                      - type: string
                                        const: launch-terms
                                      - type: string
                                        const: risk
                                  effectiveAt:
                                    type: string
                                    const: '2026-08-04T00:00:00.000Z'
                                  documentVersion:
                                    type: string
                                    const: '1.2'
                                  policyId:
                                    type: string
                                    const: supanova-permissionless-curve-launch
                                  policyVersion:
                                    type: string
                                    const: '3'
                                  updatedAt:
                                    type: string
                                    const: '2026-08-12T00:00:00.000Z'
                                required:
                                  - accepted
                                  - acceptedAt
                                  - documentSetDigest
                                  - documents
                                  - effectiveAt
                                  - documentVersion
                                  - policyId
                                  - policyVersion
                                  - updatedAt
                                additionalProperties: false
                              media:
                                type: object
                                properties:
                                  banner:
                                    anyOf:
                                      - type: object
                                        properties:
                                          contentType:
                                            type: string
                                            enum:
                                              - image/gif
                                              - image/jpeg
                                              - image/png
                                              - image/webp
                                              - video/mp4
                                          dataMode:
                                            type: string
                                            enum:
                                              - durable
                                              - simulated
                                          height:
                                            anyOf:
                                              - type: integer
                                                minimum: -9007199254740991
                                                maximum: 9007199254740991
                                              - type: 'null'
                                          mediaId:
                                            type: string
                                            format: uuid
                                            pattern: >-
                                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                          publicUrl:
                                            anyOf:
                                              - type: string
                                                format: uri
                                              - type: 'null'
                                          role:
                                            type: string
                                            enum:
                                              - token_banner
                                              - token_icon
                                          sha256:
                                            type: string
                                            pattern: ^[0-9a-f]{64}$
                                          sizeBytes:
                                            type: integer
                                            minimum: -9007199254740991
                                            maximum: 9007199254740991
                                          status:
                                            type: string
                                            enum:
                                              - preview_accepted
                                              - published
                                              - quarantined
                                              - rejected
                                              - taken_down
                                          storage:
                                            type: string
                                            enum:
                                              - discarded-preview
                                              - removed
                                              - supabase-private
                                              - supabase-public
                                              - supabase-quarantine
                                          width:
                                            anyOf:
                                              - type: integer
                                                minimum: -9007199254740991
                                                maximum: 9007199254740991
                                              - type: 'null'
                                        required:
                                          - contentType
                                          - dataMode
                                          - height
                                          - mediaId
                                          - publicUrl
                                          - role
                                          - sha256
                                          - sizeBytes
                                          - status
                                          - storage
                                          - width
                                        additionalProperties: false
                                      - type: 'null'
                                  icon:
                                    type: object
                                    properties:
                                      contentType:
                                        type: string
                                        enum:
                                          - image/gif
                                          - image/jpeg
                                          - image/png
                                          - image/webp
                                          - video/mp4
                                      dataMode:
                                        type: string
                                        enum:
                                          - durable
                                          - simulated
                                      height:
                                        anyOf:
                                          - type: integer
                                            minimum: -9007199254740991
                                            maximum: 9007199254740991
                                          - type: 'null'
                                      mediaId:
                                        type: string
                                        format: uuid
                                        pattern: >-
                                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                      publicUrl:
                                        anyOf:
                                          - type: string
                                            format: uri
                                          - type: 'null'
                                      role:
                                        type: string
                                        enum:
                                          - token_banner
                                          - token_icon
                                      sha256:
                                        type: string
                                        pattern: ^[0-9a-f]{64}$
                                      sizeBytes:
                                        type: integer
                                        minimum: -9007199254740991
                                        maximum: 9007199254740991
                                      status:
                                        type: string
                                        enum:
                                          - preview_accepted
                                          - published
                                          - quarantined
                                          - rejected
                                          - taken_down
                                      storage:
                                        type: string
                                        enum:
                                          - discarded-preview
                                          - removed
                                          - supabase-private
                                          - supabase-public
                                          - supabase-quarantine
                                      width:
                                        anyOf:
                                          - type: integer
                                            minimum: -9007199254740991
                                            maximum: 9007199254740991
                                          - type: 'null'
                                    required:
                                      - contentType
                                      - dataMode
                                      - height
                                      - mediaId
                                      - publicUrl
                                      - role
                                      - sha256
                                      - sizeBytes
                                      - status
                                      - storage
                                      - width
                                    additionalProperties: false
                                required:
                                  - banner
                                  - icon
                                additionalProperties: false
                              metadata:
                                type: object
                                properties:
                                  bannerMediaId:
                                    type: string
                                    format: uuid
                                    pattern: >-
                                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                  category:
                                    type: string
                                    enum:
                                      - defi
                                      - payments
                                      - infrastructure
                                      - real_world_assets
                                      - capital_markets
                                      - stablecoins
                                      - identity_compliance
                                      - data_oracles
                                      - consumer
                                      - culture
                                      - other
                                  description:
                                    type: string
                                    minLength: 30
                                    maxLength: 1200
                                  docs:
                                    type: string
                                    maxLength: 2048
                                    format: uri
                                    description: >-
                                      Public navigation-only HTTPS URL with a
                                      DNS hostname; credentials, IP literals,
                                      localhost and private/local DNS suffixes
                                      are forbidden. This is not permission for
                                      server-side fetching.
                                    pattern: ^https://
                                  iconMediaId:
                                    type: string
                                    format: uuid
                                    pattern: >-
                                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                  name:
                                    type: string
                                    minLength: 2
                                    maxLength: 32
                                  socialReferences:
                                    type: object
                                    properties:
                                      discord:
                                        type: string
                                        maxLength: 2048
                                        format: uri
                                        description: >-
                                          Non-root HTTPS discord profile/channel
                                          URL. Approved hosts: discord.gg,
                                          discord.com, discordapp.com.
                                        pattern: ^https://
                                      instagram:
                                        type: string
                                        maxLength: 2048
                                        format: uri
                                        description: >-
                                          Non-root HTTPS instagram profile/channel
                                          URL. Approved hosts: instagram.com.
                                        pattern: ^https://
                                      telegram:
                                        type: string
                                        maxLength: 2048
                                        format: uri
                                        description: >-
                                          Non-root HTTPS telegram profile/channel
                                          URL. Approved hosts: t.me, telegram.me.
                                        pattern: ^https://
                                      tiktok:
                                        type: string
                                        maxLength: 2048
                                        format: uri
                                        description: >-
                                          Non-root HTTPS tiktok profile/channel
                                          URL. Approved hosts: tiktok.com.
                                        pattern: ^https://
                                      x:
                                        type: string
                                        maxLength: 2048
                                        format: uri
                                        description: >-
                                          Non-root HTTPS x profile/channel URL.
                                          Approved hosts: x.com, twitter.com.
                                        pattern: ^https://
                                      youtube:
                                        type: string
                                        maxLength: 2048
                                        format: uri
                                        description: >-
                                          Non-root HTTPS youtube profile/channel
                                          URL. Approved hosts: youtube.com,
                                          youtu.be.
                                        pattern: ^https://
                                    additionalProperties: false
                                  summary:
                                    type: string
                                    minLength: 10
                                    maxLength: 120
                                  ticker:
                                    type: string
                                    pattern: ^[A-Z0-9]{1,16}$
                                  website:
                                    type: string
                                    maxLength: 2048
                                    format: uri
                                    description: >-
                                      Public navigation-only HTTPS URL with a
                                      DNS hostname; credentials, IP literals,
                                      localhost and private/local DNS suffixes
                                      are forbidden. This is not permission for
                                      server-side fetching.
                                    pattern: ^https://
                                required:
                                  - category
                                  - description
                                  - iconMediaId
                                  - name
                                  - summary
                                  - ticker
                                additionalProperties: false
                              openingBuy:
                                type: 'null'
                              policy:
                                type: object
                                properties:
                                  document:
                                    type: object
                                    properties:
                                      documentSetDigest:
                                        type: string
                                        const: >-
                                          sha256:334747f374e7ba4ae02b71918bd94f5d4400b19b20997244ccdf7550719296ff
                                      documents:
                                        type: array
                                        minItems: 3
                                        maxItems: 3
                                        prefixItems:
                                          - type: object
                                            properties:
                                              digest:
                                                type: string
                                                const: >-
                                                  sha256:ae3001c9110291ba6d97fe27343218a23ec93427ac7f7654e45e77b3fe08523d
                                              slug:
                                                type: string
                                                const: terms
                                            required:
                                              - digest
                                              - slug
                                            additionalProperties: false
                                          - type: object
                                            properties:
                                              digest:
                                                type: string
                                                const: >-
                                                  sha256:44b4ddbc306824bc9c44f1f2c57892169b3fa737df453897c66f36c8127123f5
                                              slug:
                                                type: string
                                                const: launch-terms
                                            required:
                                              - digest
                                              - slug
                                            additionalProperties: false
                                          - type: object
                                            properties:
                                              digest:
                                                type: string
                                                const: >-
                                                  sha256:3d54b4c54d38211c9cb5b5789e97607bd7c49157f7cff5928d2e348c66d04c84
                                              slug:
                                                type: string
                                                const: risk
                                            required:
                                              - digest
                                              - slug
                                            additionalProperties: false
                                      effectiveAt:
                                        type: string
                                        const: '2026-08-04T00:00:00.000Z'
                                      updatedAt:
                                        type: string
                                        const: '2026-08-12T00:00:00.000Z'
                                      version:
                                        type: string
                                        const: '1.2'
                                    required:
                                      - documentSetDigest
                                      - documents
                                      - effectiveAt
                                      - updatedAt
                                      - version
                                    additionalProperties: false
                                  hash:
                                    type: string
                                    const: >-
                                      sha256:c843cc6204a25e687e40fff5f8033416031fb28d191f40b00e530855d70dd0ce
                                  id:
                                    type: string
                                    const: supanova-permissionless-curve-launch
                                  immutable:
                                    type: boolean
                                    const: true
                                  version:
                                    type: string
                                    const: '3'
                                required:
                                  - document
                                  - hash
                                  - id
                                  - immutable
                                  - version
                                additionalProperties: false
                              proposedInstrument:
                                type: object
                                properties:
                                  instrumentId:
                                    type: object
                                    properties:
                                      admin:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                    required:
                                      - admin
                                      - id
                                    additionalProperties: false
                                  standard:
                                    type: string
                                    const: CIP-0056
                                  status:
                                    type: string
                                    const: proposed
                                required:
                                  - instrumentId
                                  - standard
                                  - status
                                additionalProperties: false
                              proposedSlug:
                                type: string
                                pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
                              quoteHash:
                                type: string
                                pattern: ^sha256:[a-f0-9]{64}$
                              quoteId:
                                type: string
                                format: uuid
                                pattern: >-
                                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              requestHash:
                                type: string
                                pattern: ^sha256:[a-f0-9]{64}$
                              rewardConfiguration:
                                oneOf:
                                  - type: object
                                    properties:
                                      creatorRewardPartyId:
                                        type: string
                                        description: >-
                                          Exact opaque, case-sensitive Canton
                                          Party ID. It is preserved byte-for-byte:
                                          launcher source must equal the verified
                                          launcher Party; external source must
                                          differ.
                                        minLength: 3
                                        maxLength: 512
                                      creatorRewardPartySource:
                                        type: string
                                        enum:
                                          - launcher
                                          - external
                                        description: >-
                                          Authority rule for creatorRewardPartyId:
                                          launcher requires exact equality with
                                          the verified launch wallet Party;
                                          external requires exact inequality.
                                      rewardDestination:
                                        type: string
                                        const: creator
                                    required:
                                      - creatorRewardPartyId
                                      - creatorRewardPartySource
                                      - rewardDestination
                                    additionalProperties: false
                                    description: >-
                                      Creator rewards route only to the exact
                                      immutable Party named by this branch.
                                  - type: object
                                    properties:
                                      rewardDestination:
                                        type: string
                                        const: trader_cashback
                                    required:
                                      - rewardDestination
                                    additionalProperties: false
                                    description: >-
                                      Trader cashback forbids creator Party
                                      source and Party ID fields.
                                description: >-
                                  Strict reward-routing authority union. Party
                                  IDs are opaque and case-sensitive; no
                                  trimming, casing, aliasing, or normalization
                                  is allowed.
                              rewardRoutingPolicy:
                                type: object
                                properties:
                                  authority:
                                    type: object
                                    properties:
                                      prepareRevalidation:
                                        type: string
                                        const: exact-active-verified-wallet-context
                                      quoteBinding:
                                        type: string
                                        const: >-
                                          verified-wallet-connection-party-and-network
                                      quoteReuse:
                                        type: string
                                        const: single-operation-idempotency-key
                                    required:
                                      - prepareRevalidation
                                      - quoteBinding
                                      - quoteReuse
                                    additionalProperties: false
                                  beneficiary:
                                    type: object
                                    properties:
                                      identity:
                                        type: string
                                        const: opaque-case-sensitive-canton-party-id
                                      routes:
                                        type: object
                                        properties:
                                          creator:
                                            type: object
                                            properties:
                                              external:
                                                type: string
                                                const: must-differ-from-launcher-party
                                              launcher:
                                                type: string
                                                const: must-equal-launcher-party
                                              partyId:
                                                type: string
                                                const: required
                                            required:
                                              - external
                                              - launcher
                                              - partyId
                                            additionalProperties: false
                                          trader_cashback:
                                            type: object
                                            properties:
                                              partyId:
                                                type: string
                                                const: forbidden
                                              partySource:
                                                type: string
                                                const: forbidden
                                            required:
                                              - partyId
                                              - partySource
                                            additionalProperties: false
                                        required:
                                          - creator
                                          - trader_cashback
                                        additionalProperties: false
                                    required:
                                      - identity
                                      - routes
                                    additionalProperties: false
                                  hash:
                                    type: string
                                    const: >-
                                      sha256:fe83c99bff082060a46d8a30ea9de61fc1f165ccd2c28c595b85f393accd86dd
                                  id:
                                    type: string
                                    const: supanova-token-launch-reward-routing
                                  immutable:
                                    type: boolean
                                    const: true
                                  privacy:
                                    type: object
                                    properties:
                                      partyIdentifiers:
                                        type: string
                                        const: >-
                                          backend-and-entitled-ledger-projection-only
                                    required:
                                      - partyIdentifiers
                                    additionalProperties: false
                                  settlement:
                                    type: object
                                    properties:
                                      execution:
                                        type: string
                                        const: not-enabled
                                      readiness:
                                        type: string
                                        const: daml-command-builder-not-configured
                                    required:
                                      - execution
                                      - readiness
                                    additionalProperties: false
                                  version:
                                    type: string
                                    const: '1'
                                required:
                                  - authority
                                  - beneficiary
                                  - hash
                                  - id
                                  - immutable
                                  - privacy
                                  - settlement
                                  - version
                                additionalProperties: false
                              type:
                                type: string
                                const: token-launch.create
                              walletContext:
                                type: object
                                properties:
                                  creatorPartyId:
                                    type: string
                                    description: >-
                                      Opaque, case-sensitive Canton Party ID
                                      containing 3-512 Unicode scalar values
                                      with no normalization, edge whitespace, or
                                      C0/C1 control characters.
                                    minLength: 3
                                    maxLength: 512
                                  networkId:
                                    type: string
                                    pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                                  walletConnectionId:
                                    type: string
                                    format: uuid
                                    pattern: >-
                                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                required:
                                  - creatorPartyId
                                  - networkId
                                  - walletConnectionId
                                additionalProperties: false
                              curvePolicy:
                                type: object
                                properties:
                                  hash:
                                    type: string
                                    const: >-
                                      sha256:f0cf06fab397cb2593557dcc8d90701becc653607388286ddbe51a91be73144c
                                  id:
                                    type: string
                                    const: supanova-curve-launch-policy
                                  version:
                                    type: string
                                    const: '1'
                                required:
                                  - hash
                                  - id
                                  - version
                                additionalProperties: false
                              feeConfig:
                                type: object
                                properties:
                                  feeBps:
                                    type: integer
                                    minimum: 0
                                    maximum: 5000
                                  platformShareBps:
                                    type: integer
                                    minimum: 0
                                    maximum: 10000
                                required:
                                  - feeBps
                                  - platformShareBps
                                additionalProperties: false
                              totalSupply:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            required:
                              - creatorRevenuePolicy
                              - creatorRevenuePolicyAcceptance
                              - damlRewardRouting
                              - economics
                              - fees
                              - legalAcceptance
                              - media
                              - metadata
                              - openingBuy
                              - policy
                              - proposedInstrument
                              - proposedSlug
                              - quoteHash
                              - quoteId
                              - requestHash
                              - rewardConfiguration
                              - rewardRoutingPolicy
                              - type
                              - walletContext
                              - curvePolicy
                              - feeConfig
                              - totalSupply
                            additionalProperties: false
                          kind:
                            type: string
                            const: canton.prepare-execute
                          method:
                            type: string
                            const: prepareExecute
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                          operationId:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          readiness:
                            type: string
                            enum:
                              - daml-command-builder-not-configured
                              - ready
                          request:
                            anyOf:
                              - type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - application-submission
                                      - interactive-submission
                                      - wallet-submission
                                  commandId:
                                    type: string
                                    minLength: 1
                                    maxLength: 255
                                  actAs:
                                    minItems: 1
                                    maxItems: 8
                                    type: array
                                    items:
                                      type: string
                                      minLength: 3
                                      maxLength: 512
                                  synchronizerId:
                                    type: string
                                    minLength: 1
                                    maxLength: 512
                                  hashingSchemeVersion:
                                    type: string
                                    minLength: 1
                                    maxLength: 64
                                  signatureFormat:
                                    type: string
                                    const: SIGNATURE_FORMAT_RAW
                                  signingAlgorithmSpec:
                                    type: string
                                    const: SIGNING_ALGORITHM_SPEC_ED25519
                                  signedBy:
                                    anyOf:
                                      - type: string
                                        minLength: 4
                                        maxLength: 160
                                      - type: 'null'
                                  preparedTransaction:
                                    anyOf:
                                      - type: string
                                        maxLength: 4194304
                                      - type: 'null'
                                  preparedTransactionHash:
                                    anyOf:
                                      - type: string
                                        maxLength: 512
                                      - type: 'null'
                                  launchPermit:
                                    type: object
                                    properties:
                                      contractId:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                      operationRef:
                                        type: string
                                        minLength: 1
                                        maxLength: 255
                                      creator:
                                        type: string
                                        description: >-
                                          Opaque, case-sensitive Canton Party ID
                                          containing 3-512 Unicode scalar values
                                          with no normalization, edge whitespace,
                                          or C0/C1 control characters.
                                        minLength: 3
                                        maxLength: 512
                                      instrumentId:
                                        type: string
                                        minLength: 1
                                        maxLength: 512
                                      ticker:
                                        type: string
                                        minLength: 1
                                        maxLength: 64
                                      totalSupply:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      creationFeeCc:
                                        type: string
                                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      expiresAt:
                                        type: string
                                        format: date-time
                                        pattern: >-
                                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                    required:
                                      - contractId
                                      - operationRef
                                      - creator
                                      - instrumentId
                                      - ticker
                                      - totalSupply
                                      - creationFeeCc
                                      - expiresAt
                                    additionalProperties: false
                                    description: >-
                                      supanova-curve 0.3.0 permit-gated launch:
                                      the terms of the registrar-issued
                                      LaunchPermit the creator accepts.
                                      operationRef is the operation id and
                                      creationFeeCc equals the quote
                                      ledgerCreationFeeCc exactly.
                                  walletSubmission:
                                    type: object
                                    properties:
                                      commands:
                                        minItems: 1
                                        maxItems: 1
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            ExerciseCommand:
                                              type: object
                                              properties:
                                                choice:
                                                  type: string
                                                  const: LaunchPermit_Accept
                                                choiceArgument:
                                                  type: object
                                                  properties: {}
                                                  additionalProperties: false
                                                contractId:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 512
                                                templateId:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 512
                                              required:
                                                - choice
                                                - choiceArgument
                                                - contractId
                                                - templateId
                                              additionalProperties: false
                                          required:
                                            - ExerciseCommand
                                          additionalProperties: false
                                      disclosedContracts:
                                        minItems: 1
                                        maxItems: 1
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            contractId:
                                              type: string
                                              minLength: 1
                                              maxLength: 512
                                            createdEventBlob:
                                              type: string
                                              minLength: 1
                                            synchronizerId:
                                              type: string
                                              minLength: 1
                                              maxLength: 512
                                            templateId:
                                              type: string
                                              minLength: 1
                                              maxLength: 512
                                          required:
                                            - contractId
                                            - createdEventBlob
                                            - synchronizerId
                                            - templateId
                                          additionalProperties: false
                                    required:
                                      - commands
                                      - disclosedContracts
                                    additionalProperties: false
                                    description: >-
                                      kind wallet-submission: the commands the
                                      wallet submits itself (one
                                      LaunchPermit_Accept on
                                      launchPermit.contractId, empty argument)
                                      and the permit as the only disclosed
                                      contract.
                                required:
                                  - kind
                                  - commandId
                                  - actAs
                                  - synchronizerId
                                  - hashingSchemeVersion
                                  - signatureFormat
                                  - signingAlgorithmSpec
                                  - signedBy
                                  - preparedTransaction
                                  - preparedTransactionHash
                                additionalProperties: false
                              - type: 'null'
                          standard:
                            type: string
                            const: CIP-0103
                        required:
                          - expiresAt
                          - intent
                          - kind
                          - method
                          - networkId
                          - operationId
                          - readiness
                          - request
                          - standard
                        additionalProperties: false
                    required:
                      - execution
                      - operation
                      - quote
                      - walletAction
                    additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `IDEMPOTENCY_KEY_REQUIRED`,
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: 'The quote does not exist: `TOKEN_LAUNCH_QUOTE_NOT_FOUND`.'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '409':
          description: >-
            The request conflicts with current state, or the Idempotency-Key was
            reused with a different request (`IDEMPOTENCY_KEY_CONFLICT`; the
            former `IDEMPOTENCY_CONFLICT` is a deprecated alias, no longer
            returned, that clients handle the same way for one release). Codes:
            `IDEMPOTENCY_KEY_CONFLICT`, `IDEMPOTENCY_CONFLICT`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '422':
          description: >-
            The quoted launch cannot be prepared: `LAUNCH_MEDIA_NOT_PUBLISHED`,
            `LAUNCH_MEDIA_ROLE_MISMATCH`,
            `CREATOR_REWARD_PARTY_SOURCE_MISMATCH`,
            `TOKEN_LAUNCH_OPENING_BUY_NOT_SUPPORTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Prepare an idempotent wallet review for a quoted token launch.
      tags:
        - token-launches
  /api/v1/token-launches/supply-options:
    get:
      operationId: TokenLaunchSupplyController_supplyOptions_v1
      parameters:
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: >-
            The Registrar allowed supplies under its economics, or the suggested
            set when the Registrar is not readable. Prices are display values
            with significant digits.
          content:
            application/json:
              schema:
                type: object
                properties:
                  asOf:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                  display:
                    type: object
                    properties:
                      kind:
                        type: string
                        const: display-only
                      significantDigits:
                        type: number
                        const: 12
                    required:
                      - kind
                      - significantDigits
                    additionalProperties: false
                  economics:
                    type: object
                    properties:
                      curveAllocationBps:
                        type: integer
                        minimum: 5001
                        maximum: 9999
                      graduationNetCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      maxFeeBps:
                        type: integer
                        minimum: 0
                        maximum: 5000
                      minFeeClaimCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                    required:
                      - curveAllocationBps
                      - graduationNetCc
                      - maxFeeBps
                      - minFeeClaimCc
                    additionalProperties: false
                  feeConfig:
                    anyOf:
                      - type: object
                        properties:
                          feeBps:
                            type: integer
                            minimum: 0
                            maximum: 5000
                          platformShareBps:
                            type: integer
                            minimum: 0
                            maximum: 10000
                        required:
                          - feeBps
                          - platformShareBps
                        additionalProperties: false
                      - type: 'null'
                  options:
                    maxItems: 64
                    type: array
                    items:
                      type: object
                      properties:
                        curveAllocation:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                        dexAllocation:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                        display:
                          type: object
                          properties:
                            openingPriceCcPerToken:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                            openingPricePerMillionTokensCc:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                            smallestSellableLotTokens:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                            terminalPriceCcPerToken:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                            terminalPricePerMillionTokensCc:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                          required:
                            - openingPriceCcPerToken
                            - openingPricePerMillionTokensCc
                            - smallestSellableLotTokens
                            - terminalPriceCcPerToken
                            - terminalPricePerMillionTokensCc
                          additionalProperties: false
                        totalSupply:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      required:
                        - curveAllocation
                        - dexAllocation
                        - display
                        - totalSupply
                      additionalProperties: false
                  policy:
                    type: object
                    properties:
                      hash:
                        type: string
                        const: >-
                          sha256:f0cf06fab397cb2593557dcc8d90701becc653607388286ddbe51a91be73144c
                      id:
                        type: string
                        const: supanova-curve-launch-policy
                      version:
                        type: string
                        const: '1'
                    required:
                      - hash
                      - id
                      - version
                    additionalProperties: false
                  source:
                    type: string
                    enum:
                      - registrar
                      - suggested
                    description: >-
                      registrar: the live Registrar allowed set and economics.
                      suggested: the product default set under the default
                      economics, served when the Registrar cannot be read.
                required:
                  - asOf
                  - display
                  - economics
                  - feeConfig
                  - options
                  - policy
                  - source
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '429':
          $ref: '#/components/responses/RateLimited'
        default:
          $ref: '#/components/responses/ApiError'
      security: []
      summary: >-
        List the total supplies a curve launch may choose, with display opening
        and terminal prices and the smallest sellable lot.
      tags:
        - token-launches
  /api/v1/tokens/{instrumentId}/wallet-metadata:
    get:
      operationId: TokenWalletMetadataController_getWalletMetadata_v1
      parameters:
        - name: instrumentId
          required: true
          in: path
          schema:
            type: string
            minLength: 1
            maxLength: 160
            pattern: ^[A-Za-z0-9][A-Za-z0-9._-]*$
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Wallet metadata of a confirmed curve launch.
          content:
            application/json:
              schema:
                type: object
                properties:
                  instrumentId:
                    type: object
                    properties:
                      admin:
                        type: string
                        minLength: 1
                      id:
                        type: string
                        minLength: 1
                    required:
                      - admin
                      - id
                    additionalProperties: false
                  admin:
                    type: string
                    minLength: 1
                  decimals:
                    type: number
                    const: 10
                  symbol:
                    type: string
                    minLength: 1
                  name:
                    type: string
                    minLength: 1
                  logo:
                    anyOf:
                      - type: object
                        properties:
                          mediaId:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          sha256:
                            type: string
                            pattern: ^[0-9a-f]{64}$
                          contentType:
                            type: string
                            minLength: 1
                        required:
                          - mediaId
                          - sha256
                          - contentType
                        additionalProperties: false
                      - type: 'null'
                  launchedAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                required:
                  - instrumentId
                  - admin
                  - decimals
                  - symbol
                  - name
                  - logo
                  - launchedAt
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No confirmed curve launch has this instrument id.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        default:
          $ref: '#/components/responses/ApiError'
      security: []
      summary: >-
        Read the wallet metadata of a launched token: instrument id, admin
        party, decimals, symbol, name and logo reference.
      tags:
        - token-launches
  /api/v1/orders/prepare:
    post:
      operationId: TradeOrderController_prepare_v1
      parameters:
        - name: Idempotency-Key
          in: header
          required: true
          schema:
            type: string
            minLength: 8
            maxLength: 256
            pattern: ^[A-Za-z0-9._:-]+$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/ApiKeyTimestamp'
        - $ref: '#/components/parameters/ApiKeyRecvWindow'
        - $ref: '#/components/parameters/ApiKeySignature'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                quoteId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                walletConnectionId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              required:
                - quoteId
                - walletConnectionId
              additionalProperties: false
      responses:
        '201':
          description: The create command for sendTransaction.
          content:
            application/json:
              schema:
                type: object
                properties:
                  commandId:
                    type: string
                    minLength: 1
                    maxLength: 255
                  clientRef:
                    type: string
                    minLength: 1
                    maxLength: 255
                  operationId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  partyId:
                    type: string
                    minLength: 1
                  expiresAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  instrumentId:
                    type: string
                    minLength: 1
                    maxLength: 160
                  side:
                    type: string
                    enum:
                      - buy
                      - sell
                  venue:
                    type: string
                    enum:
                      - curve
                      - amm
                  amount:
                    type: string
                  limit:
                    type: string
                  expectedOutput:
                    type: string
                  quote:
                    type: object
                    properties:
                      authority:
                        type: object
                        properties:
                          expiresAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          legs:
                            minItems: 1
                            maxItems: 1
                            type: array
                            items:
                              oneOf:
                                - type: object
                                  properties:
                                    creatorRevenue:
                                      type: object
                                      properties:
                                        eligibility:
                                          type: string
                                          const: eligible
                                        launchId:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        policy:
                                          type: object
                                          properties:
                                            hash:
                                              type: string
                                              const: >-
                                                sha256:21c68b457e7684149d484e6bfb378457c36ea188e01187500367a76bf29cbde6
                                            id:
                                              type: string
                                              const: supanova-creator-revenue-policy
                                            version:
                                              type: string
                                              const: '2'
                                          required:
                                            - hash
                                            - id
                                            - version
                                          additionalProperties: false
                                        protocolRootId:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                      required:
                                        - eligibility
                                        - launchId
                                        - policy
                                        - protocolRootId
                                      additionalProperties: false
                                    lifecycleEpoch:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    market:
                                      type: object
                                      properties:
                                        economics:
                                          type: object
                                          properties:
                                            curveAllocationBps:
                                              type: integer
                                              minimum: 5001
                                              maximum: 9999
                                            graduationNetCc:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            maxFeeBps:
                                              type: integer
                                              minimum: 0
                                              maximum: 5000
                                            minFeeClaimCc:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                          required:
                                            - curveAllocationBps
                                            - graduationNetCc
                                            - maxFeeBps
                                            - minFeeClaimCc
                                          additionalProperties: false
                                        feeConfig:
                                          type: object
                                          properties:
                                            feeBps:
                                              type: integer
                                              minimum: 0
                                              maximum: 10000
                                            platformShareBps:
                                              type: integer
                                              minimum: 0
                                              maximum: 10000
                                          required:
                                            - feeBps
                                            - platformShareBps
                                          additionalProperties: false
                                        totalSupply:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      required:
                                        - economics
                                        - feeConfig
                                        - totalSupply
                                      additionalProperties: false
                                    marketReference:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                    marketRevision:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    nextMarketRevision:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    payInstrument:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                    receiveInstrument:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                    securityEpoch:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    after:
                                      type: object
                                      properties:
                                        graduated:
                                          type: boolean
                                        netCcReserve:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        tokensRemaining:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        tokensSold:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      required:
                                        - graduated
                                        - netCcReserve
                                        - tokensRemaining
                                        - tokensSold
                                      additionalProperties: false
                                    before:
                                      type: object
                                      properties:
                                        graduated:
                                          type: boolean
                                        netCcReserve:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        tokensRemaining:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        tokensSold:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      required:
                                        - graduated
                                        - netCcReserve
                                        - tokensRemaining
                                        - tokensSold
                                      additionalProperties: false
                                    formulaId:
                                      type: string
                                      const: supanova-virtual-cpmm-v1
                                    kind:
                                      type: string
                                      const: virtual-cpmm
                                    lifecycleStage:
                                      type: string
                                      enum:
                                        - ignition
                                        - near_escape
                                    limits:
                                      type: object
                                      properties:
                                        exactFinalGrossCc:
                                          anyOf:
                                            - type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            - type: 'null'
                                        inputAsset:
                                          type: string
                                          enum:
                                            - cc
                                            - token
                                        maximumInputAmount:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        recovery:
                                          type: string
                                          enum:
                                            - exact-final-gross-or-smaller-buy
                                            - sell-all-or-leave-at-least-minimum
                                      required:
                                        - exactFinalGrossCc
                                        - inputAsset
                                        - maximumInputAmount
                                        - recovery
                                      additionalProperties: false
                                  required:
                                    - creatorRevenue
                                    - lifecycleEpoch
                                    - market
                                    - marketReference
                                    - marketRevision
                                    - nextMarketRevision
                                    - payInstrument
                                    - receiveInstrument
                                    - securityEpoch
                                    - after
                                    - before
                                    - formulaId
                                    - kind
                                    - lifecycleStage
                                    - limits
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    creatorRevenue:
                                      type: object
                                      properties:
                                        eligibility:
                                          type: string
                                          const: eligible
                                        launchId:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        policy:
                                          type: object
                                          properties:
                                            hash:
                                              type: string
                                              const: >-
                                                sha256:21c68b457e7684149d484e6bfb378457c36ea188e01187500367a76bf29cbde6
                                            id:
                                              type: string
                                              const: supanova-creator-revenue-policy
                                            version:
                                              type: string
                                              const: '2'
                                          required:
                                            - hash
                                            - id
                                            - version
                                          additionalProperties: false
                                        protocolRootId:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                      required:
                                        - eligibility
                                        - launchId
                                        - policy
                                        - protocolRootId
                                      additionalProperties: false
                                    lifecycleEpoch:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    market:
                                      type: object
                                      properties:
                                        economics:
                                          type: object
                                          properties:
                                            curveAllocationBps:
                                              type: integer
                                              minimum: 5001
                                              maximum: 9999
                                            graduationNetCc:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            maxFeeBps:
                                              type: integer
                                              minimum: 0
                                              maximum: 5000
                                            minFeeClaimCc:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                          required:
                                            - curveAllocationBps
                                            - graduationNetCc
                                            - maxFeeBps
                                            - minFeeClaimCc
                                          additionalProperties: false
                                        feeConfig:
                                          type: object
                                          properties:
                                            feeBps:
                                              type: integer
                                              minimum: 0
                                              maximum: 10000
                                            platformShareBps:
                                              type: integer
                                              minimum: 0
                                              maximum: 10000
                                          required:
                                            - feeBps
                                            - platformShareBps
                                          additionalProperties: false
                                        totalSupply:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      required:
                                        - economics
                                        - feeConfig
                                        - totalSupply
                                      additionalProperties: false
                                    marketReference:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                    marketRevision:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    nextMarketRevision:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    payInstrument:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                    receiveInstrument:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                    securityEpoch:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,18})$
                                    after:
                                      type: object
                                      properties:
                                        anchor:
                                          type: string
                                          enum:
                                            - cc-reserve
                                            - initial
                                            - token-reserve
                                        ccReserve:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        revision:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        tokenReserve:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      required:
                                        - anchor
                                        - ccReserve
                                        - revision
                                        - tokenReserve
                                      additionalProperties: false
                                    before:
                                      type: object
                                      properties:
                                        anchor:
                                          type: string
                                          enum:
                                            - cc-reserve
                                            - initial
                                            - token-reserve
                                        ccReserve:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        revision:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        tokenReserve:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                      required:
                                        - anchor
                                        - ccReserve
                                        - revision
                                        - tokenReserve
                                      additionalProperties: false
                                    formulaId:
                                      type: string
                                      const: supanova-real-cpmm-v1
                                    kind:
                                      type: string
                                      const: real-cpmm
                                    lifecycleStage:
                                      type: string
                                      const: in_orbit
                                    limits:
                                      type: object
                                      properties:
                                        exactFinalGrossCc:
                                          type: 'null'
                                        inputAsset:
                                          type: string
                                          enum:
                                            - cc
                                            - token
                                        maximumInputAmount:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                        recovery:
                                          type: string
                                          const: refresh-on-revision-change
                                      required:
                                        - exactFinalGrossCc
                                        - inputAsset
                                        - maximumInputAmount
                                        - recovery
                                      additionalProperties: false
                                  required:
                                    - creatorRevenue
                                    - lifecycleEpoch
                                    - market
                                    - marketReference
                                    - marketRevision
                                    - nextMarketRevision
                                    - payInstrument
                                    - receiveInstrument
                                    - securityEpoch
                                    - after
                                    - before
                                    - formulaId
                                    - kind
                                    - lifecycleStage
                                    - limits
                                  additionalProperties: false
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                          policy:
                            type: object
                            properties:
                              hash:
                                type: string
                                const: >-
                                  sha256:453dec0f4f64164e6c89bd4fcf9303eafeadd133ca9e119acc5fd6fa694957c2
                              snapshot: {}
                              version:
                                type: string
                                const: '4'
                            required:
                              - hash
                              - snapshot
                              - version
                            additionalProperties: false
                          replay:
                            type: object
                            properties:
                              digest:
                                type: string
                                pattern: ^sha256:[0-9a-f]{64}$
                              domain:
                                type: string
                                const: supanova.swap.quote.v2
                            required:
                              - digest
                              - domain
                            additionalProperties: false
                          synchronizerId:
                            type: string
                            minLength: 1
                            maxLength: 160
                        required:
                          - expiresAt
                          - legs
                          - networkId
                          - policy
                          - replay
                          - synchronizerId
                        additionalProperties: false
                      buyAmount:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      buyInstrument:
                        type: object
                        properties:
                          admin:
                            type: string
                            minLength: 1
                            maxLength: 160
                          id:
                            type: string
                            minLength: 1
                            maxLength: 160
                        required:
                          - admin
                          - id
                        additionalProperties: false
                      creatorRevenueAllocations:
                        minItems: 1
                        maxItems: 1
                        type: array
                        items:
                          type: object
                          properties:
                            basisAmountCc:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            creatorRevenueCc:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            eligibility:
                              type: string
                              const: eligible
                            grossRevenueCc:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            launchId:
                              type: string
                              minLength: 1
                              maxLength: 160
                            marketReference:
                              type: string
                              minLength: 1
                              maxLength: 160
                            policy:
                              type: object
                              properties:
                                hash:
                                  type: string
                                  const: >-
                                    sha256:21c68b457e7684149d484e6bfb378457c36ea188e01187500367a76bf29cbde6
                                id:
                                  type: string
                                  const: supanova-creator-revenue-policy
                                version:
                                  type: string
                                  const: '2'
                              required:
                                - hash
                                - id
                                - version
                              additionalProperties: false
                            protocolRevenueCc:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            protocolRootId:
                              type: string
                              minLength: 1
                              maxLength: 160
                            routeLegCount:
                              type: number
                              const: 1
                            routeLegIndex:
                              type: number
                              const: 0
                            source:
                              type: string
                              enum:
                                - curve-trading-fee
                                - amm-trading-fee
                            tokenInstrument:
                              type: object
                              properties:
                                admin:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                              required:
                                - admin
                                - id
                              additionalProperties: false
                          required:
                            - basisAmountCc
                            - creatorRevenueCc
                            - eligibility
                            - grossRevenueCc
                            - launchId
                            - marketReference
                            - policy
                            - protocolRevenueCc
                            - protocolRootId
                            - routeLegCount
                            - routeLegIndex
                            - source
                            - tokenInstrument
                          additionalProperties: false
                      display:
                        type: object
                        properties:
                          averagePriceCcPerToken:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                          graduationPercentAfter:
                            anyOf:
                              - type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                              - type: 'null'
                          kind:
                            type: string
                            const: display-only
                          priceAfterCcPerToken:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                          priceAfterPerMillionTokensCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                          priceBeforeCcPerToken:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                          priceBeforePerMillionTokensCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                          priceImpactBps:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                          pricePerMillionTokensCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                          rate:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                          significantDigits:
                            type: number
                            const: 12
                        required:
                          - averagePriceCcPerToken
                          - graduationPercentAfter
                          - kind
                          - priceAfterCcPerToken
                          - priceAfterPerMillionTokensCc
                          - priceBeforeCcPerToken
                          - priceBeforePerMillionTokensCc
                          - priceImpactBps
                          - pricePerMillionTokensCc
                          - rate
                          - significantDigits
                        additionalProperties: false
                      economics:
                        type: object
                        properties:
                          curveAllocationBps:
                            type: integer
                            minimum: 5001
                            maximum: 9999
                          graduationNetCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          maxFeeBps:
                            type: integer
                            minimum: 0
                            maximum: 5000
                          minFeeClaimCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                        required:
                          - curveAllocationBps
                          - graduationNetCc
                          - maxFeeBps
                          - minFeeClaimCc
                        additionalProperties: false
                      execution:
                        type: string
                        const: simulated
                      expiresAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      fee:
                        type: object
                        properties:
                          amount:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          asset:
                            type: object
                            properties:
                              admin:
                                type: string
                                minLength: 1
                                maxLength: 160
                              id:
                                type: string
                                minLength: 1
                                maxLength: 160
                            required:
                              - admin
                              - id
                            additionalProperties: false
                          policy:
                            type: string
                            const: ledger-pool-fee-config
                        required:
                          - amount
                          - asset
                          - policy
                        additionalProperties: false
                      feeCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      feeConfig:
                        type: object
                        properties:
                          feeBps:
                            type: integer
                            minimum: 0
                            maximum: 10000
                          platformShareBps:
                            type: integer
                            minimum: 0
                            maximum: 10000
                        required:
                          - feeBps
                          - platformShareBps
                        additionalProperties: false
                      feeLineItems:
                        minItems: 1
                        maxItems: 1
                        type: array
                        items:
                          type: object
                          properties:
                            amount:
                              type: string
                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            instrument:
                              type: object
                              properties:
                                admin:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                              required:
                                - admin
                                - id
                              additionalProperties: false
                            kind:
                              type: string
                              const: trading
                            label:
                              type: string
                              minLength: 1
                              maxLength: 120
                          required:
                            - amount
                            - instrument
                            - kind
                            - label
                          additionalProperties: false
                      issuedAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      makerFeeCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      minimumBuyAmount:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      networkId:
                        type: string
                        pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                      notionalCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      platformFeeCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      referralFeeCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      pricingModel:
                        type: string
                        const: preview-simulation-v2
                      pricingSource:
                        type: object
                        properties:
                          asOf:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          dataMode:
                            type: string
                            const: projected
                          label:
                            type: string
                            const: canton-ledger-acs
                        required:
                          - asOf
                          - dataMode
                          - label
                        additionalProperties: false
                      quoteId:
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      route:
                        minItems: 1
                        maxItems: 1
                        type: array
                        items:
                          type: object
                          properties:
                            payInstrument:
                              type: object
                              properties:
                                admin:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                              required:
                                - admin
                                - id
                              additionalProperties: false
                            receiveInstrument:
                              type: object
                              properties:
                                admin:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                              required:
                                - admin
                                - id
                              additionalProperties: false
                            venue:
                              type: string
                              enum:
                                - canton-dex
                                - launch-curve
                          required:
                            - payInstrument
                            - receiveInstrument
                            - venue
                          additionalProperties: false
                      sellAmount:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      sellInstrument:
                        type: object
                        properties:
                          admin:
                            type: string
                            minLength: 1
                            maxLength: 160
                          id:
                            type: string
                            minLength: 1
                            maxLength: 160
                        required:
                          - admin
                          - id
                        additionalProperties: false
                      settlement:
                        type: object
                        properties:
                          deadline:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          mode:
                            type: string
                            const: atomic-dvp
                          readiness:
                            type: string
                            const: ready
                        required:
                          - deadline
                          - mode
                          - readiness
                        additionalProperties: false
                      slippageBps:
                        type: integer
                        minimum: 1
                        maximum: 5000
                      totalSupply:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      wallet:
                        type: object
                        properties:
                          connectionId:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          partyId:
                            type: string
                            minLength: 1
                            maxLength: 512
                        required:
                          - connectionId
                          - partyId
                        additionalProperties: false
                      allowPartialFill:
                        type: boolean
                      fill:
                        type: string
                        enum:
                          - full
                          - partial
                      grossCcUsed:
                        anyOf:
                          - type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          - type: 'null'
                      unspentCc:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      graduates:
                        type: boolean
                      limitTokenOut:
                        type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                    required:
                      - authority
                      - buyAmount
                      - buyInstrument
                      - creatorRevenueAllocations
                      - display
                      - economics
                      - execution
                      - expiresAt
                      - fee
                      - feeCc
                      - feeConfig
                      - feeLineItems
                      - issuedAt
                      - makerFeeCc
                      - minimumBuyAmount
                      - networkId
                      - notionalCc
                      - platformFeeCc
                      - pricingModel
                      - pricingSource
                      - quoteId
                      - route
                      - sellAmount
                      - sellInstrument
                      - settlement
                      - slippageBps
                      - totalSupply
                      - wallet
                    additionalProperties: false
                  actAs:
                    minItems: 1
                    maxItems: 1
                    type: array
                    items:
                      type: string
                      minLength: 1
                  commands:
                    minItems: 1
                    maxItems: 1
                    type: array
                    items:
                      type: object
                      propertyNames:
                        type: string
                      additionalProperties: {}
                  disclosedContracts:
                    maxItems: 0
                    type: array
                    items:
                      type: object
                      propertyNames:
                        type: string
                      additionalProperties: {}
                  packageIdSelectionPreference:
                    maxItems: 4
                    type: array
                    items:
                      type: string
                      pattern: ^[0-9a-f]{64}$
                required:
                  - commandId
                  - clientRef
                  - operationId
                  - partyId
                  - expiresAt
                  - instrumentId
                  - side
                  - venue
                  - amount
                  - limit
                  - expectedOutput
                  - quote
                  - actAs
                  - commands
                  - disclosedContracts
                  - packageIdSelectionPreference
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            Malformed body or missing Idempotency-Key. Also:
            `VALIDATION_FAILED`, `IDEMPOTENCY_KEY_REQUIRED`,
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`, `API_KEY_INVALID`,
            `API_KEY_REVOKED`, `API_KEY_SIGNATURE_INVALID`,
            `API_KEY_TIMESTAMP_OUT_OF_WINDOW`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            Wallet not owned, or the Party is not allowed. Also:
            `ACCOUNT_RESTRICTED`, `ANONYMOUS_ACCOUNT_NOT_ALLOWED`,
            `API_KEY_ROUTE_NOT_ALLOWED`, `SERVICE_PARTY_NOT_ALLOWED`,
            `SERVICE_PRINCIPAL_NOT_ALLOWED`, `SIGNUP_NOT_INVITED`,
            `API_KEY_IP_NOT_ALLOWED`, `PRODUCT_ACCOUNT_RESTRICTED`,
            `API_KEY_SCOPE_REQUIRED`, `API_KEY_PARTY_NOT_AUTHORIZED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: Unknown quote, or no live pool for the token.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '409':
          description: >-
            Quote/wallet mismatch, reused key, or a paused pool. Also:
            `IDEMPOTENCY_KEY_CONFLICT`, `IDEMPOTENCY_CONFLICT`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '422':
          description: The pool cannot take this order.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            The ledger or database is unavailable. Also:
            `AUTHENTICATION_UNAVAILABLE`, `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
        - apiKey: []
      summary: Prepare one wallet-signed TradeOrder create from a bound quote.
      tags:
        - trade orders
      x-api-key-scope: trade
  /api/v1/orders/hosted:
    post:
      operationId: TradeOrderController_submitHosted_v1
      parameters:
        - name: Idempotency-Key
          in: header
          required: true
          schema:
            type: string
            minLength: 8
            maxLength: 256
            pattern: ^[A-Za-z0-9._:-]+$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/ApiKeyTimestamp'
        - $ref: '#/components/parameters/ApiKeyRecvWindow'
        - $ref: '#/components/parameters/ApiKeySignature'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                quoteId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                walletConnectionId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              required:
                - quoteId
                - walletConnectionId
              additionalProperties: false
      responses:
        '201':
          description: The order intent after submission.
          content:
            application/json:
              schema:
                type: object
                properties:
                  commandId:
                    type: string
                  clientRef:
                    type: string
                  operationId:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: 'null'
                  partyId:
                    type: string
                  status:
                    type: string
                    enum:
                      - pending
                      - open
                      - filled
                      - rejected
                      - cancelled
                      - expired
                  orderId:
                    type:
                      - string
                      - 'null'
                  instrumentId:
                    type: string
                  side:
                    type: string
                    enum:
                      - buy
                      - sell
                  amount:
                    type: string
                  limit:
                    type: string
                  venue:
                    anyOf:
                      - type: string
                        enum:
                          - curve
                          - amm
                      - type: 'null'
                  reason:
                    type:
                      - string
                      - 'null'
                  expiresAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  createUpdateId:
                    type:
                      - string
                      - 'null'
                  closingUpdateId:
                    type:
                      - string
                      - 'null'
                  closingRecordTime:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: 'null'
                  settled:
                    anyOf:
                      - type: object
                        properties:
                          venue:
                            type: string
                            enum:
                              - curve
                              - amm
                          side:
                            type: string
                            enum:
                              - buy
                              - sell
                          ccIn:
                            type:
                              - string
                              - 'null'
                          ccOut:
                            type:
                              - string
                              - 'null'
                          tokenIn:
                            type:
                              - string
                              - 'null'
                          tokenOut:
                            type:
                              - string
                              - 'null'
                          feeCc:
                            type: string
                          platformFeeCc:
                            type: string
                          makerFeeCc:
                            type: string
                          referralFeeCc:
                            type: string
                          balanceCidAfter:
                            type: string
                          holdingCid:
                            type:
                              - string
                              - 'null'
                          changeCid:
                            type:
                              - string
                              - 'null'
                          graduates:
                            type: boolean
                          partial:
                            type: boolean
                          requestedGrossCc:
                            type:
                              - string
                              - 'null'
                          unspentCc:
                            type:
                              - string
                              - 'null'
                        required:
                          - venue
                          - side
                          - ccIn
                          - ccOut
                          - tokenIn
                          - tokenOut
                          - feeCc
                          - platformFeeCc
                          - makerFeeCc
                          - balanceCidAfter
                          - holdingCid
                          - changeCid
                          - graduates
                          - partial
                          - requestedGrossCc
                          - unspentCc
                        additionalProperties: false
                      - type: 'null'
                  error:
                    anyOf:
                      - type: object
                        properties:
                          code:
                            type: string
                          message:
                            type: string
                        required:
                          - code
                          - message
                        additionalProperties: false
                      - type: 'null'
                required:
                  - commandId
                  - clientRef
                  - operationId
                  - partyId
                  - status
                  - orderId
                  - instrumentId
                  - side
                  - amount
                  - limit
                  - venue
                  - reason
                  - expiresAt
                  - createUpdateId
                  - closingUpdateId
                  - closingRecordTime
                  - settled
                  - error
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            Malformed body or missing Idempotency-Key. Also:
            `VALIDATION_FAILED`, `IDEMPOTENCY_KEY_REQUIRED`,
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`, `API_KEY_INVALID`,
            `API_KEY_REVOKED`, `API_KEY_SIGNATURE_INVALID`,
            `API_KEY_TIMESTAMP_OUT_OF_WINDOW`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            Wallet not owned, or the Party is not hosted. Also:
            `ACCOUNT_RESTRICTED`, `ANONYMOUS_ACCOUNT_NOT_ALLOWED`,
            `API_KEY_ROUTE_NOT_ALLOWED`, `SERVICE_PARTY_NOT_ALLOWED`,
            `SERVICE_PRINCIPAL_NOT_ALLOWED`, `SIGNUP_NOT_INVITED`,
            `API_KEY_IP_NOT_ALLOWED`, `PRODUCT_ACCOUNT_RESTRICTED`,
            `API_KEY_SCOPE_REQUIRED`, `API_KEY_PARTY_NOT_AUTHORIZED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: Unknown quote, or no live pool for the token.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '409':
          description: >-
            Quote/wallet mismatch, reused key, or rejected create. Also:
            `IDEMPOTENCY_KEY_CONFLICT`, `IDEMPOTENCY_CONFLICT`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            The ledger or database is unavailable. Also:
            `AUTHENTICATION_UNAVAILABLE`, `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
        - apiKey: []
      summary: Create a TradeOrder for an allow-listed hosted Party.
      tags:
        - trade orders
      x-api-key-scope: trade
  /api/v1/orders/{commandId}/status:
    get:
      operationId: TradeOrderController_status_v1
      parameters:
        - name: commandId
          required: true
          in: path
          schema:
            type: string
            minLength: 1
            maxLength: 255
            pattern: ^[A-Za-z0-9._:-]+$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: The order intent as the ledger settled it.
          content:
            application/json:
              schema:
                type: object
                properties:
                  commandId:
                    type: string
                  clientRef:
                    type: string
                  operationId:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: 'null'
                  partyId:
                    type: string
                  status:
                    type: string
                    enum:
                      - pending
                      - open
                      - filled
                      - rejected
                      - cancelled
                      - expired
                  orderId:
                    type:
                      - string
                      - 'null'
                  instrumentId:
                    type: string
                  side:
                    type: string
                    enum:
                      - buy
                      - sell
                  amount:
                    type: string
                  limit:
                    type: string
                  venue:
                    anyOf:
                      - type: string
                        enum:
                          - curve
                          - amm
                      - type: 'null'
                  reason:
                    type:
                      - string
                      - 'null'
                  expiresAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  createUpdateId:
                    type:
                      - string
                      - 'null'
                  closingUpdateId:
                    type:
                      - string
                      - 'null'
                  closingRecordTime:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: 'null'
                  settled:
                    anyOf:
                      - type: object
                        properties:
                          venue:
                            type: string
                            enum:
                              - curve
                              - amm
                          side:
                            type: string
                            enum:
                              - buy
                              - sell
                          ccIn:
                            type:
                              - string
                              - 'null'
                          ccOut:
                            type:
                              - string
                              - 'null'
                          tokenIn:
                            type:
                              - string
                              - 'null'
                          tokenOut:
                            type:
                              - string
                              - 'null'
                          feeCc:
                            type: string
                          platformFeeCc:
                            type: string
                          makerFeeCc:
                            type: string
                          referralFeeCc:
                            type: string
                          balanceCidAfter:
                            type: string
                          holdingCid:
                            type:
                              - string
                              - 'null'
                          changeCid:
                            type:
                              - string
                              - 'null'
                          graduates:
                            type: boolean
                          partial:
                            type: boolean
                          requestedGrossCc:
                            type:
                              - string
                              - 'null'
                          unspentCc:
                            type:
                              - string
                              - 'null'
                        required:
                          - venue
                          - side
                          - ccIn
                          - ccOut
                          - tokenIn
                          - tokenOut
                          - feeCc
                          - platformFeeCc
                          - makerFeeCc
                          - balanceCidAfter
                          - holdingCid
                          - changeCid
                          - graduates
                          - partial
                          - requestedGrossCc
                          - unspentCc
                        additionalProperties: false
                      - type: 'null'
                  error:
                    anyOf:
                      - type: object
                        properties:
                          code:
                            type: string
                          message:
                            type: string
                        required:
                          - code
                          - message
                        additionalProperties: false
                      - type: 'null'
                required:
                  - commandId
                  - clientRef
                  - operationId
                  - partyId
                  - status
                  - orderId
                  - instrumentId
                  - side
                  - amount
                  - limit
                  - venue
                  - reason
                  - expiresAt
                  - createUpdateId
                  - closingUpdateId
                  - closingRecordTime
                  - settled
                  - error
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`, `API_KEY_INVALID`,
            `API_KEY_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Owner routes accept only a
            customer API key: an internal master key answers
            `API_KEY_ROUTE_NOT_ALLOWED`. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`, `API_KEY_IP_NOT_ALLOWED`,
            `PRODUCT_ACCOUNT_RESTRICTED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No such owned order.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
        - apiKey: []
      summary: >-
        Status of an order: pending, open, filled, rejected, cancelled or
        expired.
      tags:
        - trade orders
      x-api-key-scope: read
  /api/v1/orders/{orderId}/cancel/prepare:
    post:
      operationId: TradeOrderController_prepareCancel_v1
      parameters:
        - name: orderId
          required: true
          in: path
          schema:
            type: string
            minLength: 1
            maxLength: 255
            pattern: ^[A-Za-z0-9._:-]+$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/ApiKeyTimestamp'
        - $ref: '#/components/parameters/ApiKeyRecvWindow'
        - $ref: '#/components/parameters/ApiKeySignature'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '201':
          description: The cancel command for sendTransaction.
          content:
            application/json:
              schema:
                type: object
                properties:
                  commandId:
                    type: string
                    minLength: 1
                    maxLength: 255
                  orderId:
                    type: string
                    minLength: 1
                  partyId:
                    type: string
                    minLength: 1
                  actAs:
                    minItems: 1
                    maxItems: 1
                    type: array
                    items:
                      type: string
                      minLength: 1
                  commands:
                    minItems: 1
                    maxItems: 1
                    type: array
                    items:
                      type: object
                      propertyNames:
                        type: string
                      additionalProperties: {}
                  disclosedContracts:
                    maxItems: 0
                    type: array
                    items:
                      type: object
                      propertyNames:
                        type: string
                      additionalProperties: {}
                  packageIdSelectionPreference:
                    maxItems: 4
                    type: array
                    items:
                      type: string
                      pattern: ^[0-9a-f]{64}$
                required:
                  - commandId
                  - orderId
                  - partyId
                  - actAs
                  - commands
                  - disclosedContracts
                  - packageIdSelectionPreference
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`, `API_KEY_INVALID`,
            `API_KEY_REVOKED`, `API_KEY_SIGNATURE_INVALID`,
            `API_KEY_TIMESTAMP_OUT_OF_WINDOW`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`, `API_KEY_IP_NOT_ALLOWED`,
            `PRODUCT_ACCOUNT_RESTRICTED`, `API_KEY_SCOPE_REQUIRED`,
            `API_KEY_PARTY_NOT_AUTHORIZED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No such owned order.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '409':
          description: The order is no longer open.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            The ledger or database is unavailable. Also:
            `AUTHENTICATION_UNAVAILABLE`, `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
        - apiKey: []
      summary: Prepare the wallet-signed TradeOrder_Cancel of an open order.
      tags:
        - trade orders
      x-api-key-scope: trade
  /api/v1/me/trading-referrals:
    get:
      operationId: TradingReferralsController_summary_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Network-scoped referral summary.
          content:
            application/json:
              schema:
                type: object
                properties:
                  schemaVersion:
                    type: string
                    const: '2'
                  networkId:
                    type: string
                    minLength: 1
                  status:
                    type: string
                    enum:
                      - active
                      - pending
                  code:
                    anyOf:
                      - type: string
                        pattern: ^[a-z][a-z0-9_]{2,23}$
                      - type: 'null'
                  inviteUrl:
                    anyOf:
                      - type: string
                        format: uri
                      - type: 'null'
                  referralRateBps:
                    type: number
                    const: 1000
                  refereeCount:
                    anyOf:
                      - type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      - type: 'null'
                  earnedCc:
                    anyOf:
                      - type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      - type: 'null'
                  paidCc:
                    anyOf:
                      - type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      - type: 'null'
                  owedCc:
                    anyOf:
                      - type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      - type: 'null'
                  earnedUsd:
                    anyOf:
                      - type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      - type: 'null'
                  paidUsd:
                    anyOf:
                      - type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      - type: 'null'
                  owedUsd:
                    anyOf:
                      - type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      - type: 'null'
                  nextPayoutAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: 'null'
                  asOf:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                required:
                  - schemaVersion
                  - networkId
                  - status
                  - code
                  - inviteUrl
                  - referralRateBps
                  - refereeCount
                  - earnedCc
                  - paidCc
                  - owedCc
                  - earnedUsd
                  - paidUsd
                  - owedUsd
                  - nextPayoutAt
                  - asOf
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: >-
        Read this account's referral code, invite URL, referees and ledger
        earnings (earned, paid, owed).
      tags:
        - trading-referrals
  /api/v1/me/trading-referrals/payouts:
    get:
      operationId: TradingReferralsController_payouts_v1
      parameters:
        - name: cursor
          required: false
          in: query
          schema:
            type: string
            pattern: ^[A-Za-z0-9_-]{1,512}$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: One page of ledger payout receipts.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    maxItems: 200
                    type: array
                    items:
                      type: object
                      properties:
                        epoch:
                          type: integer
                          exclusiveMinimum: 0
                          maximum: 9007199254740991
                        amountCc:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                        paidAt:
                          type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        updateId:
                          type: string
                          minLength: 1
                          maxLength: 512
                      required:
                        - epoch
                        - amountCc
                        - paidAt
                        - updateId
                      additionalProperties: false
                  nextCursor:
                    anyOf:
                      - type: string
                        minLength: 1
                        maxLength: 512
                      - type: 'null'
                required:
                  - items
                  - nextCursor
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: List referral payouts credited to this account, newest first.
      tags:
        - trading-referrals
  /api/v1/me/trading-referral:
    post:
      operationId: TradingReferralsController_accept_v1
      parameters:
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                username:
                  type: string
                  pattern: ^[a-z][a-z0-9_]{2,23}$
              required:
                - username
              additionalProperties: false
      responses:
        '200':
          description: Idempotent attribution result.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - accepted
                      - already-attributed
                      - ineligible
                required:
                  - status
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Accept one referral before the first prepared trade.
      tags:
        - trading-referrals
  /api/v1/referrals/{username}:
    get:
      operationId: PublicTradingReferralsController_resolve_v1
      parameters:
        - name: username
          required: true
          in: path
          schema:
            type: string
            pattern: ^[a-z][a-z0-9_]{2,23}$
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Canonical referral invitation.
          content:
            application/json:
              schema:
                type: object
                properties:
                  schemaVersion:
                    type: string
                    const: '1'
                  networkId:
                    type: string
                    minLength: 1
                  status:
                    type: string
                    const: active
                  username:
                    type: string
                    pattern: ^[a-z][a-z0-9_]{2,23}$
                  sharePath:
                    type: string
                  referralRateBps:
                    type: number
                    const: 1000
                required:
                  - schemaVersion
                  - networkId
                  - status
                  - username
                  - sharePath
                  - referralRateBps
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '404':
          description: No resource the caller may see matches the path.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        default:
          $ref: '#/components/responses/ApiError'
      summary: Resolve an active invitation without disclosing account identifiers.
      tags:
        - trading-referrals
      security: []
  /api/v1/fee-claims/maker/{commandId}/status:
    get:
      operationId: MakerFeeClaimStatusController_status_v1
      parameters:
        - name: commandId
          required: true
          in: path
          schema:
            type: string
            minLength: 1
            maxLength: 255
            pattern: ^[A-Za-z0-9._:-]+$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: The reconciled claim outcome.
          content:
            application/json:
              schema:
                type: object
                properties:
                  commandId:
                    type: string
                    minLength: 1
                    maxLength: 255
                  partyId:
                    type: string
                    minLength: 1
                  walletConnectionId:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: 'null'
                  instrumentId:
                    type: string
                    minLength: 1
                    maxLength: 160
                  venue:
                    type: string
                    enum:
                      - curve
                      - amm
                  status:
                    type: string
                    enum:
                      - pending
                      - confirmed
                      - rejected
                      - expired
                      - unknown
                  preparedClaimCc:
                    type: string
                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                  claimedCc:
                    anyOf:
                      - type: string
                        pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                      - type: 'null'
                  expiresAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  updateId:
                    type:
                      - string
                      - 'null'
                  recordTime:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: 'null'
                  error:
                    anyOf:
                      - type: object
                        properties:
                          code:
                            type: string
                          message:
                            type: string
                          rePrepare:
                            type: boolean
                        required:
                          - code
                          - message
                        additionalProperties: false
                      - type: 'null'
                required:
                  - commandId
                  - partyId
                  - walletConnectionId
                  - instrumentId
                  - venue
                  - status
                  - preparedClaimCc
                  - claimedCc
                  - expiresAt
                  - updateId
                  - recordTime
                  - error
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No such prepared claim of this account and network.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: >-
        Ledger-confirmed outcome of the caller's prepared maker fee claim, with
        the exact credited amount.
      tags:
        - fee claims
  /api/v1/trades/prepare:
    post:
      operationId: UserSignedTradeController_prepare_v1
      parameters:
        - name: Idempotency-Key
          in: header
          required: true
          schema:
            type: string
            minLength: 8
            maxLength: 256
            pattern: ^[A-Za-z0-9._:-]+$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                quoteId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                walletConnectionId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              required:
                - quoteId
                - walletConnectionId
              additionalProperties: false
      responses:
        '201':
          description: Commands and disclosed contracts for sendTransaction.
          content:
            application/json:
              schema:
                type: object
                properties:
                  commandId:
                    type: string
                    minLength: 1
                    maxLength: 255
                  operationId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  partyId:
                    type: string
                    minLength: 1
                  expiresAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  quote:
                    anyOf:
                      - type: object
                        properties:
                          authority:
                            type: object
                            properties:
                              expiresAt:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              legs:
                                minItems: 1
                                maxItems: 2
                                type: array
                                items:
                                  oneOf:
                                    - type: object
                                      properties:
                                        creatorRevenue:
                                          oneOf:
                                            - type: object
                                              properties:
                                                eligibility:
                                                  type: string
                                                  const: eligible
                                                launchId:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 96
                                                policy:
                                                  type: object
                                                  properties:
                                                    hash:
                                                      type: string
                                                      const: >-
                                                        sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                                                    id:
                                                      type: string
                                                      const: supanova-creator-revenue-policy
                                                    version:
                                                      type: string
                                                      const: '1'
                                                  required:
                                                    - hash
                                                    - id
                                                    - version
                                                  additionalProperties: false
                                                protocolRootId:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                              required:
                                                - eligibility
                                                - launchId
                                                - policy
                                                - protocolRootId
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                eligibility:
                                                  type: string
                                                  const: ineligible
                                                reason:
                                                  type: string
                                                  enum:
                                                    - legacy-no-policy
                                                    - not-supanova-launch
                                                    - trader-cashback
                                              required:
                                                - eligibility
                                                - reason
                                              additionalProperties: false
                                        lifecycleEpoch:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        marketReference:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        marketRevision:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        nextMarketRevision:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        payInstrument:
                                          type: object
                                          properties:
                                            admin:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                          required:
                                            - admin
                                            - id
                                          additionalProperties: false
                                        receiveInstrument:
                                          type: object
                                          properties:
                                            admin:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                          required:
                                            - admin
                                            - id
                                          additionalProperties: false
                                        securityEpoch:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        after:
                                          type: object
                                          properties:
                                            formulaId:
                                              type: string
                                              const: supanova-virtual-cpmm-v1
                                            graduated:
                                              type: boolean
                                            graduationPercent:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            marginalPriceCcPerToken:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            netCcReserve:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            tokensRemaining:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            tokensSold:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                          required:
                                            - formulaId
                                            - graduated
                                            - graduationPercent
                                            - marginalPriceCcPerToken
                                            - netCcReserve
                                            - tokensRemaining
                                            - tokensSold
                                          additionalProperties: false
                                        before:
                                          type: object
                                          properties:
                                            formulaId:
                                              type: string
                                              const: supanova-virtual-cpmm-v1
                                            graduated:
                                              type: boolean
                                            graduationPercent:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            marginalPriceCcPerToken:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            netCcReserve:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            tokensRemaining:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            tokensSold:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                          required:
                                            - formulaId
                                            - graduated
                                            - graduationPercent
                                            - marginalPriceCcPerToken
                                            - netCcReserve
                                            - tokensRemaining
                                            - tokensSold
                                          additionalProperties: false
                                        formulaId:
                                          type: string
                                          const: supanova-virtual-cpmm-v1
                                        kind:
                                          type: string
                                          const: virtual-cpmm
                                        lifecycleStage:
                                          type: string
                                          enum:
                                            - ignition
                                            - near_escape
                                        limits:
                                          type: object
                                          properties:
                                            exactFinalGrossCc:
                                              anyOf:
                                                - type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                - type: 'null'
                                            inputAsset:
                                              type: string
                                              enum:
                                                - cc
                                                - token
                                            maximumInputAmount:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            recovery:
                                              type: string
                                              enum:
                                                - exact-final-gross-or-smaller-buy
                                                - sell-all-or-leave-at-least-minimum
                                          required:
                                            - exactFinalGrossCc
                                            - inputAsset
                                            - maximumInputAmount
                                            - recovery
                                          additionalProperties: false
                                      required:
                                        - creatorRevenue
                                        - lifecycleEpoch
                                        - marketReference
                                        - marketRevision
                                        - nextMarketRevision
                                        - payInstrument
                                        - receiveInstrument
                                        - securityEpoch
                                        - after
                                        - before
                                        - formulaId
                                        - kind
                                        - lifecycleStage
                                        - limits
                                      additionalProperties: false
                                    - type: object
                                      properties:
                                        creatorRevenue:
                                          oneOf:
                                            - type: object
                                              properties:
                                                eligibility:
                                                  type: string
                                                  const: eligible
                                                launchId:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 96
                                                policy:
                                                  type: object
                                                  properties:
                                                    hash:
                                                      type: string
                                                      const: >-
                                                        sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                                                    id:
                                                      type: string
                                                      const: supanova-creator-revenue-policy
                                                    version:
                                                      type: string
                                                      const: '1'
                                                  required:
                                                    - hash
                                                    - id
                                                    - version
                                                  additionalProperties: false
                                                protocolRootId:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                              required:
                                                - eligibility
                                                - launchId
                                                - policy
                                                - protocolRootId
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                eligibility:
                                                  type: string
                                                  const: ineligible
                                                reason:
                                                  type: string
                                                  enum:
                                                    - legacy-no-policy
                                                    - not-supanova-launch
                                                    - trader-cashback
                                              required:
                                                - eligibility
                                                - reason
                                              additionalProperties: false
                                        lifecycleEpoch:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        marketReference:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        marketRevision:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        nextMarketRevision:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        payInstrument:
                                          type: object
                                          properties:
                                            admin:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                          required:
                                            - admin
                                            - id
                                          additionalProperties: false
                                        receiveInstrument:
                                          type: object
                                          properties:
                                            admin:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                          required:
                                            - admin
                                            - id
                                          additionalProperties: false
                                        securityEpoch:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        after:
                                          type: object
                                          properties:
                                            anchor:
                                              type: string
                                              enum:
                                                - cc-reserve
                                                - initial
                                                - token-reserve
                                            ccReserve:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            formulaId:
                                              type: string
                                              const: supanova-real-cpmm-v1
                                            invariant:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            marginalPriceCcPerToken:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            revision:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                            tokenReserve:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                          required:
                                            - anchor
                                            - ccReserve
                                            - formulaId
                                            - invariant
                                            - marginalPriceCcPerToken
                                            - revision
                                            - tokenReserve
                                          additionalProperties: false
                                        before:
                                          type: object
                                          properties:
                                            anchor:
                                              type: string
                                              enum:
                                                - cc-reserve
                                                - initial
                                                - token-reserve
                                            ccReserve:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            formulaId:
                                              type: string
                                              const: supanova-real-cpmm-v1
                                            invariant:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            marginalPriceCcPerToken:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            revision:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                            tokenReserve:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                          required:
                                            - anchor
                                            - ccReserve
                                            - formulaId
                                            - invariant
                                            - marginalPriceCcPerToken
                                            - revision
                                            - tokenReserve
                                          additionalProperties: false
                                        formulaId:
                                          type: string
                                          const: supanova-real-cpmm-v1
                                        kind:
                                          type: string
                                          const: real-cpmm
                                        lifecycleStage:
                                          type: string
                                          const: in_orbit
                                        limits:
                                          type: object
                                          properties:
                                            exactFinalGrossCc:
                                              type: 'null'
                                            inputAsset:
                                              type: string
                                              enum:
                                                - cc
                                                - token
                                            maximumInputAmount:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            recovery:
                                              type: string
                                              const: refresh-on-revision-change
                                          required:
                                            - exactFinalGrossCc
                                            - inputAsset
                                            - maximumInputAmount
                                            - recovery
                                          additionalProperties: false
                                      required:
                                        - creatorRevenue
                                        - lifecycleEpoch
                                        - marketReference
                                        - marketRevision
                                        - nextMarketRevision
                                        - payInstrument
                                        - receiveInstrument
                                        - securityEpoch
                                        - after
                                        - before
                                        - formulaId
                                        - kind
                                        - lifecycleStage
                                        - limits
                                      additionalProperties: false
                                    - type: object
                                      properties:
                                        creatorRevenue:
                                          oneOf:
                                            - type: object
                                              properties:
                                                eligibility:
                                                  type: string
                                                  const: eligible
                                                launchId:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 96
                                                policy:
                                                  type: object
                                                  properties:
                                                    hash:
                                                      type: string
                                                      const: >-
                                                        sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                                                    id:
                                                      type: string
                                                      const: supanova-creator-revenue-policy
                                                    version:
                                                      type: string
                                                      const: '1'
                                                  required:
                                                    - hash
                                                    - id
                                                    - version
                                                  additionalProperties: false
                                                protocolRootId:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 160
                                              required:
                                                - eligibility
                                                - launchId
                                                - policy
                                                - protocolRootId
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                eligibility:
                                                  type: string
                                                  const: ineligible
                                                reason:
                                                  type: string
                                                  enum:
                                                    - legacy-no-policy
                                                    - not-supanova-launch
                                                    - trader-cashback
                                              required:
                                                - eligibility
                                                - reason
                                              additionalProperties: false
                                        lifecycleEpoch:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        marketReference:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        marketRevision:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        nextMarketRevision:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        payInstrument:
                                          type: object
                                          properties:
                                            admin:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                          required:
                                            - admin
                                            - id
                                          additionalProperties: false
                                        receiveInstrument:
                                          type: object
                                          properties:
                                            admin:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                          required:
                                            - admin
                                            - id
                                          additionalProperties: false
                                        securityEpoch:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        after:
                                          type: object
                                          properties:
                                            priceCcPerToken:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            revision:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                          required:
                                            - priceCcPerToken
                                            - revision
                                          additionalProperties: false
                                        before:
                                          type: object
                                          properties:
                                            priceCcPerToken:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            revision:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                          required:
                                            - priceCcPerToken
                                            - revision
                                          additionalProperties: false
                                        formulaId:
                                          type: string
                                          const: supanova-static-preview-v1
                                        kind:
                                          type: string
                                          const: static-preview
                                        lifecycleStage:
                                          type: string
                                          const: in_orbit
                                        limits:
                                          type: object
                                          properties:
                                            exactFinalGrossCc:
                                              type: 'null'
                                            inputAsset:
                                              type: string
                                              enum:
                                                - cc
                                                - token
                                            maximumInputAmount:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            recovery:
                                              type: string
                                              const: refresh-on-revision-change
                                          required:
                                            - exactFinalGrossCc
                                            - inputAsset
                                            - maximumInputAmount
                                            - recovery
                                          additionalProperties: false
                                      required:
                                        - creatorRevenue
                                        - lifecycleEpoch
                                        - marketReference
                                        - marketRevision
                                        - nextMarketRevision
                                        - payInstrument
                                        - receiveInstrument
                                        - securityEpoch
                                        - after
                                        - before
                                        - formulaId
                                        - kind
                                        - lifecycleStage
                                        - limits
                                      additionalProperties: false
                              networkId:
                                type: string
                                pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                              policy:
                                type: object
                                properties:
                                  hash:
                                    type: string
                                    const: >-
                                      sha256:1c1bcf37c26e0c4c84af752e9f76447a82f8b22ba8c851f1cf070eccc43f548e
                                  snapshot:
                                    type: object
                                    properties:
                                      amm:
                                        type: object
                                        properties:
                                          authorizationMaxTtlSeconds:
                                            type: number
                                            const: 900
                                          fee:
                                            type: object
                                            properties:
                                              asset:
                                                type: string
                                                const: cc
                                              buySide:
                                                type: string
                                                const: deduct-from-gross-before-cc-enters-pool
                                              policy:
                                                type: string
                                                const: outside-active-reserves
                                              rate:
                                                type: string
                                                const: '0.01'
                                              routing:
                                                type: string
                                                const: creator-revenue-policy-outside-pool
                                              sellSide:
                                                type: string
                                                const: >-
                                                  deduct-from-gross-cc-after-cc-leaves-pool
                                            required:
                                              - asset
                                              - buySide
                                              - policy
                                              - rate
                                              - routing
                                              - sellSide
                                            additionalProperties: false
                                          formulaId:
                                            type: string
                                            const: supanova-real-cpmm-v1
                                          goldenManifestDigest:
                                            type: string
                                            const: >-
                                              sha256:7fc5b0d592eaf85cb083775101efe73a099b404e6334cd85ac1683ac753626d0
                                          invariant:
                                            type: object
                                            properties:
                                              anchor:
                                                type: string
                                                const: '50000000000000'
                                              anchorRelation:
                                                type: string
                                                const: >-
                                                  initial=exact-seed;buy=tokenReserve==round10(k/ccReserve);sell=ccReserve==round10(k/tokenReserve)
                                              driftPolicy:
                                                type: string
                                                const: reject-any-noncanonical-anchor-relation
                                              transition:
                                                type: string
                                                const: >-
                                                  oppositeReserve=round10(k/nextInputReserve)
                                            required:
                                              - anchor
                                              - anchorRelation
                                              - driftPolicy
                                              - transition
                                            additionalProperties: false
                                          initialRealCcReserve:
                                            type: string
                                            const: '250000'
                                          initialRealTokenReserve:
                                            type: string
                                            const: '200000000'
                                          lifecycle:
                                            type: string
                                            const: >-
                                              atomic-graduation-seed-then-revisioned-real-reserve
                                          minimumGrossBuyCc:
                                            type: string
                                            const: '0.01'
                                          minimumGrossSellCc:
                                            type: string
                                            const: '0.0099'
                                          minimumGrossSellDerivation:
                                            type: string
                                            const: gross-cc-from-reserve-before-fee
                                          numericScale:
                                            type: number
                                            const: 10
                                          rounding:
                                            type: object
                                            properties:
                                              buyGrouping:
                                                type: string
                                                const: >-
                                                  fee=round10(gross*rate);net=round10(gross-fee);x1=round10(x+net);y1=round10(k/x1);out=round10(y-y1)
                                              mode:
                                                type: string
                                                const: ledger-decimal10-half-even-per-operation
                                              sellGrouping:
                                                type: string
                                                const: >-
                                                  y1=round10(y+tokenIn);x1=round10(k/y1);gross=round10(x-x1);fee=round10(gross*rate);net=round10(gross-fee)
                                            required:
                                              - buyGrouping
                                              - mode
                                              - sellGrouping
                                            additionalProperties: false
                                          rootUniquenessAssumption:
                                            type: string
                                            const: >-
                                              participant-inventory-and-submission-policy-required
                                          settlementReadiness:
                                            type: string
                                            const: external-settlement-adapter-unproven
                                        required:
                                          - authorizationMaxTtlSeconds
                                          - fee
                                          - formulaId
                                          - goldenManifestDigest
                                          - invariant
                                          - initialRealCcReserve
                                          - initialRealTokenReserve
                                          - lifecycle
                                          - minimumGrossBuyCc
                                          - minimumGrossSellCc
                                          - minimumGrossSellDerivation
                                          - numericScale
                                          - rounding
                                          - rootUniquenessAssumption
                                          - settlementReadiness
                                        additionalProperties: false
                                      curve:
                                        type: object
                                        properties:
                                          formulaId:
                                            type: string
                                            const: supanova-virtual-cpmm-v1
                                          policyHash:
                                            type: string
                                            const: >-
                                              sha256:c843cc6204a25e687e40fff5f8033416031fb28d191f40b00e530855d70dd0ce
                                        required:
                                          - formulaId
                                          - policyHash
                                        additionalProperties: false
                                      creatorRevenue:
                                        type: object
                                        properties:
                                          allocationBinding:
                                            type: string
                                            const: one-exact-allocation-per-route-leg
                                          hash:
                                            type: string
                                            const: >-
                                              sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                                          id:
                                            type: string
                                            const: supanova-creator-revenue-policy
                                          version:
                                            type: string
                                            const: '1'
                                        required:
                                          - allocationBinding
                                          - hash
                                          - id
                                          - version
                                        additionalProperties: false
                                      policyId:
                                        type: string
                                        const: supanova-swap-quote-policy
                                      policyVersion:
                                        type: string
                                        const: '3'
                                      quote:
                                        type: object
                                        properties:
                                          authorityLegBinding:
                                            type: string
                                            const: explicit-pay-and-receive-instruments
                                          creatorRevenueLegBinding:
                                            type: string
                                            const: >-
                                              exact-launch-lineage-policy-and-allocation-per-leg
                                          expirySeconds:
                                            type: number
                                            const: 30
                                          marketReferenceUniqueness:
                                            type: string
                                            const: unique-within-route
                                          minimumOutputMaximumQuoted:
                                            type: string
                                            const: '999999999999999999999999.9999999999'
                                          minimumOutputRounding:
                                            type: string
                                            const: ledger-decimal10-round-down
                                          replayDomain:
                                            type: string
                                            const: supanova.swap.quote.v2
                                          revisionBinding:
                                            type: string
                                            const: >-
                                              dynamic-next-equals-current-plus-one;static-next-equals-current
                                          singleUse:
                                            type: boolean
                                            const: true
                                        required:
                                          - authorityLegBinding
                                          - creatorRevenueLegBinding
                                          - expirySeconds
                                          - marketReferenceUniqueness
                                          - minimumOutputMaximumQuoted
                                          - minimumOutputRounding
                                          - replayDomain
                                          - revisionBinding
                                          - singleUse
                                        additionalProperties: false
                                    required:
                                      - amm
                                      - curve
                                      - creatorRevenue
                                      - policyId
                                      - policyVersion
                                      - quote
                                    additionalProperties: false
                                  version:
                                    type: string
                                    const: '3'
                                required:
                                  - hash
                                  - snapshot
                                  - version
                                additionalProperties: false
                              replay:
                                type: object
                                properties:
                                  digest:
                                    type: string
                                    pattern: ^sha256:[0-9a-f]{64}$
                                  domain:
                                    type: string
                                    const: supanova.swap.quote.v2
                                required:
                                  - digest
                                  - domain
                                additionalProperties: false
                              synchronizerId:
                                type: string
                                minLength: 1
                                maxLength: 160
                            required:
                              - expiresAt
                              - legs
                              - networkId
                              - policy
                              - replay
                              - synchronizerId
                            additionalProperties: false
                          buyUnitPriceCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          buyAmount:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          buyInstrument:
                            type: object
                            properties:
                              admin:
                                type: string
                                minLength: 1
                                maxLength: 160
                              id:
                                type: string
                                minLength: 1
                                maxLength: 160
                            required:
                              - admin
                              - id
                            additionalProperties: false
                          creatorRevenueAllocations:
                            minItems: 1
                            maxItems: 2
                            type: array
                            items:
                              oneOf:
                                - type: object
                                  properties:
                                    basisAmountCc:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                    creatorRevenueCc:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                    eligibility:
                                      type: string
                                      const: eligible
                                    grossRevenueCc:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                    launchId:
                                      type: string
                                      minLength: 1
                                      maxLength: 96
                                    marketReference:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                    policy:
                                      type: object
                                      properties:
                                        hash:
                                          type: string
                                          const: >-
                                            sha256:a926e0a380b3938648b5fa9898136638e1276128947cf94033e760f87a27e8b2
                                        id:
                                          type: string
                                          const: supanova-creator-revenue-policy
                                        version:
                                          type: string
                                          const: '1'
                                      required:
                                        - hash
                                        - id
                                        - version
                                      additionalProperties: false
                                    protocolRevenueCc:
                                      type: string
                                      pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                    protocolRootId:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                    routeLegCount:
                                      type: integer
                                      minimum: 1
                                      maximum: 2
                                    routeLegIndex:
                                      type: integer
                                      minimum: 0
                                      maximum: 1
                                    source:
                                      type: string
                                      enum:
                                        - virtual-curve-trading-fee
                                        - supaswap-amm-trading-fee
                                    tokenInstrument:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                  required:
                                    - basisAmountCc
                                    - creatorRevenueCc
                                    - eligibility
                                    - grossRevenueCc
                                    - launchId
                                    - marketReference
                                    - policy
                                    - protocolRevenueCc
                                    - protocolRootId
                                    - routeLegCount
                                    - routeLegIndex
                                    - source
                                    - tokenInstrument
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    eligibility:
                                      type: string
                                      const: ineligible
                                    marketReference:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                    reason:
                                      type: string
                                      enum:
                                        - legacy-no-policy
                                        - not-supanova-launch
                                        - trader-cashback
                                    routeLegCount:
                                      type: integer
                                      minimum: 1
                                      maximum: 2
                                    routeLegIndex:
                                      type: integer
                                      minimum: 0
                                      maximum: 1
                                    tokenInstrument:
                                      type: object
                                      properties:
                                        admin:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                      required:
                                        - admin
                                        - id
                                      additionalProperties: false
                                  required:
                                    - eligibility
                                    - marketReference
                                    - reason
                                    - routeLegCount
                                    - routeLegIndex
                                    - tokenInstrument
                                  additionalProperties: false
                          execution:
                            type: string
                            const: simulated
                          expiresAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          fee:
                            type: object
                            properties:
                              amount:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              asset:
                                type: object
                                properties:
                                  admin:
                                    type: string
                                    minLength: 1
                                    maxLength: 160
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 160
                                required:
                                  - admin
                                  - id
                                additionalProperties: false
                              policy:
                                type: string
                                const: preview-only-unfinalized
                            required:
                              - amount
                              - asset
                              - policy
                            additionalProperties: false
                          feeLineItems:
                            minItems: 1
                            maxItems: 2
                            type: array
                            items:
                              type: object
                              properties:
                                amount:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                instrument:
                                  type: object
                                  properties:
                                    admin:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                  required:
                                    - admin
                                    - id
                                  additionalProperties: false
                                kind:
                                  type: string
                                  const: trading
                                label:
                                  type: string
                                  minLength: 1
                                  maxLength: 120
                              required:
                                - amount
                                - instrument
                                - kind
                                - label
                              additionalProperties: false
                          issuedAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          minimumBuyAmount:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                          notionalCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          pricingModel:
                            type: string
                            const: preview-simulation-v2
                          pricingSource:
                            type: object
                            properties:
                              asOf:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              dataMode:
                                type: string
                                enum:
                                  - projected
                                  - simulated
                              label:
                                type: string
                                enum:
                                  - canton-ledger-acs
                                  - superapp-market-preview-snapshot
                            required:
                              - asOf
                              - dataMode
                              - label
                            additionalProperties: false
                          priceImpactBps:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          quoteId:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          rate:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          sellAmount:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          sellInstrument:
                            type: object
                            properties:
                              admin:
                                type: string
                                minLength: 1
                                maxLength: 160
                              id:
                                type: string
                                minLength: 1
                                maxLength: 160
                            required:
                              - admin
                              - id
                            additionalProperties: false
                          sellUnitPriceCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          settlement:
                            type: object
                            properties:
                              deadline:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              mode:
                                type: string
                                const: atomic-dvp
                              readiness:
                                type: string
                                enum:
                                  - daml-command-builder-not-configured
                                  - ready
                            required:
                              - deadline
                              - mode
                              - readiness
                            additionalProperties: false
                          slippageBps:
                            type: integer
                            minimum: 1
                            maximum: 5000
                          route:
                            minItems: 1
                            maxItems: 2
                            type: array
                            items:
                              type: object
                              properties:
                                payInstrument:
                                  type: object
                                  properties:
                                    admin:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                  required:
                                    - admin
                                    - id
                                  additionalProperties: false
                                receiveInstrument:
                                  type: object
                                  properties:
                                    admin:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                  required:
                                    - admin
                                    - id
                                  additionalProperties: false
                                venue:
                                  type: string
                                  enum:
                                    - canton-dex
                                    - launch-curve
                              required:
                                - payInstrument
                                - receiveInstrument
                                - venue
                              additionalProperties: false
                          wallet:
                            type: object
                            properties:
                              connectionId:
                                type: string
                                format: uuid
                                pattern: >-
                                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              partyId:
                                type: string
                                minLength: 1
                                maxLength: 512
                            required:
                              - connectionId
                              - partyId
                            additionalProperties: false
                        required:
                          - authority
                          - buyUnitPriceCc
                          - buyAmount
                          - buyInstrument
                          - creatorRevenueAllocations
                          - execution
                          - expiresAt
                          - fee
                          - feeLineItems
                          - issuedAt
                          - minimumBuyAmount
                          - networkId
                          - notionalCc
                          - pricingModel
                          - pricingSource
                          - priceImpactBps
                          - quoteId
                          - rate
                          - sellAmount
                          - sellInstrument
                          - sellUnitPriceCc
                          - settlement
                          - slippageBps
                          - route
                          - wallet
                        additionalProperties: false
                      - type: object
                        properties:
                          authority:
                            type: object
                            properties:
                              expiresAt:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              legs:
                                minItems: 1
                                maxItems: 1
                                type: array
                                items:
                                  oneOf:
                                    - type: object
                                      properties:
                                        creatorRevenue:
                                          type: object
                                          properties:
                                            eligibility:
                                              type: string
                                              const: eligible
                                            launchId:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                            policy:
                                              type: object
                                              properties:
                                                hash:
                                                  type: string
                                                  const: >-
                                                    sha256:21c68b457e7684149d484e6bfb378457c36ea188e01187500367a76bf29cbde6
                                                id:
                                                  type: string
                                                  const: supanova-creator-revenue-policy
                                                version:
                                                  type: string
                                                  const: '2'
                                              required:
                                                - hash
                                                - id
                                                - version
                                              additionalProperties: false
                                            protocolRootId:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                          required:
                                            - eligibility
                                            - launchId
                                            - policy
                                            - protocolRootId
                                          additionalProperties: false
                                        lifecycleEpoch:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        market:
                                          type: object
                                          properties:
                                            economics:
                                              type: object
                                              properties:
                                                curveAllocationBps:
                                                  type: integer
                                                  minimum: 5001
                                                  maximum: 9999
                                                graduationNetCc:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                maxFeeBps:
                                                  type: integer
                                                  minimum: 0
                                                  maximum: 5000
                                                minFeeClaimCc:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                              required:
                                                - curveAllocationBps
                                                - graduationNetCc
                                                - maxFeeBps
                                                - minFeeClaimCc
                                              additionalProperties: false
                                            feeConfig:
                                              type: object
                                              properties:
                                                feeBps:
                                                  type: integer
                                                  minimum: 0
                                                  maximum: 10000
                                                platformShareBps:
                                                  type: integer
                                                  minimum: 0
                                                  maximum: 10000
                                              required:
                                                - feeBps
                                                - platformShareBps
                                              additionalProperties: false
                                            totalSupply:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                          required:
                                            - economics
                                            - feeConfig
                                            - totalSupply
                                          additionalProperties: false
                                        marketReference:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        marketRevision:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        nextMarketRevision:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        payInstrument:
                                          type: object
                                          properties:
                                            admin:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                          required:
                                            - admin
                                            - id
                                          additionalProperties: false
                                        receiveInstrument:
                                          type: object
                                          properties:
                                            admin:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                          required:
                                            - admin
                                            - id
                                          additionalProperties: false
                                        securityEpoch:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        after:
                                          type: object
                                          properties:
                                            graduated:
                                              type: boolean
                                            netCcReserve:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            tokensRemaining:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            tokensSold:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                          required:
                                            - graduated
                                            - netCcReserve
                                            - tokensRemaining
                                            - tokensSold
                                          additionalProperties: false
                                        before:
                                          type: object
                                          properties:
                                            graduated:
                                              type: boolean
                                            netCcReserve:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            tokensRemaining:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            tokensSold:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                          required:
                                            - graduated
                                            - netCcReserve
                                            - tokensRemaining
                                            - tokensSold
                                          additionalProperties: false
                                        formulaId:
                                          type: string
                                          const: supanova-virtual-cpmm-v1
                                        kind:
                                          type: string
                                          const: virtual-cpmm
                                        lifecycleStage:
                                          type: string
                                          enum:
                                            - ignition
                                            - near_escape
                                        limits:
                                          type: object
                                          properties:
                                            exactFinalGrossCc:
                                              anyOf:
                                                - type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                - type: 'null'
                                            inputAsset:
                                              type: string
                                              enum:
                                                - cc
                                                - token
                                            maximumInputAmount:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            recovery:
                                              type: string
                                              enum:
                                                - exact-final-gross-or-smaller-buy
                                                - sell-all-or-leave-at-least-minimum
                                          required:
                                            - exactFinalGrossCc
                                            - inputAsset
                                            - maximumInputAmount
                                            - recovery
                                          additionalProperties: false
                                      required:
                                        - creatorRevenue
                                        - lifecycleEpoch
                                        - market
                                        - marketReference
                                        - marketRevision
                                        - nextMarketRevision
                                        - payInstrument
                                        - receiveInstrument
                                        - securityEpoch
                                        - after
                                        - before
                                        - formulaId
                                        - kind
                                        - lifecycleStage
                                        - limits
                                      additionalProperties: false
                                    - type: object
                                      properties:
                                        creatorRevenue:
                                          type: object
                                          properties:
                                            eligibility:
                                              type: string
                                              const: eligible
                                            launchId:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                            policy:
                                              type: object
                                              properties:
                                                hash:
                                                  type: string
                                                  const: >-
                                                    sha256:21c68b457e7684149d484e6bfb378457c36ea188e01187500367a76bf29cbde6
                                                id:
                                                  type: string
                                                  const: supanova-creator-revenue-policy
                                                version:
                                                  type: string
                                                  const: '2'
                                              required:
                                                - hash
                                                - id
                                                - version
                                              additionalProperties: false
                                            protocolRootId:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                          required:
                                            - eligibility
                                            - launchId
                                            - policy
                                            - protocolRootId
                                          additionalProperties: false
                                        lifecycleEpoch:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        market:
                                          type: object
                                          properties:
                                            economics:
                                              type: object
                                              properties:
                                                curveAllocationBps:
                                                  type: integer
                                                  minimum: 5001
                                                  maximum: 9999
                                                graduationNetCc:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                                maxFeeBps:
                                                  type: integer
                                                  minimum: 0
                                                  maximum: 5000
                                                minFeeClaimCc:
                                                  type: string
                                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                              required:
                                                - curveAllocationBps
                                                - graduationNetCc
                                                - maxFeeBps
                                                - minFeeClaimCc
                                              additionalProperties: false
                                            feeConfig:
                                              type: object
                                              properties:
                                                feeBps:
                                                  type: integer
                                                  minimum: 0
                                                  maximum: 10000
                                                platformShareBps:
                                                  type: integer
                                                  minimum: 0
                                                  maximum: 10000
                                              required:
                                                - feeBps
                                                - platformShareBps
                                              additionalProperties: false
                                            totalSupply:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                          required:
                                            - economics
                                            - feeConfig
                                            - totalSupply
                                          additionalProperties: false
                                        marketReference:
                                          type: string
                                          minLength: 1
                                          maxLength: 160
                                        marketRevision:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        nextMarketRevision:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        payInstrument:
                                          type: object
                                          properties:
                                            admin:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                          required:
                                            - admin
                                            - id
                                          additionalProperties: false
                                        receiveInstrument:
                                          type: object
                                          properties:
                                            admin:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 160
                                          required:
                                            - admin
                                            - id
                                          additionalProperties: false
                                        securityEpoch:
                                          type: string
                                          pattern: ^(?:0|[1-9]\d{0,18})$
                                        after:
                                          type: object
                                          properties:
                                            anchor:
                                              type: string
                                              enum:
                                                - cc-reserve
                                                - initial
                                                - token-reserve
                                            ccReserve:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            revision:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                            tokenReserve:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                          required:
                                            - anchor
                                            - ccReserve
                                            - revision
                                            - tokenReserve
                                          additionalProperties: false
                                        before:
                                          type: object
                                          properties:
                                            anchor:
                                              type: string
                                              enum:
                                                - cc-reserve
                                                - initial
                                                - token-reserve
                                            ccReserve:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            revision:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,18})$
                                            tokenReserve:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                          required:
                                            - anchor
                                            - ccReserve
                                            - revision
                                            - tokenReserve
                                          additionalProperties: false
                                        formulaId:
                                          type: string
                                          const: supanova-real-cpmm-v1
                                        kind:
                                          type: string
                                          const: real-cpmm
                                        lifecycleStage:
                                          type: string
                                          const: in_orbit
                                        limits:
                                          type: object
                                          properties:
                                            exactFinalGrossCc:
                                              type: 'null'
                                            inputAsset:
                                              type: string
                                              enum:
                                                - cc
                                                - token
                                            maximumInputAmount:
                                              type: string
                                              pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                            recovery:
                                              type: string
                                              const: refresh-on-revision-change
                                          required:
                                            - exactFinalGrossCc
                                            - inputAsset
                                            - maximumInputAmount
                                            - recovery
                                          additionalProperties: false
                                      required:
                                        - creatorRevenue
                                        - lifecycleEpoch
                                        - market
                                        - marketReference
                                        - marketRevision
                                        - nextMarketRevision
                                        - payInstrument
                                        - receiveInstrument
                                        - securityEpoch
                                        - after
                                        - before
                                        - formulaId
                                        - kind
                                        - lifecycleStage
                                        - limits
                                      additionalProperties: false
                              networkId:
                                type: string
                                pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                              policy:
                                type: object
                                properties:
                                  hash:
                                    type: string
                                    const: >-
                                      sha256:453dec0f4f64164e6c89bd4fcf9303eafeadd133ca9e119acc5fd6fa694957c2
                                  snapshot: {}
                                  version:
                                    type: string
                                    const: '4'
                                required:
                                  - hash
                                  - snapshot
                                  - version
                                additionalProperties: false
                              replay:
                                type: object
                                properties:
                                  digest:
                                    type: string
                                    pattern: ^sha256:[0-9a-f]{64}$
                                  domain:
                                    type: string
                                    const: supanova.swap.quote.v2
                                required:
                                  - digest
                                  - domain
                                additionalProperties: false
                              synchronizerId:
                                type: string
                                minLength: 1
                                maxLength: 160
                            required:
                              - expiresAt
                              - legs
                              - networkId
                              - policy
                              - replay
                              - synchronizerId
                            additionalProperties: false
                          buyAmount:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          buyInstrument:
                            type: object
                            properties:
                              admin:
                                type: string
                                minLength: 1
                                maxLength: 160
                              id:
                                type: string
                                minLength: 1
                                maxLength: 160
                            required:
                              - admin
                              - id
                            additionalProperties: false
                          creatorRevenueAllocations:
                            minItems: 1
                            maxItems: 1
                            type: array
                            items:
                              type: object
                              properties:
                                basisAmountCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                creatorRevenueCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                eligibility:
                                  type: string
                                  const: eligible
                                grossRevenueCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                launchId:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                                marketReference:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                                policy:
                                  type: object
                                  properties:
                                    hash:
                                      type: string
                                      const: >-
                                        sha256:21c68b457e7684149d484e6bfb378457c36ea188e01187500367a76bf29cbde6
                                    id:
                                      type: string
                                      const: supanova-creator-revenue-policy
                                    version:
                                      type: string
                                      const: '2'
                                  required:
                                    - hash
                                    - id
                                    - version
                                  additionalProperties: false
                                protocolRevenueCc:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                protocolRootId:
                                  type: string
                                  minLength: 1
                                  maxLength: 160
                                routeLegCount:
                                  type: number
                                  const: 1
                                routeLegIndex:
                                  type: number
                                  const: 0
                                source:
                                  type: string
                                  enum:
                                    - curve-trading-fee
                                    - amm-trading-fee
                                tokenInstrument:
                                  type: object
                                  properties:
                                    admin:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                  required:
                                    - admin
                                    - id
                                  additionalProperties: false
                              required:
                                - basisAmountCc
                                - creatorRevenueCc
                                - eligibility
                                - grossRevenueCc
                                - launchId
                                - marketReference
                                - policy
                                - protocolRevenueCc
                                - protocolRootId
                                - routeLegCount
                                - routeLegIndex
                                - source
                                - tokenInstrument
                              additionalProperties: false
                          display:
                            type: object
                            properties:
                              averagePriceCcPerToken:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                              graduationPercentAfter:
                                anyOf:
                                  - type: string
                                    pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                                  - type: 'null'
                              kind:
                                type: string
                                const: display-only
                              priceAfterCcPerToken:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                              priceAfterPerMillionTokensCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                              priceBeforeCcPerToken:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                              priceBeforePerMillionTokensCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                              priceImpactBps:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                              pricePerMillionTokensCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                              rate:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,40})?$
                              significantDigits:
                                type: number
                                const: 12
                            required:
                              - averagePriceCcPerToken
                              - graduationPercentAfter
                              - kind
                              - priceAfterCcPerToken
                              - priceAfterPerMillionTokensCc
                              - priceBeforeCcPerToken
                              - priceBeforePerMillionTokensCc
                              - priceImpactBps
                              - pricePerMillionTokensCc
                              - rate
                              - significantDigits
                            additionalProperties: false
                          economics:
                            type: object
                            properties:
                              curveAllocationBps:
                                type: integer
                                minimum: 5001
                                maximum: 9999
                              graduationNetCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              maxFeeBps:
                                type: integer
                                minimum: 0
                                maximum: 5000
                              minFeeClaimCc:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                            required:
                              - curveAllocationBps
                              - graduationNetCc
                              - maxFeeBps
                              - minFeeClaimCc
                            additionalProperties: false
                          execution:
                            type: string
                            const: simulated
                          expiresAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          fee:
                            type: object
                            properties:
                              amount:
                                type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              asset:
                                type: object
                                properties:
                                  admin:
                                    type: string
                                    minLength: 1
                                    maxLength: 160
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 160
                                required:
                                  - admin
                                  - id
                                additionalProperties: false
                              policy:
                                type: string
                                const: ledger-pool-fee-config
                            required:
                              - amount
                              - asset
                              - policy
                            additionalProperties: false
                          feeCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          feeConfig:
                            type: object
                            properties:
                              feeBps:
                                type: integer
                                minimum: 0
                                maximum: 10000
                              platformShareBps:
                                type: integer
                                minimum: 0
                                maximum: 10000
                            required:
                              - feeBps
                              - platformShareBps
                            additionalProperties: false
                          feeLineItems:
                            minItems: 1
                            maxItems: 1
                            type: array
                            items:
                              type: object
                              properties:
                                amount:
                                  type: string
                                  pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                                instrument:
                                  type: object
                                  properties:
                                    admin:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                  required:
                                    - admin
                                    - id
                                  additionalProperties: false
                                kind:
                                  type: string
                                  const: trading
                                label:
                                  type: string
                                  minLength: 1
                                  maxLength: 120
                              required:
                                - amount
                                - instrument
                                - kind
                                - label
                              additionalProperties: false
                          issuedAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          makerFeeCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          minimumBuyAmount:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          networkId:
                            type: string
                            pattern: ^canton:[-_a-zA-Z0-9]{1,32}$
                          notionalCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          platformFeeCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          referralFeeCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          pricingModel:
                            type: string
                            const: preview-simulation-v2
                          pricingSource:
                            type: object
                            properties:
                              asOf:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              dataMode:
                                type: string
                                const: projected
                              label:
                                type: string
                                const: canton-ledger-acs
                            required:
                              - asOf
                              - dataMode
                              - label
                            additionalProperties: false
                          quoteId:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          route:
                            minItems: 1
                            maxItems: 1
                            type: array
                            items:
                              type: object
                              properties:
                                payInstrument:
                                  type: object
                                  properties:
                                    admin:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                  required:
                                    - admin
                                    - id
                                  additionalProperties: false
                                receiveInstrument:
                                  type: object
                                  properties:
                                    admin:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 160
                                  required:
                                    - admin
                                    - id
                                  additionalProperties: false
                                venue:
                                  type: string
                                  enum:
                                    - canton-dex
                                    - launch-curve
                              required:
                                - payInstrument
                                - receiveInstrument
                                - venue
                              additionalProperties: false
                          sellAmount:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          sellInstrument:
                            type: object
                            properties:
                              admin:
                                type: string
                                minLength: 1
                                maxLength: 160
                              id:
                                type: string
                                minLength: 1
                                maxLength: 160
                            required:
                              - admin
                              - id
                            additionalProperties: false
                          settlement:
                            type: object
                            properties:
                              deadline:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              mode:
                                type: string
                                const: atomic-dvp
                              readiness:
                                type: string
                                const: ready
                            required:
                              - deadline
                              - mode
                              - readiness
                            additionalProperties: false
                          slippageBps:
                            type: integer
                            minimum: 1
                            maximum: 5000
                          totalSupply:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          wallet:
                            type: object
                            properties:
                              connectionId:
                                type: string
                                format: uuid
                                pattern: >-
                                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              partyId:
                                type: string
                                minLength: 1
                                maxLength: 512
                            required:
                              - connectionId
                              - partyId
                            additionalProperties: false
                          allowPartialFill:
                            type: boolean
                          fill:
                            type: string
                            enum:
                              - full
                              - partial
                          grossCcUsed:
                            anyOf:
                              - type: string
                                pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                              - type: 'null'
                          unspentCc:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                          graduates:
                            type: boolean
                          limitTokenOut:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$
                        required:
                          - authority
                          - buyAmount
                          - buyInstrument
                          - creatorRevenueAllocations
                          - display
                          - economics
                          - execution
                          - expiresAt
                          - fee
                          - feeCc
                          - feeConfig
                          - feeLineItems
                          - issuedAt
                          - makerFeeCc
                          - minimumBuyAmount
                          - networkId
                          - notionalCc
                          - platformFeeCc
                          - pricingModel
                          - pricingSource
                          - quoteId
                          - route
                          - sellAmount
                          - sellInstrument
                          - settlement
                          - slippageBps
                          - totalSupply
                          - wallet
                        additionalProperties: false
                  venue:
                    type: string
                    enum:
                      - curve
                      - amm
                  side:
                    type: string
                    enum:
                      - buy
                      - sell
                  commands:
                    minItems: 1
                    maxItems: 4
                    type: array
                    items:
                      type: object
                      propertyNames:
                        type: string
                      additionalProperties: {}
                  disclosedContracts:
                    type: array
                    items:
                      type: object
                      properties:
                        contractId:
                          type: string
                          minLength: 1
                          maxLength: 255
                        createdEventBlob:
                          type: string
                          minLength: 1
                        synchronizerId:
                          type: string
                          minLength: 1
                          maxLength: 512
                        templateId:
                          type: string
                          minLength: 1
                          maxLength: 255
                      required:
                        - contractId
                        - createdEventBlob
                        - synchronizerId
                        - templateId
                      additionalProperties: false
                  packageIdSelectionPreference:
                    minItems: 1
                    maxItems: 4
                    type: array
                    items:
                      type: string
                      pattern: ^[0-9a-f]{64}$
                required:
                  - commandId
                  - operationId
                  - partyId
                  - expiresAt
                  - quote
                  - venue
                  - side
                  - commands
                  - disclosedContracts
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            Malformed body or missing Idempotency-Key. Also:
            `VALIDATION_FAILED`, `IDEMPOTENCY_KEY_REQUIRED`,
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            Wallet not owned, or the Party is not allowed. Also:
            `ACCOUNT_RESTRICTED`, `ANONYMOUS_ACCOUNT_NOT_ALLOWED`,
            `API_KEY_ROUTE_NOT_ALLOWED`, `SERVICE_PARTY_NOT_ALLOWED`,
            `SERVICE_PRINCIPAL_NOT_ALLOWED`, `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: Unknown quote.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '409':
          description: >-
            Quote/wallet mismatch or Idempotency-Key conflict. Also:
            `IDEMPOTENCY_KEY_CONFLICT`, `IDEMPOTENCY_CONFLICT`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '422':
          description: Insufficient or frozen deposit balance, or no live venue.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            The ledger is unavailable. Also: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: >-
        Prepare plain JSON Ledger API commands + disclosures for a wallet-signed
        trade.
      tags:
        - user-signed trades
  /api/v1/trades/{commandId}/status:
    get:
      operationId: UserSignedTradeController_status_v1
      parameters:
        - name: commandId
          required: true
          in: path
          schema:
            type: string
            minLength: 1
            maxLength: 255
            pattern: ^[A-Za-z0-9._:-]+$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: The reconciled outcome.
          content:
            application/json:
              schema:
                type: object
                properties:
                  commandId:
                    type: string
                  operationId:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: 'null'
                  partyId:
                    type: string
                  kind:
                    type: string
                    enum:
                      - trade
                      - withdrawal-request
                      - withdrawal-cancel
                  status:
                    type: string
                    enum:
                      - pending
                      - confirmed
                      - rejected
                      - expired
                      - unknown
                  expiresAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  updateId:
                    type:
                      - string
                      - 'null'
                  recordTime:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: 'null'
                  settled:
                    anyOf:
                      - type: object
                        properties:
                          choice:
                            type: string
                          venue:
                            anyOf:
                              - type: string
                                enum:
                                  - curve
                                  - amm
                              - type: 'null'
                          side:
                            anyOf:
                              - type: string
                                enum:
                                  - buy
                                  - sell
                              - type: 'null'
                          ccIn:
                            type:
                              - string
                              - 'null'
                          ccOut:
                            type:
                              - string
                              - 'null'
                          tokenIn:
                            type:
                              - string
                              - 'null'
                          tokenOut:
                            type:
                              - string
                              - 'null'
                          feeCc:
                            type:
                              - string
                              - 'null'
                          balanceCidAfter:
                            type:
                              - string
                              - 'null'
                          graduates:
                            type: boolean
                          ammPoolCid:
                            type:
                              - string
                              - 'null'
                          platformFeeCc:
                            type:
                              - string
                              - 'null'
                          makerFeeCc:
                            type:
                              - string
                              - 'null'
                          poolHoldingCidAfter:
                            type:
                              - string
                              - 'null'
                          partial:
                            type: boolean
                          requestedGrossCc:
                            type:
                              - string
                              - 'null'
                          unspentCc:
                            type:
                              - string
                              - 'null'
                        required:
                          - choice
                          - venue
                          - side
                          - ccIn
                          - ccOut
                          - tokenIn
                          - tokenOut
                          - feeCc
                          - balanceCidAfter
                          - graduates
                          - ammPoolCid
                        additionalProperties: false
                      - type: 'null'
                  error:
                    anyOf:
                      - type: object
                        properties:
                          code:
                            type: string
                          message:
                            type: string
                          rePrepare:
                            type: boolean
                        required:
                          - code
                          - message
                        additionalProperties: false
                      - type: 'null'
                required:
                  - commandId
                  - operationId
                  - partyId
                  - kind
                  - status
                  - expiresAt
                  - updateId
                  - recordTime
                  - settled
                  - error
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No such owned prepared trade.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: >-
        Reconciliation status of a prepared user-signed submission (ledger
        truth).
      tags:
        - user-signed trades
  /api/v1/wallet/withdrawals/prepare:
    post:
      operationId: UserSignedWithdrawalController_prepareWithdrawal_v1
      parameters:
        - name: Idempotency-Key
          in: header
          required: true
          schema:
            type: string
            minLength: 8
            maxLength: 256
            pattern: ^[A-Za-z0-9._:-]+$
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                amountCc:
                  type: string
                  pattern: ^\d{1,28}(?:\.\d{1,10})?$
                memo:
                  type: string
                  minLength: 1
                  maxLength: 128
                  pattern: ^[\x20-\x7E]+$
                walletConnectionId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              required:
                - amountCc
              additionalProperties: false
      responses:
        '201':
          description: >-
            Commands for sendTransaction; the withdrawal starts
            awaiting_signature.
          content:
            application/json:
              schema:
                type: object
                properties:
                  withdrawalId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  commandId:
                    type: string
                    minLength: 1
                    maxLength: 255
                  partyId:
                    type: string
                    minLength: 1
                  expiresAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  commands:
                    minItems: 1
                    maxItems: 4
                    type: array
                    items:
                      type: object
                      propertyNames:
                        type: string
                      additionalProperties: {}
                  disclosedContracts:
                    type: array
                    items:
                      type: object
                      properties:
                        contractId:
                          type: string
                          minLength: 1
                          maxLength: 255
                        createdEventBlob:
                          type: string
                          minLength: 1
                        synchronizerId:
                          type: string
                          minLength: 1
                          maxLength: 512
                        templateId:
                          type: string
                          minLength: 1
                          maxLength: 255
                      required:
                        - contractId
                        - createdEventBlob
                        - synchronizerId
                        - templateId
                      additionalProperties: false
                required:
                  - withdrawalId
                  - commandId
                  - partyId
                  - expiresAt
                  - commands
                  - disclosedContracts
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            Malformed amount or missing Idempotency-Key. Also:
            `VALIDATION_FAILED`, `IDEMPOTENCY_KEY_REQUIRED`,
            `AMBIGUOUS_CREDENTIALS`, `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No verified wallet connection exists.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '409':
          description: >-
            The request conflicts with current state, or the Idempotency-Key was
            reused with a different request (`IDEMPOTENCY_KEY_CONFLICT`; the
            former `IDEMPOTENCY_CONFLICT` is a deprecated alias, no longer
            returned, that clients handle the same way for one release). Codes:
            `IDEMPOTENCY_KEY_CONFLICT`, `IDEMPOTENCY_CONFLICT`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '422':
          description: Insufficient spendable balance, or the balance is frozen.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            The ledger is unavailable. Also: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Prepare a wallet-signed on-ledger withdrawal request.
      tags:
        - deposit balance
  /api/v1/wallet/withdrawals/{withdrawalId}/cancel-prepare:
    post:
      operationId: UserSignedWithdrawalController_prepareCancel_v1
      parameters:
        - name: withdrawalId
          required: true
          in: path
          schema:
            format: uuid
            type: string
        - $ref: '#/components/parameters/ServiceActAs'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '201':
          description: Commands for sendTransaction; reconciled to cancelled on landing.
          content:
            application/json:
              schema:
                type: object
                properties:
                  withdrawalId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  commandId:
                    type: string
                    minLength: 1
                    maxLength: 255
                  partyId:
                    type: string
                    minLength: 1
                  expiresAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  commands:
                    minItems: 1
                    maxItems: 4
                    type: array
                    items:
                      type: object
                      propertyNames:
                        type: string
                      additionalProperties: {}
                  disclosedContracts:
                    type: array
                    items:
                      type: object
                      properties:
                        contractId:
                          type: string
                          minLength: 1
                          maxLength: 255
                        createdEventBlob:
                          type: string
                          minLength: 1
                        synchronizerId:
                          type: string
                          minLength: 1
                          maxLength: 512
                        templateId:
                          type: string
                          minLength: 1
                          maxLength: 255
                      required:
                        - contractId
                        - createdEventBlob
                        - synchronizerId
                        - templateId
                      additionalProperties: false
                required:
                  - withdrawalId
                  - commandId
                  - partyId
                  - expiresAt
                  - commands
                  - disclosedContracts
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`, `AMBIGUOUS_CREDENTIALS`,
            `SERVICE_ACT_AS_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '401':
          description: >-
            Credentials are missing, malformed, expired or revoked. Codes:
            `AUTHENTICATION_REQUIRED`, `INVALID_AUTHORIZATION_HEADER`,
            `INVALID_ACCESS_TOKEN`, `SESSION_REVOKED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '403':
          description: >-
            The credential may not call this route. Codes: `ACCOUNT_RESTRICTED`,
            `ANONYMOUS_ACCOUNT_NOT_ALLOWED`, `API_KEY_ROUTE_NOT_ALLOWED`,
            `SERVICE_PARTY_NOT_ALLOWED`, `SERVICE_PRINCIPAL_NOT_ALLOWED`,
            `SIGNUP_NOT_INVITED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '404':
          description: No such owned withdrawal.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '409':
          description: The withdrawal can no longer be cancelled.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '428':
          description: >-
            The signed-in account must accept the current product terms first.
            Codes: `PRODUCT_LEGAL_ACCEPTANCE_REQUIRED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A dependency is unavailable or the feature is not enabled on this
            deployment. Codes: `AUTHENTICATION_UNAVAILABLE`,
            `AUTHORIZATION_UNAVAILABLE`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        default:
          $ref: '#/components/responses/ApiError'
      security:
        - bearer: []
      summary: Prepare a wallet-signed cancel of an open withdrawal request.
      tags:
        - deposit balance
  /api/v1/waitlists/nova:
    post:
      operationId: WaitlistController_requestNova_v1
      parameters:
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  maxLength: 254
                  format: email
                  pattern: >-
                    ^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                locale:
                  default: en
                  type: string
                  minLength: 2
                  maxLength: 16
                noticeVersion:
                  type: string
                  const: nova-interest-preview-2026-08-05
                source:
                  default: nova-page
                  type: string
                  enum:
                    - nova-page
                    - profile
                    - settings
              required:
                - email
                - locale
                - noticeVersion
                - source
              additionalProperties: false
      responses:
        '202':
          description: A non-enumerating preview acknowledgement.
          content:
            application/json:
              schema:
                type: object
                properties:
                  accepted:
                    type: boolean
                    const: true
                  dataMode:
                    type: string
                    const: simulated
                  delivery:
                    type: string
                    const: none
                  disclaimer:
                    type: string
                  noticeVersion:
                    type: string
                    const: nova-interest-preview-2026-08-05
                  status:
                    type: string
                    const: preview_recorded
                required:
                  - accepted
                  - dataMode
                  - delivery
                  - disclaimer
                  - noticeVersion
                  - status
                additionalProperties: false
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        default:
          $ref: '#/components/responses/ApiError'
      security: []
      summary: Acknowledge Nova interest in isolated product preview.
      tags:
        - waitlists
  /api/v1/client-errors:
    post:
      operationId: ClientErrorsController_report_v1
      parameters:
        - $ref: '#/components/parameters/RequestId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                cfRay:
                  type: string
                  pattern: ^[0-9a-f]{16}-[A-Z]{3,4}$
                clientRequestId:
                  type: string
                  pattern: ^[A-Za-z0-9._:-]{8,128}$
                digest:
                  type: string
                  pattern: ^[A-Za-z0-9_-]{1,64}$
                kind:
                  type: string
                  enum:
                    - edge_html
                    - edge_413
                    - edge_502
                    - edge_503
                    - edge_504
                    - network
                    - timeout
                    - invalid_json
                    - render_fatal
                release:
                  type: string
                  pattern: ^[A-Za-z0-9._-]{1,64}$
                requestId:
                  type: string
                  pattern: ^[A-Za-z0-9._:-]{8,128}$
                route:
                  type: string
                  pattern: ^\/[A-Za-z0-9/_.:~[\]-]{0,199}$
                status:
                  type: integer
                  minimum: 0
                  maximum: 599
              required:
                - kind
                - route
                - status
              additionalProperties: false
      responses:
        '204':
          description: Recorded (or deduplicated).
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
        '400':
          description: >-
            The request is malformed or failed validation. Codes:
            `VALIDATION_FAILED`.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '413':
          description: The request body exceeds the size limit.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        default:
          $ref: '#/components/responses/ApiError'
      security: []
      summary: Report a browser-side edge or fatal failure the API never saw.
      tags:
        - client-errors
info:
  title: Supanova Superapp API
  description: Product APIs for Supanova wallet, swap, launch and activity experiences.
  version: 2026-08-17.2
  contact: {}
  license:
    identifier: LicenseRef-Proprietary
    name: Proprietary
tags: []
servers:
  - url: /
    description: Current API origin
  - url: https://{apiHost}
    description: Absolute origin for code generators and API clients.
    variables:
      apiHost:
        default: launch-api.example
        description: >-
          Placeholder: replace with your deployment API hostname. The production
          hostname is published with the mainnet release.
components:
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: Privy access token
      type: http
      description: >-
        Short-lived customer access token from the provider advertised by
        app-config. Hosted customer deployments use Privy; Supabase is
        migration-only when explicitly configured. On the local and devnet
        stages only, an OAuth client-credentials token from the validator is
        also accepted for allow-listed service principals (load tests): it must
        name its acting Party in the `X-Service-Act-As` header and is refused
        with 403 `SERVICE_PRINCIPAL_NOT_ALLOWED` by routes that need a product
        account. Configuration refuses this path on mainnet.
    apiKey:
      type: apiKey
      in: header
      name: X-API-Key
      description: >-
        Customer API key in the `X-API-Key` header: `sn_live_<id>_<secret>` on
        mainnet, `sn_test_<id>_<secret>` elsewhere, where `<id>` (the `keyId`)
        matches `^[a-z2-7]{12}$`. Created by a signed-in user (`POST
        /api/v1/me/api-keys`); a key acts as the profile that created it.


        A key is accepted only on operations that declare `x-api-key-scope`, and
        it must hold that scope: `read` (every key) or `trade` (opt-in). Every
        other authenticated route answers 403 `API_KEY_ROUTE_NOT_ALLOWED`. Owner
        routes (wallet, operations, activity, order status) need a customer key;
        an internal master key has no owner and also answers 403
        `API_KEY_ROUTE_NOT_ALLOWED`. Public reads list the key as an optional
        alternative to anonymous access. Never send `Authorization` and
        `X-API-Key` together (400 `AMBIGUOUS_CREDENTIALS`); an unknown or
        revoked key answers 401 on any route.


        `trade` operations also need `X-API-Timestamp` (Unix ms),
        `X-API-Signature`, `Idempotency-Key` and optionally `X-API-Recv-Window`.
        The signature is Ed25519 over six lines joined by `\n` (no trailing
        newline), encoded as unpadded base64url (86 characters):


        ```

        <X-API-Timestamp>

        <X-API-Recv-Window as sent, or 5000 when absent>

        <HTTP method, upper case>

        <path and query as received, e.g. /api/v1/orders/hosted>

        <Idempotency-Key as sent, or an empty line when absent>

        <lowercase hex SHA-256 of the body bytes; of the empty string when there
        is no body>

        ```


        See docs/integration/API-KEYS.md for the worked example and limits.
  schemas:
    ApiErrorEnvelope:
      type: object
      additionalProperties: false
      required:
        - error
        - requestId
      properties:
        error:
          type: object
          additionalProperties: false
          required:
            - code
            - message
          properties:
            code:
              type: string
              pattern: ^(?:[A-Z][A-Z0-9_]{2,127}|HTTP_[1-5][0-9]{2})$
              description: >-
                Stable machine-readable code. Clients map known codes and retain
                a safe unknown-code fallback for additive server releases.
                Deprecated aliases (`x-supanova-error-code-aliases`) are no
                longer returned; clients treat each like the code it maps to for
                one more release: `IDEMPOTENCY_CONFLICT` is now
                `IDEMPOTENCY_KEY_CONFLICT` on every write route (an
                Idempotency-Key reused with a different request).
              x-supanova-known-error-codes:
                - ACCOUNT_CLOSURE_CONFIRMATION_REQUIRED
                - ACCOUNT_CLOSURE_STEP_UP_NOT_CONFIGURED
                - ACCOUNT_CLOSURE_UNAVAILABLE
                - ACCOUNT_RESTRICTED
                - ACTIVITY_NOT_FOUND
                - ACTIVITY_PROJECTION_INVALID
                - ACTIVITY_PROJECTION_NOT_CONFIGURED
                - ADMIN_ACCESS_REQUIRED
                - ADMIN_AUDIT_WRITE_FAILED
                - ADMIN_AUTHORITY_CHANGED
                - ADMIN_AUTHORIZATION_UNAVAILABLE
                - ADMIN_CAPABILITY_REQUIRED
                - ADMIN_CONFLICT_REGISTRY_UNAVAILABLE
                - ADMIN_MFA_REQUIRED
                - ADMIN_OUTBOX_WRITE_FAILED
                - ADMIN_REAUTHENTICATION_REQUIRED
                - ADMIN_REVIEW_IDEMPOTENCY_CAPACITY_REACHED
                - ADMIN_ROLE_NOT_AUTHORIZED
                - ADMIN_ROLE_SELECTION_INVALID
                - ADMIN_ROLE_SELECTION_REQUIRED
                - ADMIN_SESSION_REVOKED
                - AMBIGUOUS_CREDENTIALS
                - AMM_FEE_ROUNDS_TO_ZERO
                - AMM_INPUT_OUT_OF_RANGE
                - AMM_OUTPUT_ROUNDS_TO_ZERO
                - AMM_SLIPPAGE_EXCEEDED
                - AMM_TRADE_BELOW_MINIMUM
                - ANONYMOUS_ACCOUNT_NOT_ALLOWED
                - API_KEYS_UNAVAILABLE
                - API_KEY_AUTHORIZATION_EXPIRED
                - API_KEY_AUTHORIZATION_INVALID
                - API_KEY_AUTHORIZATION_REQUIRED
                - API_KEY_AUTHORIZATION_USED
                - API_KEY_INVALID
                - API_KEY_IP_NOT_ALLOWED
                - API_KEY_LIMIT_REACHED
                - API_KEY_NOT_FOUND
                - API_KEY_PARTY_NOT_AUTHORIZED
                - API_KEY_REVOKED
                - API_KEY_ROUTE_NOT_ALLOWED
                - API_KEY_SCOPE_REQUIRED
                - API_KEY_SIGNATURE_INVALID
                - API_KEY_SIGNING_KEY_INVALID
                - API_KEY_SIGNING_KEY_REQUIRED
                - API_KEY_SIGNING_KEY_UNUSED
                - API_KEY_TIMESTAMP_OUT_OF_WINDOW
                - APPLICATION_DOCUMENTS_INCOMPLETE
                - APPLICATION_DOCUMENT_ALREADY_REGISTERED
                - APPLICATION_DOCUMENT_METADATA_MISMATCH
                - APPLICATION_DOCUMENT_UPLOAD_NOT_FOUND
                - APPLICATION_EVIDENCE_NOT_CLEARED
                - APPLICATION_INCOMPLETE
                - APPLICATION_LOCKED
                - APPLICATION_NOT_FOUND
                - APPLICATION_STATE_CHANGED
                - APPLICATION_SUBMISSION_EVIDENCE_MISSING
                - AUTHENTICATION_REQUIRED
                - AUTHENTICATION_UNAVAILABLE
                - AUTHORIZATION_UNAVAILABLE
                - AUTH_HYBRID_MIGRATION_EXPIRED
                - AUTH_PREVIEW_IDENTITY_CAPACITY_REACHED
                - AVATAR_AUTH_PROVIDER_UNSUPPORTED
                - AVATAR_CLEANUP_AUTH_REQUIRED
                - AVATAR_DELETION_FAILED
                - AVATAR_PATH_INVALID
                - AVATAR_UPLOAD_INVALID
                - AVATAR_UPLOAD_NOT_FOUND
                - BAD_ECONOMICS
                - BAD_FEE_CONFIG
                - BAD_SUPPLY
                - CANTON_PREVIEW_CAPACITY_REACHED
                - CANTON_UNAVAILABLE
                - CATALOG_PROJECTION_NOT_CONFIGURED
                - COMMITMENT_OUTSIDE_LIMITS
                - CONTROL_REVIEWS_REQUIRED
                - CREATOR_PROJECTION_NOT_CONFIGURED
                - CREATOR_REWARD_PARTY_SOURCE_MISMATCH
                - CRITICAL_RISK_UNRESOLVED
                - CURVE_030_FEATURE_DISABLED
                - CURVE_ALREADY_GRADUATED
                - CURVE_BUY_EXCEEDS_GRADUATION
                - CURVE_BUY_STRANDS_GRADUATION
                - CURVE_FEE_ROUNDS_TO_ZERO
                - CURVE_GRADUATION_NOT_REACHED
                - CURVE_MIN_CC_OUT_NOT_MET
                - CURVE_MIN_TOKEN_OUT_NOT_MET
                - CURVE_OUTPUT_ROUNDS_TO_ZERO
                - CURVE_SELL_EXCEEDS_SOLD_TOKENS
                - CURVE_SELL_STRANDS_RESIDUAL
                - CURVE_TOKEN_AMOUNT_OUT_OF_RANGE
                - CURVE_TRADE_BELOW_MINIMUM
                - CUSTOM_AVATAR_NOT_FOUND
                - CUSTOM_AVATAR_NOT_PUBLISHED
                - CUSTOM_AVATAR_UPLOAD_NOT_CONFIGURED
                - DATABASE_UNAVAILABLE
                - DA_CONFIGURATION_FAILED
                - DEPOSIT_BALANCE_STALE
                - DEPOSIT_FROZEN
                - DEPOSIT_INSTRUCTIONS_NOT_CONFIGURED
                - DEPOSIT_INSUFFICIENT_BALANCE
                - DEPOSIT_INSUFFICIENT_FUNDS
                - DEPOSIT_LEDGER_SHARD_UNAVAILABLE
                - DEPOSIT_NOT_FOUND
                - DEPOSIT_REFERENCE_REUSED
                - DOCUMENT_ACCESS_CONFLICT_OF_INTEREST
                - DOCUMENT_APPLICATION_NOT_REVIEWABLE
                - DOCUMENT_DOWNLOAD_GRANT_STATE_CHANGED
                - DOCUMENT_NOT_CLEARED
                - DOCUMENT_NOT_CURRENT_SUBMISSION
                - DOCUMENT_NOT_FOUND
                - DOCUMENT_PURPOSE_NOT_AUTHORIZED
                - DOCUMENT_UPLOAD_AUTH_PROVIDER_UNSUPPORTED
                - DOCUMENT_UPLOAD_QUOTA_EXCEEDED
                - FEE_CHANGE_COOLDOWN
                - FEE_CLAIM_INTENT_CONFLICT
                - FEE_CLAIM_INTENT_NOT_FOUND
                - FEE_CLAIM_NOT_CREATOR
                - FEE_STEP_TOO_LARGE
                - FINAL_APPROVAL_STATE_INVALID
                - GOVERNED_ISSUER_WORKFLOW_NOT_RELEASED
                - HANDLE_UNAVAILABLE
                - HISTORY_BUSY
                - HOLDINGS_FRAGMENTED
                - IDEMPOTENCY_CONFLICT
                - IDEMPOTENCY_KEY_CONFLICT
                - IDEMPOTENCY_KEY_REQUIRED
                - INSTRUMENT_NOT_HELD
                - INSUFFICIENT_PREVIEW_BALANCE
                - INTERACTIVE_SESSION_REQUIRED
                - INTERNAL_ERROR
                - INVALID_ACCESS_TOKEN
                - INVALID_APPLICATION_STATE
                - INVALID_AUTHORIZATION_HEADER
                - INVALID_CURSOR
                - INVALID_IDEMPOTENCY_KEY
                - INVALID_MOCK_USER
                - INVALID_OPERATION_STATE
                - INVALID_SUBMISSION_EVIDENCE
                - INVALID_WITHDRAWAL_STATE
                - LAUNCH_APPLICATION_PREVIEW_CAPACITY_REACHED
                - LAUNCH_MEDIA_ANIMATION_UNSUPPORTED
                - LAUNCH_MEDIA_CONTENT_MISMATCH
                - LAUNCH_MEDIA_DESCRIPTOR_MISMATCH
                - LAUNCH_MEDIA_DIGEST_MISMATCH
                - LAUNCH_MEDIA_DIMENSIONS_UNSAFE
                - LAUNCH_MEDIA_FILE_REQUIRED
                - LAUNCH_MEDIA_ICON_TOO_SMALL
                - LAUNCH_MEDIA_INVALID_IMAGE
                - LAUNCH_MEDIA_MALWARE_DETECTED
                - LAUNCH_MEDIA_NOT_FOUND
                - LAUNCH_MEDIA_NOT_PUBLISHED
                - LAUNCH_MEDIA_PIPELINE_NOT_CONFIGURED
                - LAUNCH_MEDIA_PREVIEW_CAPACITY_REACHED
                - LAUNCH_MEDIA_REJECTED
                - LAUNCH_MEDIA_ROLE_MISMATCH
                - LAUNCH_MEDIA_SCAN_UNAVAILABLE
                - LAUNCH_MEDIA_STORAGE_UNAVAILABLE
                - LAUNCH_MEDIA_TOO_LARGE
                - LAUNCH_MEDIA_TYPE_UNSUPPORTED
                - LAUNCH_MEDIA_UPLOAD_CONSUMED
                - LAUNCH_MEDIA_UPLOAD_EXPIRED
                - LAUNCH_MEDIA_UPLOAD_NOT_FOUND
                - LAUNCH_NOT_FOUND
                - LAUNCH_NOT_OPEN
                - LAUNCH_PARTICIPATION_ADAPTER_NOT_CONFIGURED
                - LEDGER_APPLICATION_PARTY_NOT_CONFIGURED
                - LEDGER_CONTRACT_STALE
                - LEDGER_CURVE_PACKAGE_NOT_PINNED
                - LEDGER_MARKET_NOT_FOUND
                - LEDGER_MARKET_SNAPSHOT_INVALID
                - LEDGER_PARTY_NOT_HOSTED
                - LEDGER_PREPARATION_EXPIRED
                - LEDGER_PREPARATION_FAILED
                - LEDGER_READ_FAILED
                - LEDGER_REGISTRAR_MISSING
                - LEDGER_ROUTE_NOT_SUPPORTED
                - LEDGER_SUBMISSION_REJECTED
                - LEDGER_UNAVAILABLE
                - MARKET_ASSET_NOT_FOUND
                - MARKET_BLOCK_NOT_FOUND
                - MARKET_BLOCK_RANGE_TOO_LARGE
                - MARKET_DATA_API_KEY_INVALID
                - MARKET_DATA_API_KEY_REQUIRED
                - MARKET_DATA_DISABLED
                - MARKET_EXCHANGE_NOT_FOUND
                - MARKET_GRADUATION_IN_PROGRESS
                - MARKET_PAIR_NOT_FOUND
                - MEDIA_NOT_FOUND
                - MEDIA_NOT_PUBLISHED
                - MINIMUM_ALLOCATION_UNAVAILABLE
                - MISSION_CONTROL_CATEGORY_INVALID
                - MISSION_CONTROL_FEE_POLICY_INVALID
                - MISSION_CONTROL_IDEMPOTENCY_CAPACITY_REACHED
                - MISSION_CONTROL_LAUNCH_EXISTS
                - MISSION_CONTROL_LAUNCH_NOT_FOUND
                - MISSION_CONTROL_NO_CHANGE
                - MISSION_CONTROL_PRICE_INVALID
                - MISSION_CONTROL_PROJECTION_UNAVAILABLE
                - MISSION_CONTROL_REASON_REQUIRED
                - MISSION_CONTROL_TAG_INVALID
                - MISSION_CONTROL_TAXONOMY_EXISTS
                - MISSION_CONTROL_TAXONOMY_IMMUTABLE
                - MISSION_CONTROL_TAXONOMY_IN_USE
                - MISSION_CONTROL_TAXONOMY_NOT_FOUND
                - MISSION_CONTROL_USER_NOT_FOUND
                - MISSION_CONTROL_VERSION_CONFLICT
                - MOCK_IDENTITY_SELECTION_NOT_ALLOWED
                - NOTHING_TO_CLAIM
                - NOT_FOUND
                - NOVA_WAITLIST_NOT_ENABLED
                - NOVA_WAITLIST_PREVIEW_CAPACITY_REACHED
                - OPENING_BUY_EXCEEDS_CURVE
                - OPENING_BUY_FEE_ROUNDS_TO_ZERO
                - OPENING_BUY_ROUNDING_UNREPRESENTABLE
                - OPENING_BUY_STRANDS_GRADUATION
                - OPENING_BUY_TOO_SMALL
                - OPERATION_EXPIRED
                - OPERATION_EXPIRY_MISSING
                - OPERATION_NOT_FOUND
                - OPERATION_PROJECTION_INVALID
                - OPERATION_STATE_CHANGED
                - ORDER_NOT_OPEN
                - POINTS_PROGRAM_NOT_CONFIGURED
                - POOL_PAUSED
                - POSITION_PROJECTION_NOT_CONFIGURED
                - PREPARE_EXPIRED
                - PREVIEW_CONFIRMATION_REQUIRED
                - PREVIEW_IDENTITY_CAPACITY_EXCEEDED
                - PREVIEW_MARKET_INSTRUMENT_NOT_FOUND
                - PREVIEW_MARKET_SNAPSHOT_INVALID
                - PREVIEW_OPERATION_CAPACITY_REACHED
                - PREVIEW_WALLET_CHALLENGE_CAPACITY_REACHED
                - PREVIEW_WALLET_CONNECTION_CAPACITY_REACHED
                - PREVIEW_WALLET_FIXTURE_REQUIRED
                - PRODUCT_ACCOUNT_RESTRICTED
                - PRODUCT_LEGAL_ACCEPTANCE_REQUIRED
                - PRODUCT_LEGAL_ACCEPTANCE_UNAVAILABLE
                - PRODUCT_LEGAL_POLICY_MISMATCH
                - PROFILE_NOT_FOUND
                - PROFILE_VERSION_CONFLICT
                - PROJECT_SLUG_UNAVAILABLE
                - QUEUE_UNAVAILABLE
                - QUOTE_EXPIRED
                - QUOTE_NOT_FOUND
                - QUOTE_VENUE_CHANGED
                - QUOTE_WALLET_CHANGED
                - QUOTE_WALLET_MISMATCH
                - RATE_LIMITED
                - RATE_LIMITER_UNAVAILABLE
                - RECIPIENT_IS_SENDER
                - REDIS_UNAVAILABLE
                - REPREPARE_REQUIRED
                - REQUEST_DEADLINE_EXCEEDED
                - RESPONSE_SCHEMA_VIOLATION
                - REVIEW_CONFLICT_OF_INTEREST
                - REVIEW_DECISION_NOT_AUTHORIZED
                - REVIEW_KIND_NOT_AUTHORIZED
                - SCANNER_UNAVAILABLE
                - SERVICE_ACT_AS_REQUIRED
                - SERVICE_PARTY_NOT_ALLOWED
                - SERVICE_PRINCIPAL_BIND_UNAVAILABLE
                - SERVICE_PRINCIPAL_NOT_ALLOWED
                - SESSION_REVOCATION_PROVIDER_UNSUPPORTED
                - SESSION_REVOCATION_UNAVAILABLE
                - SESSION_REVOKED
                - SIGNUP_ALLOWLIST_ADMIN_KEY_REQUIRED
                - SIGNUP_ALLOWLIST_UNAVAILABLE
                - SIGNUP_NOT_INVITED
                - STORAGE_CALLER_AUTH_UNAVAILABLE
                - STORAGE_INSPECTION_FAILED
                - STORAGE_SIGNING_FAILED
                - STORAGE_UNAVAILABLE
                - SUPERAPP_ACTIVITY_PROJECTION_NOT_CONFIGURED
                - SUPERAPP_MARKET_PROJECTION_NOT_CONFIGURED
                - SWAP_CURVE_CAPACITY_EXCEEDED
                - SWAP_MINIMUM_OUTPUT_NOT_MET
                - SWAP_OUTPUT_ROUNDS_TO_ZERO
                - SWAP_QUOTE_ADAPTER_NOT_CONFIGURED
                - SWAP_QUOTE_ALREADY_BOUND
                - SWAP_QUOTE_AMOUNT_OUT_OF_RANGE
                - SWAP_QUOTE_INVALID
                - SWAP_QUOTE_MODEL_CHANGED
                - SWAP_QUOTE_PREVIEW_CAPACITY_REACHED
                - SWAP_QUOTE_UNPRICEABLE
                - SWAP_SELL_EXCEEDS_RELEASED_TOKENS
                - SWAP_SELL_STRANDS_RESIDUAL
                - SWAP_TRADE_BELOW_MINIMUM
                - TICKER_INVALID
                - TICKER_RESERVATION_MISMATCH
                - TICKER_TAKEN
                - TOKEN_LAUNCH_ADAPTER_NOT_CONFIGURED
                - TOKEN_LAUNCH_CREATION_FEE_CHANGED
                - TOKEN_LAUNCH_CREATION_FEE_NOT_SUPPORTED
                - TOKEN_LAUNCH_CREATION_FEE_UNSET
                - TOKEN_LAUNCH_INSUFFICIENT_BALANCE
                - TOKEN_LAUNCH_OPENING_BUY_NOT_SUPPORTED
                - TOKEN_LAUNCH_PERMIT_EXPIRED
                - TOKEN_LAUNCH_PERMIT_NOT_FOUND
                - TOKEN_LAUNCH_QUOTE_ALREADY_BOUND
                - TOKEN_LAUNCH_QUOTE_EXPIRED
                - TOKEN_LAUNCH_QUOTE_INTEGRITY_FAILED
                - TOKEN_LAUNCH_QUOTE_MODEL_CHANGED
                - TOKEN_LAUNCH_QUOTE_NOT_FOUND
                - TOKEN_LAUNCH_QUOTE_PREVIEW_CAPACITY_REACHED
                - TOKEN_LAUNCH_RECORD_INVALID
                - TOKEN_LAUNCH_REGISTRAR_NOT_FOUND
                - TOKEN_LAUNCH_REGISTRAR_TERMS_INVALID
                - TOKEN_LAUNCH_REQUEST_EXPIRED
                - TOKEN_LAUNCH_REQUEST_NOT_FOUND
                - TOKEN_LAUNCH_SUPPLY_INVALID
                - TOKEN_LAUNCH_SUPPLY_NOT_ALLOWED
                - TOKEN_LAUNCH_SUPPLY_SELECTION_NOT_ENABLED
                - TOKEN_LAUNCH_WALLET_CONTEXT_CHANGED
                - TOKEN_NOT_FOUND
                - TOKEN_WALLET_METADATA_NOT_FOUND
                - TRADE_INTENT_NOT_FOUND
                - TRADING_REFERRALS_UNAVAILABLE
                - TRADING_REFERRAL_NOT_FOUND
                - UNSAFE_AUTH_CONFIGURATION
                - UNSAFE_MOCK_NETWORK
                - UNSAFE_PREVIEW_WALLET_VERIFIER
                - UPLOAD_INTENT_EXPIRED
                - UPLOAD_INTENT_NOT_FOUND
                - UPLOAD_INTENT_STATE_CHANGED
                - USD_CANDLES_NOT_CONFIGURED
                - USERNAME_CHANGE_COOLDOWN
                - USERNAME_CHANGE_LIMIT_REACHED
                - USERNAME_IMMUTABLE
                - USERNAME_RESERVED
                - USERNAME_UNAVAILABLE
                - VALIDATION_FAILED
                - VALUATION_ACCOUNT_MISMATCH
                - WALLET_BINDING_RIGHTS_UNAVAILABLE
                - WALLET_CHALLENGE_ALREADY_USED
                - WALLET_CHALLENGE_EXPIRED
                - WALLET_CHALLENGE_INVALID
                - WALLET_CONNECTION_INVALID
                - WALLET_CONNECTION_NOT_FOUND
                - WALLET_CONNECTION_RACE
                - WALLET_NETWORK_CONFLICT
                - WALLET_NOT_OWNED
                - WALLET_ORIGIN_INVALID
                - WALLET_ORIGIN_NOT_ALLOWED
                - WALLET_ORIGIN_REQUIRED
                - WALLET_PARTY_ALREADY_CONNECTED
                - WALLET_PARTY_BINDING_LOCKED
                - WALLET_PARTY_NOT_BINDABLE
                - WALLET_PARTY_NOT_HOSTED
                - WALLET_PROJECTION_INCOMPLETE
                - WALLET_PROJECTION_NOT_CONFIGURED
                - WALLET_REPORT_CONFLICT
                - WALLET_SIGNATURE_INVALID
                - WALLET_SIGNATURE_VERIFIER_NOT_CONFIGURED
                - WITHDRAWAL_MEMO_INVALID
                - WITHDRAWAL_NOT_FOUND
                - WITHDRAWAL_PAYOUT_STARTED
                - WORKFORCE_IDENTITY_NOT_PROVISIONED
                - WORKFORCE_IDENTITY_REQUIRED
              x-supanova-error-code-aliases:
                IDEMPOTENCY_CONFLICT: IDEMPOTENCY_KEY_CONFLICT
              x-supanova-unknown-code-policy: >-
                A newer additive code must render a generic safe failure with
                requestId; never branch on message text.
            details: {}
            message:
              type: string
        requestId:
          type: string
          description: Server-generated authoritative request correlation identifier.
          minLength: 8
          maxLength: 128
          pattern: ^[A-Za-z0-9._:-]+$
    DextoolsError:
      type: object
      additionalProperties: false
      required:
        - code
        - message
        - issues
      properties:
        code:
          type: string
        message:
          type: string
        issues:
          type: array
          items:
            type: object
            additionalProperties: false
            required:
              - message
            properties:
              code:
                type: string
              param:
                type: string
              message:
                type: string
  parameters:
    ServiceActAs:
      name: X-Service-Act-As
      in: header
      required: false
      description: >-
        Service-principal path only (local and devnet stages; refused by
        configuration on mainnet). With an OAuth client-credentials bearer token
        from the validator, names the allow-listed Party the client acts as.
        Missing: 400 `SERVICE_ACT_AS_REQUIRED`; not allow-listed: 403
        `SERVICE_PARTY_NOT_ALLOWED`. Ignored for customer session tokens.
      schema:
        type: string
        minLength: 3
        maxLength: 512
    ApiKeyTimestamp:
      name: X-API-Timestamp
      in: header
      required: false
      description: >-
        Required with `X-API-Key` on `trade` operations: Unix time in
        milliseconds (13 digits), at most 1 s ahead of the server and no older
        than the receive window.
      schema:
        type: string
        pattern: ^[0-9]{13}$
    ApiKeyRecvWindow:
      name: X-API-Recv-Window
      in: header
      required: false
      description: >-
        Optional with `X-API-Key` on `trade` operations: signature validity
        window in milliseconds (default 5000, maximum 60000). It is part of the
        signed string.
      schema:
        type: string
        pattern: ^[0-9]{1,5}$
    ApiKeySignature:
      name: X-API-Signature
      in: header
      required: false
      description: >-
        Required with `X-API-Key` on `trade` operations: Ed25519 signature,
        unpadded base64url (86 characters), of the canonical string (see the
        `apiKey` security scheme).
      schema:
        type: string
        pattern: ^[A-Za-z0-9_-]{86}$
    RequestId:
      description: >-
        Optional client correlation identifier. The server always generates a
        separate authoritative request ID and retains a valid supplied value
        only as secondary audit correlation metadata.
      in: header
      name: X-Request-Id
      required: false
      schema:
        type: string
        minLength: 8
        maxLength: 128
        pattern: ^[A-Za-z0-9._:-]+$
  responses:
    ApiError:
      description: Machine-readable API error. The HTTP status identifies the error class.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiErrorEnvelope'
      headers:
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
    RateLimited:
      description: The caller exceeded an IP or principal request budget.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiErrorEnvelope'
      headers:
        Retry-After:
          $ref: '#/components/headers/RetryAfter'
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
    DextoolsError:
      description: DexTools http-adapter error body.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DextoolsError'
      headers:
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
    DextoolsRateLimited:
      description: The caller exceeded the market-data request budget.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DextoolsError'
      headers:
        Retry-After:
          $ref: '#/components/headers/RetryAfter'
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
  headers:
    RequestId:
      description: >-
        Server-generated request correlation identifier to retain for support
        and reconciliation.
      schema:
        type: string
        minLength: 8
        maxLength: 128
        pattern: ^[A-Za-z0-9._:-]+$
    RetryAfter:
      description: Whole seconds to wait before retrying a rate-limited request.
      schema:
        type: integer
        minimum: 0
security:
  - bearer: []
