bybit/models/spot_instrument.rs
1use crate::prelude::*;
2
3/// Represents a single spot instrument.
4///
5/// Contains details about a spot trading pair. Not relevant for perpetual futures but included for completeness.
6#[derive(Serialize, Deserialize, Clone, Debug)]
7#[serde(rename_all = "camelCase")]
8pub struct SpotInstrument {
9 /// The trading pair symbol (e.g., "BTCUSDT").
10 ///
11 /// Identifies the spot trading pair. Bots trading perpetuals can ignore this.
12 pub symbol: String,
13
14 /// The base coin (e.g., "BTC").
15 ///
16 /// The underlying asset of the spot pair. Not relevant for perpetuals.
17 pub base_coin: String,
18
19 /// The quote coin (e.g., "USDT").
20 ///
21 /// The currency used to quote the spot pair. Not relevant for perpetuals.
22 pub quote_coin: String,
23
24 /// Indicates if the pair is an innovation token (0 or 1).
25 ///
26 /// Marks new or experimental tokens. Not relevant for perpetuals.
27 #[serde(with = "string_to_u64")]
28 pub innovation: u64,
29
30 /// The trading status (e.g., "Trading").
31 ///
32 /// Indicates if the spot pair is tradable. Not relevant for perpetuals.
33 pub status: String,
34
35 /// Indicates if margin trading is supported.
36 ///
37 /// Specifies whether the spot pair supports margin trading. Not relevant for perpetuals.
38 pub margin_trading: String,
39
40 /// A tag for the spot pair (e.g., for special tokens).
41 ///
42 /// Used for categorization. Not relevant for perpetuals.
43 #[serde(with = "string_to_u64")]
44 pub st_tag: u64,
45
46 /// The lot size constraints.
47 ///
48 /// Defines order quantity constraints for spot trading. Not relevant for perpetuals.
49 pub lot_size_filter: LotSizeFilter,
50
51 /// The price constraints.
52 ///
53 /// Defines price constraints for spot trading. Not relevant for perpetuals.
54 pub price_filter: PriceFilter,
55
56 /// Risk parameters for the spot pair.
57 ///
58 /// Specifies risk-related constraints. Not relevant for perpetuals.
59 pub risk_parameters: RiskParameters,
60}