Skip to main content
Every tradeable market on the Derive v3 API is identified by a human-readable instrument_name string. The same string is used everywhere an instrument is referenced: order parameters, RFQ legs, ticker and orderbook queries, and real-time subscription channels. Names are case-sensitive and uppercase. Each name encodes the market’s currency and, for options, its expiry, strike, and type.

Formats

Spot

<BASE>-<QUOTE>

Perpetual

<CURRENCY>-PERP

Option

<CURRENCY>-<YYYYMMDD>-<STRIKE>-<C|P>

Spot

A spot instrument names its base and quote currency, separated by a hyphen — for example ETH-USDC. The quote currency must match the settlement (cash) currency of the market’s risk universe.

Perpetual

A perpetual is the currency ticker followed by the literal suffix -PERP, for example BTC-PERP.

Option

An option name has four segments:
1

Currency

The underlying ticker, e.g. ETH.
2

Expiry (YYYYMMDD)

The expiry date as an 8-digit YYYYMMDD. Options settle at 08:00 UTC on that date. 20240914 is 14 September 2024.
3

Strike

The strike price. Integer strikes have no decimal (2400). Fractional strikes use an underscore as the decimal point with trailing zeros trimmed (2400_5 = 2400.5). Strikes finer than 1e-6 are rejected.
4

Type

C for a call, P for a put.
So ETH-20240914-2400-C is an ETH call struck at 2400 expiring 08:00 UTC on 14 September 2024.

Risk universe suffix

An instrument name may carry an optional trailing -<RISK_UNIVERSE_ID> segment, where the id is an unsigned integer — for example ETH-USDC-42 or ETH-PERP-42. This disambiguates markets on the same currency that belong to different risk universes.
For each name shape, exactly one instrument may omit the suffix (assigned first-come, first-served). All others must include it. When present, the id is validated against the instrument’s configured risk universe.

Querying instruments

Instrument names are assigned by the exchange, not constructed by clients — the authoritative list comes from the market-data methods. Filter by type using the instrument_type enum, whose values are:
Use public/get_all_live_instruments for only currently tradeable markets, or public/get_instrument for the full spec of a single name. See the API Reference tab for the complete response shapes.

Where instrument names are used

Once you have a name, use it verbatim wherever an instrument is referenced:
  • Order and RFQ parametersinstrument_name on private/order, private/order_quote, and each RFQ leg.
  • Market datapublic/get_ticker, public/get_instrument, and related lookups.
  • Real-time channels — the name is a path segment, e.g. orderbook.{instrument_name}.{group}.{depth}, ticker_slim.{instrument_name}.{interval}, and trades.{instrument_name}. Trade channels can also filter by instrument_type and currency.
Instrument names are case-sensitive and must be uppercase. A lowercase or malformed name is rejected — see Error codes.
For the list of currencies and settlement assets, see public/get_all_currencies.