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

# perpDexs | Hyperliquid info

> The info endpoint with type: "perpDexs" retrieves information about all available perpetual DEXs (Decentralized Exchanges) on the Hyperliquid ecosystem.

<Info>
  This method is available on Chainstack. Not all Hyperliquid methods are available on Chainstack, as the open-source node implementation does not support them yet — see [Hyperliquid methods](/docs/hyperliquid-methods) for the full availability breakdown.
</Info>

<Note>
  The `perpDexs` call will return non-null when [HIP-3: Builder-Deployed Perpetuals](https://hyperliquid.gitbook.io/hyperliquid-docs/hyperliquid-improvement-proposals-hips/hip-3-builder-deployed-perpetuals) goes live on the mainnet.
</Note>

The `info` endpoint with `type: "perpDexs"` retrieves information about all available perpetual DEXs (Decentralized Exchanges) on the Hyperliquid ecosystem. This endpoint provides basic identification and deployment information for each perpetual DEX instance.

## Parameters

### Request body

* `type` (string, required) — The request type. Must be `"perpDexs"` to retrieve perpetual DEXs information.

## Response

The response is an array of perpetual DEX information. Each element in the array can be:

### Default DEX (first element)

* `null` — Represents the default/first perpetual DEX

### Additional DEXs

For non-default DEXs, each object contains:

* `name` (string) — Short name of the perpetual DEX
* `full_name` (string) — Full descriptive name of the DEX
* `deployer` (string) — Ethereum address of the DEX deployer in 42-character hexadecimal format
* `oracle_updater` (string or null) — Address responsible for oracle updates, or null if not applicable

## Example request

<CodeGroup>
  ```shell Shell theme={"system"}
  curl -X POST \
    -H "Content-Type: application/json" \
    -d '{"type": "perpDexs"}' \
    https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/info
  ```

  ```python Python (hyperliquid-python-sdk) theme={"system"}
  from hyperliquid.info import Info

  info = Info("YOUR_CHAINSTACK_ENDPOINT", skip_ws=True)

  perp_dexs = info.perp_dexs()
  print(perp_dexs)
  ```

  ```typescript TypeScript (@nktkas/hyperliquid) theme={"system"}
  import { HttpTransport, InfoClient } from "@nktkas/hyperliquid";

  const transport = new HttpTransport({ apiUrl: "YOUR_CHAINSTACK_ENDPOINT" });
  const info = new InfoClient({ transport });

  const perpDexs = await info.perpDexs();
  console.log(perpDexs);
  ```
</CodeGroup>

<Note>
  **Use your own endpoint in your code.** The code examples use a placeholder Chainstack endpoint (YOUR\_CHAINSTACK\_ENDPOINT) — replace it with your own Hyperliquid node endpoint from the [Chainstack console](https://console.chainstack.com/). The curl above uses a shared public endpoint for quick checks only; do not use it in production.
</Note>

## Example response

```json theme={"system"}
[
  null,
  {
    "name": "test",
    "full_name": "test dex",
    "deployer": "0x5e89b26d8d66da9888c835c9bfcc2aa51813e152",
    "oracle_updater": null
  }
]
```

## Use case

The `info` endpoint with `type: "perpDexs"` is essential for applications that need to:

* **DEX enumeration**: List available perpetual DEX instances on Hyperliquid
* **DEX identification**: Identify DEX names and deployment information
* **Integration mapping**: Map DEX names to their deployer addresses for integration purposes
* **System discovery**: Discover available trading venues within the Hyperliquid ecosystem
* **Oracle tracking**: Identify which DEXs have oracle updaters and their addresses
* **Deployment monitoring**: Track DEX deployments and their associated addresses
* **Multi-DEX support**: Build applications that can work with multiple DEX instances
* **Administration tools**: Create tools for managing and monitoring DEX instances

This endpoint provides basic information about the perpetual DEX ecosystem on Hyperliquid, allowing applications to discover and identify available trading venues.


## OpenAPI

````yaml openapi/hyperliquid_node_api/hypercore_info/info_perpdexs.json post /4f8d8f4040bdacd1577bff8058438274/info
openapi: 3.0.0
info:
  title: Hyperliquid Node API
  version: 1.0.0
  description: This is an API for interacting with Chainstack Hyperliquid node.
servers:
  - url: https://hyperliquid-mainnet.core.chainstack.com
security: []
paths:
  /4f8d8f4040bdacd1577bff8058438274/info:
    post:
      tags:
        - hyperliquid operations
      summary: info (perpDexs)
      operationId: infoPerpDexs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  default: perpDexs
                  enum:
                    - perpDexs
                  description: >-
                    Request type to retrieve available perpetual DEXs
                    information
              required:
                - type
      responses:
        '200':
          description: List of available perpetual DEXs and their configurations
          content:
            application/json:
              schema:
                type: array
                description: >-
                  List of perpetual DEXs. The first element is null to represent
                  the default DEX.
                items:
                  type: object
                  nullable: true
                  properties:
                    name:
                      type: string
                      description: Short name of the perpetual DEX
                    full_name:
                      type: string
                      description: Full descriptive name of the DEX
                    deployer:
                      type: string
                      description: Address of the DEX deployer (42-char hex)
                    oracle_updater:
                      type: string
                      nullable: true
                      description: >-
                        Address responsible for oracle updates, or null if not
                        applicable
              example:
                - null
                - name: test
                  full_name: test dex
                  deployer: '0x5e89b26d8d66da9888c835c9bfcc2aa51813e152'
                  oracle_updater: null

````