# Quick Start

This guide checks API access and retrieves the data that you need before you sign a trading request.

## 1. Select an Environment

Set the HTTP API host from [API Hosts](/protocol-reference/api-hosts).

```bash
export MERIDIAN_API_BASE='https://api.meridiantest.net/v1'
```

Meridian Perpetuals mainnet is not yet live. This guide uses Robinhood Chain testnet.

## 2. Check Server Time

```bash
curl "$MERIDIAN_API_BASE/time"
```

The response contains Unix milliseconds:

```json
{ "time": 1785811200000 }
```

Signed messages have time limits. Synchronize your system clock before you sign.

## 3. Get the Signing Domain

```bash
curl "$MERIDIAN_API_BASE/rpc/config"
```

The response contains:

* `domain.name` and `domain.version`.
* `domain.chainId`.
* `domain.verifyingContract`.
* The EIP-712 type string for each signed action.

Use the returned values exactly. A different chain ID, contract, name, version, or type string produces an invalid signature.

## 4. List Active Products

```bash
curl "$MERIDIAN_API_BASE/product?orderBy=createdAt&order=asc&limit=100"
```

Select a product with `status: "ACTIVE"`. Save its `id`, `lotSize`, `tickSize`, `marginMode`, fees, and risk limits.

For an mPerp, also request its scheduled gaps and projected position fee. See [mPerp and Position-Fee API](/developer-guides/trading-api/rwa-and-position-fees).

## 5. Find or Fund a Subaccount

List subaccounts for the owner address:

```bash
curl "$MERIDIAN_API_BASE/subaccount?sender=0xYOUR_ADDRESS"
```

If the account does not exist, make a deposit. A first deposit creates the first subaccount. See [Token Transfers](/developer-guides/trading-api/token-transfers).

For testnet development, use the [Testnet Faucet](/protocol-reference/testnet-faucet) to claim test USD, get MeridianUSD, and find the current deployment addresses.

If the product uses isolated margin, convert balance to its synthetic quote token before you place an order. See [Token Conversions](/developer-guides/trading-api/token-conversions).

## 6. Sign and Submit

Read [Message Signing](/developer-guides/trading-api/message-signing), then follow [Order Placement](/developer-guides/trading-api/order-placement).

Use [WebSockets](/developer-guides/trading-api/websockets) for the final order state and fills. The immediate HTTP response is not sufficient for taker-order accounting.

You can also use the [official Python SDK](/developer-guides/trading-api/sdk).
