# Products

## Overview

Products are the financial instruments available for trading within the exchange. Each product represents a distinct market with specific trading rules and risk parameters. At launch, Ethereal will offer only perpetual futures contracts, which serve as the foundation for all trading activity on the platform.

### **Product Configuration**

Perpetual futures are derivative contracts that track underlying asset prices without expiration dates. Key specifications include contract size, minimum tick size, maximum leverage ratios, and funding rate mechanisms that align contract prices with spot markets. Each contract defines margin requirements, position limits, and liquidation parameters for risk management.

Product configuration is mostly smart contract driven. All smart contract product and product related configuration updates emit an event, an offchain indexer consumes this event and propagates changes downstream.

You can query for product details directly in the smart contracts or through the API.

```bash
curl -X 'GET' \
  'https://api.ethereal.trade/v1/product?limit=3&orderBy=createdAt' \
  -H 'accept: application/json'
```

```json
{
  "data": [
    {
      "id": "bc7d5575-3711-4532-a000-312bfacfb767",
      "ticker": "BTCUSD",
      "displayTicker": "BTC-USD",
      "engineType": 0,
      "onchainId": 1,
      "status": "ACTIVE",
      "blockNumber": "18539",
      "baseTokenAddress": "0x0000000000000000000000000000000000000000",
      "quoteTokenAddress": "0xb6fc4b1bff391e5f6b4a3d2c7bda1fee3524692d",
      "baseTokenName": "BTC",
      "quoteTokenName": "USD",
      "lotSize": "0.00001",
      "tickSize": "1",
      "makerFee": "0",
      "takerFee": "0.0003",
      "maxQuantity": "25",
      "minQuantity": "0.00015",
      "minPrice": "1",
      "maxPrice": "10112491",
      "volume24h": "124.37599",
      "createdAt": 1760542037979,
      "cumulativeFundingUsd": "3060.652239657",
      "fundingUpdatedAt": 1774238400004,
      "fundingRate1h": "-0.000010972",
      "openInterest": "967.10276",
      "maxLeverage": 20,
      "maxOpenInterestUsd": "70000000",
      "maxPositionNotionalUsd": "5000000",
      "pythFeedId": 1,
      "fundingClampApr": "0.01",
      "fundingBaselineApr": "0.1",
      "fundingMaxApr": "2"
    },
    {
      "id": "480014cc-536e-4fd4-958b-b2afcf8ce09f",
      "ticker": "ETHUSD",
      "displayTicker": "ETH-USD",
      "engineType": 0,
      "onchainId": 2,
      "status": "ACTIVE",
      "blockNumber": "18539",
      "baseTokenAddress": "0x0000000000000000000000000000000000000000",
      "quoteTokenAddress": "0xb6fc4b1bff391e5f6b4a3d2c7bda1fee3524692d",
      "baseTokenName": "ETH",
      "quoteTokenName": "USD",
      "lotSize": "0.0001",
      "tickSize": "0.1",
      "makerFee": "0",
      "takerFee": "0.0003",
      "maxQuantity": "500",
      "minQuantity": "0.005",
      "minPrice": "0.1",
      "maxPrice": "1004105",
      "volume24h": "2485.8782",
      "createdAt": 1760542037979,
      "cumulativeFundingUsd": "123.864177288",
      "fundingUpdatedAt": 1774238400004,
      "fundingRate1h": "0.000004637",
      "openInterest": "21606.4752",
      "maxLeverage": 20,
      "maxOpenInterestUsd": "40000000",
      "maxPositionNotionalUsd": "4000000",
      "pythFeedId": 2,
      "fundingClampApr": "0.01",
      "fundingBaselineApr": "0.1",
      "fundingMaxApr": "2"
    },
    {
      "id": "628098e9-f7a3-4ae7-9996-149aac4ca435",
      "ticker": "SOLUSD",
      "displayTicker": "SOL-USD",
      "engineType": 0,
      "onchainId": 3,
      "status": "ACTIVE",
      "blockNumber": "18541",
      "baseTokenAddress": "0x0000000000000000000000000000000000000000",
      "quoteTokenAddress": "0xb6fc4b1bff391e5f6b4a3d2c7bda1fee3524692d",
      "baseTokenName": "SOL",
      "quoteTokenName": "USD",
      "lotSize": "0.001",
      "tickSize": "0.01",
      "makerFee": "0",
      "takerFee": "0.0003",
      "maxQuantity": "2500",
      "minQuantity": "0.117",
      "minPrice": "0.01",
      "maxPrice": "100203",
      "volume24h": "12173.187",
      "createdAt": 1760542038423,
      "cumulativeFundingUsd": "-2.74403397",
      "fundingUpdatedAt": 1774238400004,
      "fundingRate1h": "0.000011415",
      "openInterest": "45054.294",
      "maxLeverage": 10,
      "maxOpenInterestUsd": "10000000",
      "maxPositionNotionalUsd": "1500000",
      "pythFeedId": 6,
      "fundingClampApr": "0.01",
      "fundingBaselineApr": "0.1",
      "fundingMaxApr": "0.95"
    }
  ],
  "hasNext": true,
  "nextCursor": "eyJpZCI6M30="
}
```

### Market Prices

Ethereal exclusively utilizes **Pyth Lazer** as our oracle provider to provide markets with mark prices. Pyth Lazer delivers high-quality, low-latency price feeds that power critical functions across our trading infrastructure. You can learn more about Pyth Lazer by visiting [their site](https://www.pyth.network/pyth-price-feeds) or reading their [docs](https://docs.pyth.network/lazer).

Oracle prices from Pyth Lazer serve two primary functions within Ethereal.

### Retrieving Relevant Market Prices

Ethereal trading API provides access to last mark (oracle), best bid, and best ask prices either through the HTTP API or websockets.

Please refer to [Websocket Subscriptions](/developer-guides/trading-api/websockets.md) section for details on how you can receive price updates via websockets.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ethereal.trade/developer-guides/trading-api/products.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
