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

# Contract addresses for a chain

> The contract addresses the app uses for one chain, read from `packages/abis/deployments/<chainId>.json` on
every request (`source: deployment-file`). For the default chain only, when the file is absent, the addresses
can come from `NEXT_PUBLIC_*` environment variables (`source: env`). When neither yields the required set,
`addresses` is `null` and `source` is `none`. An unknown chain id answers `400`.




## OpenAPI

````yaml /openapi/windrose.yaml get /api/deployment
openapi: 3.1.0
info:
  title: Windrose API
  version: 1.0.0
  summary: Public indexer and web-app endpoints for Windrose.
  description: >
    Windrose runs one [Ponder](https://ponder.sh) indexer per chain. Each
    indexer serves the GraphQL API at

    `POST /graphql` plus the status routes below. The two `/api/*` routes are
    served by the web app on

    `https://windrose.market` and describe the registered chains and their
    contract addresses.


    No authentication. Every response carries `access-control-allow-origin: *`.
    The endpoints are public and best-effort.
  contact:
    name: Windrose
    url: https://windrose.market
servers:
  - url: https://api.windrose.market
    description: Robinhood Chain indexer
  - url: https://api.windrose.market/testnet
    description: Robinhood testnet indexer
  - url: https://api-arc.windrose.market
    description: Arc testnet indexer
security: []
tags:
  - name: GraphQL
    description: >-
      The indexer's GraphQL API. Conventions and per-table queries are
      documented in the GraphQL pages.
  - name: Indexer status
    description: >-
      Liveness, readiness, indexing progress and Prometheus metrics of an
      indexer.
  - name: Web app
    description: JSON routes of the Windrose web app on windrose.market.
paths:
  /api/deployment:
    get:
      tags:
        - Web app
      summary: Contract addresses for a chain
      description: >
        The contract addresses the app uses for one chain, read from
        `packages/abis/deployments/<chainId>.json` on

        every request (`source: deployment-file`). For the default chain only,
        when the file is absent, the addresses

        can come from `NEXT_PUBLIC_*` environment variables (`source: env`).
        When neither yields the required set,

        `addresses` is `null` and `source` is `none`. An unknown chain id
        answers `400`.
      operationId: deployment
      parameters:
        - name: chainId
          in: query
          required: false
          description: Chain id from the registry. Defaults to the app's default chain.
          schema:
            type: integer
            enum:
              - 4663
              - 46630
              - 5042002
              - 5042
          example: 4663
      responses:
        '200':
          description: The addresses, or `null` when the chain has no deployment.
          headers:
            cache-control:
              schema:
                type: string
              example: no-store
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeploymentResponse'
              examples:
                robinhood:
                  summary: Robinhood Chain (deployment file)
                  value:
                    chainId: 4663
                    source: deployment-file
                    path: deployments/4663.json
                    addresses:
                      factory: '0x3057566F58742B113Db615b2cb0E1085E766Ac54'
                      router: '0xae4E359895B7a232eEA55238256dcbDa9851c1CF'
                      registry: '0xc3A0ac0eF92392A37287AfE99D401679BA00988a'
                      stateView: '0xF3334192D15450CdD385c8B70e03f9A6bD9E673b'
                      usdc: '0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168'
                      usdcSymbol: USDG
                      usdcMintable: false
                      keeperOracle: '0x213cC7E5268563a05dbB8C7eF11680E595c7e63e'
                      poolManager: '0x8366a39CC670B4001A1121B8F6A443A643e40951'
                      currencies:
                        INR:
                          synth: '0x22A2Ab77a9Cc29427f3E79AB9D925AE224787c8E'
                          vault: '0x2B55f325a7e84009C659148a36285cAfBDf4BE85'
                        JPY:
                          synth: '0xAC5A99Fd60B1Ac2129BDe306A6AAdc1B8b6ea4eb'
                          vault: '0x42f9A4cC2da15d13807A1Be09f3C538100ccC40f'
                none:
                  summary: A registered chain without a deployment
                  value:
                    chainId: 5042
                    source: none
                    addresses: null
        '400':
          description: The chain id is not a positive integer or is not in the registry.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
              examples:
                unregistered:
                  summary: Not in the registry
                  value:
                    error: >-
                      chain id 1 is not in the registry
                      packages/abis/chains.json. Known chains: 5042002
                      (arc-testnet), 5042 (arc), 46630 (robinhood-testnet), 4663
                      (robinhood)
                malformed:
                  summary: Not an integer
                  value:
                    error: chain id "abc" is not a positive integer
      servers:
        - url: https://windrose.market
          description: Windrose web app
components:
  schemas:
    DeploymentResponse:
      type: object
      required:
        - chainId
        - source
        - addresses
      properties:
        chainId:
          type: integer
        source:
          type: string
          enum:
            - deployment-file
            - env
            - none
          description: Where the addresses came from.
        path:
          type: string
          description: >-
            Present with `source: deployment-file`; the file as
            `deployments/<chainId>.json`.
        addresses:
          oneOf:
            - $ref: '#/components/schemas/Addresses'
            - type: 'null'
    Addresses:
      type: object
      required:
        - factory
        - router
        - registry
        - stateView
        - usdc
        - usdcSymbol
        - usdcMintable
      properties:
        factory:
          $ref: '#/components/schemas/Address'
        router:
          $ref: '#/components/schemas/Address'
        registry:
          $ref: '#/components/schemas/Address'
        stateView:
          $ref: '#/components/schemas/Address'
        usdc:
          allOf:
            - $ref: '#/components/schemas/Address'
          description: >-
            The dollar token launches settle in (USDC on Arc, USDG on Robinhood
            Chain). The field keeps its contract-facing name.
        usdcSymbol:
          type: string
          description: ERC-20 symbol of `usdc`.
        usdcMintable:
          type: boolean
          description: '`usdc` is a mock with a public mint (testnets).'
        keeperOracle:
          $ref: '#/components/schemas/Address'
        poolManager:
          $ref: '#/components/schemas/Address'
        eurc:
          $ref: '#/components/schemas/Address'
        currencies:
          type: object
          description: >-
            Windrose currencies keyed by ISO code, each with its synthetic token
            and vault.
          additionalProperties:
            type: object
            required:
              - synth
              - vault
            properties:
              synth:
                $ref: '#/components/schemas/Address'
              vault:
                $ref: '#/components/schemas/Address'
    Address:
      type: string
      pattern: ^0x[0-9a-fA-F]{40}$
      description: EVM address, checksummed as written in the deployment file.
      example: '0x3057566F58742B113Db615b2cb0E1085E766Ac54'

````