Backpack · Schema
Backpack Market
JSON Schema for the Backpack Exchange Market resource, extracted from the Backpack Exchange OpenAPI 3.0 specification.
CryptoExchangeWalletTradingPerpetualsSolanaWeb3DeFixNFTAnchorCoralCentralized ExchangeSelf-Custody
Properties
| Name | Type | Description |
|---|---|---|
| symbol | string | Symbol of the market, e.g. `ETH_USDC` |
| baseSymbol | string | The base asset of the market. |
| quoteSymbol | string | The quote asset of the market. |
| marketType | object | The type of the market. |
| filters | object | Price, lot and leverage rules. |
| imfFunction | object | IMF function. |
| mmfFunction | object | MMF function. |
| fundingInterval | integer | Funding interval for perpetuals in milliseconds. |
| fundingRateUpperBound | string | Funding rate upper bound for perpetual markets. In basis points. E.g. 10 = 10bps |
| fundingRateLowerBound | string | Funding rate lower bound for perpetual markets. In basis points. E.g. -10 = -10bps |
| openInterestLimit | string | Maximum open interest limit for the market if the market is a future. |
| orderBookState | object | The order book state. |
| createdAt | string | Market created at time. |
| visible | boolean | Market currently visible. |
| positionLimitWeight | string | Position limit weight coefficient. Used to calculate position limits when clearing a trade. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/backpack/main/json-schema/backpack-market-schema.json",
"title": "Backpack Market",
"description": "JSON Schema for the Backpack Exchange Market resource, extracted from the Backpack Exchange OpenAPI 3.0 specification.",
"type": "object",
"required": [
"symbol",
"baseSymbol",
"quoteSymbol",
"marketType",
"filters",
"orderBookState",
"createdAt",
"visible"
],
"properties": {
"symbol": {
"type": "string",
"description": "Symbol of the market, e.g. `ETH_USDC`"
},
"baseSymbol": {
"type": "string",
"description": "The base asset of the market."
},
"quoteSymbol": {
"type": "string",
"description": "The quote asset of the market."
},
"marketType": {
"description": "The type of the market.",
"allOf": [
{
"$ref": "#/$defs/MarketType"
},
{
"description": "The type of the market."
}
]
},
"filters": {
"description": "Price, lot and leverage rules.",
"allOf": [
{
"$ref": "#/$defs/OrderBookFilters"
},
{
"description": "Price, lot and leverage rules."
}
]
},
"imfFunction": {
"description": "IMF function.",
"allOf": [
{
"$ref": "#/$defs/PositionImfFunction"
},
{
"description": "IMF function."
}
]
},
"mmfFunction": {
"description": "MMF function.",
"allOf": [
{
"$ref": "#/$defs/PositionImfFunction"
},
{
"description": "MMF function."
}
]
},
"fundingInterval": {
"type": "integer",
"format": "uint64",
"description": "Funding interval for perpetuals in milliseconds."
},
"fundingRateUpperBound": {
"type": "string",
"format": "decimal",
"description": "Funding rate upper bound for perpetual markets. In basis points. E.g. 10\n= 10bps"
},
"fundingRateLowerBound": {
"type": "string",
"format": "decimal",
"description": "Funding rate lower bound for perpetual markets. In basis points. E.g.\n-10 = -10bps"
},
"openInterestLimit": {
"type": "string",
"format": "decimal",
"description": "Maximum open interest limit for the market if the market is a future."
},
"orderBookState": {
"description": "The order book state.",
"allOf": [
{
"$ref": "#/$defs/OrderBookState"
},
{
"description": "The order book state."
}
]
},
"createdAt": {
"type": "string",
"format": "naive-date-time",
"description": "Market created at time."
},
"visible": {
"type": "boolean",
"description": "Market currently visible."
},
"positionLimitWeight": {
"type": "string",
"format": "decimal",
"description": "Position limit weight coefficient.\nUsed to calculate position limits when clearing a trade."
}
},
"$defs": {
"MarketType": {
"type": "string",
"enum": [
"SPOT",
"PERP",
"IPERP",
"DATED",
"PREDICTION",
"RFQ"
]
},
"OrderBookFilters": {
"type": "object",
"title": "OrderBookFilters",
"required": [
"price",
"quantity"
],
"properties": {
"price": {
"description": "Defines the price rules for the order book.",
"allOf": [
{
"$ref": "#/$defs/PriceFilter"
},
{
"description": "Defines the price rules for the order book."
}
]
},
"quantity": {
"description": "Defines the quantity rules for the order book.",
"allOf": [
{
"$ref": "#/$defs/QuantityFilter"
},
{
"description": "Defines the quantity rules for the order book."
}
]
}
}
},
"PriceFilter": {
"type": "object",
"title": "PriceFilter",
"required": [
"minPrice",
"tickSize"
],
"properties": {
"minPrice": {
"type": "string",
"format": "decimal",
"description": "Minimum price the order book will allow."
},
"maxPrice": {
"type": "string",
"format": "decimal",
"description": "Maximum price the order book will allow."
},
"tickSize": {
"type": "string",
"format": "decimal",
"description": "Price increment."
},
"maxMultiplier": {
"type": "string",
"format": "decimal",
"description": "Maximum allowed multiplier from last active price."
},
"minMultiplier": {
"type": "string",
"format": "decimal",
"description": "Minimum allowed multiplier from last active price."
},
"maxImpactMultiplier": {
"type": "string",
"format": "decimal",
"description": "Maximum allowed impact multiplier from best offer. This\ndetermines how far above the best ask a market buy can penetrate."
},
"minImpactMultiplier": {
"type": "string",
"format": "decimal",
"description": "Minimum allowed impact multiplier from best bid. This\ndetermines how far below the best bid a market sell can penetrate."
},
"meanMarkPriceBand": {
"description": "Futures price band. Used to determine how far the price is allowed to\ndeviate from the mean mark price.",
"allOf": [
{
"$ref": "#/$defs/PriceBandMarkPrice"
},
{
"description": "Futures price band. Used to determine how far the price is allowed to\ndeviate from the mean mark price."
}
]
},
"meanPremiumBand": {
"description": "Futures price band. Used to determine how far the premium is allowed to\ndeviate from the mean premium.",
"allOf": [
{
"$ref": "#/$defs/PriceBandMeanPremium"
},
{
"description": "Futures price band. Used to determine how far the premium is allowed to\ndeviate from the mean premium."
}
]
},
"borrowEntryFeeMaxMultiplier": {
"type": "string",
"format": "decimal",
"description": "Maximum allowed multiplier move from last active price without incurring\nan entry fee for spot margin."
},
"borrowEntryFeeMinMultiplier": {
"type": "string",
"format": "decimal",
"description": "Minimum allowed multiplier move from last active price without incurring\nan entry fee for spot margin."
},
"maxPriceUpdateMultiplier": {
"type": "string",
"format": "decimal",
"description": "Maximum allowed multiplier for mark/index price updates relative to\nthe previous mark/index price. When set, an update is capped at\n`prev * max_price_update_multiplier`."
},
"minPriceUpdateMultiplier": {
"type": "string",
"format": "decimal",
"description": "Minimum allowed multiplier for mark/index price updates relative to\nthe previous mark/index price. When set, an update is floored at\n`prev * min_price_update_multiplier`."
}
}
},
"PriceBandMarkPrice": {
"type": "object",
"title": "PriceBandMarkPrice",
"required": [
"maxMultiplier",
"minMultiplier"
],
"properties": {
"maxMultiplier": {
"type": "string",
"format": "decimal",
"description": "Maximum allowed multiplier move from mean price."
},
"minMultiplier": {
"type": "string",
"format": "decimal",
"description": "Minimum allowed multiplier move from mean price."
}
}
},
"PriceBandMeanPremium": {
"type": "object",
"title": "PriceBandMeanPremium",
"required": [
"tolerancePct"
],
"properties": {
"tolerancePct": {
"type": "string",
"format": "decimal",
"description": "Maximum allowed deviation from the mean premium. E.g. if\n`tolerance_pct` is 0.05 (5%), and the mean premium is 5%, then\norders will be prevented from being placed if the premium exceeds 10%."
}
}
},
"QuantityFilter": {
"type": "object",
"title": "QuantityFilter",
"required": [
"minQuantity",
"stepSize"
],
"properties": {
"minQuantity": {
"type": "string",
"format": "decimal",
"description": "Minimum quantity the order book will allow.\n\nFor futures, this will be the threshold at which a position gets closed\nand so it should be as close as possible, preferably equal, to the\n`step_size`."
},
"maxQuantity": {
"type": "string",
"format": "decimal",
"description": "Maximum quantity the order book will allow."
},
"stepSize": {
"type": "string",
"format": "decimal",
"description": "Quantity increment."
}
}
},
"PositionImfFunction": {
"type": "object",
"anyOf": [
{
"$ref": "#/$defs/PositionImfFunction_SqrtFunction"
}
],
"discriminator": {
"propertyName": "type",
"mapping": {
"sqrt": "#/components/schemas/PositionImfFunction_SqrtFunction"
}
}
},
"PositionImfFunction_SqrtFunction": {
"allOf": [
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"sqrt"
],
"example": "sqrt"
}
}
},
{
"$ref": "#/$defs/SqrtFunction"
}
]
},
"SqrtFunction": {
"type": "object",
"title": "SqrtFunction",
"required": [
"base",
"factor"
],
"properties": {
"base": {
"type": "string",
"format": "decimal"
},
"factor": {
"type": "string",
"format": "decimal"
}
}
},
"OrderBookState": {
"type": "string",
"enum": [
"Open",
"Closed",
"CancelOnly",
"LimitOnly",
"PostOnly"
]
}
}
}