본문으로 건너뛰기

DeepBookV3 인덱서

DeepBookV3 인덱서는 DeepBookV3 프로토콜의 오더북 및 거래 데이터에 효율적이고 실시간으로 접근할 수 있게 한다. 이 인덱서는 DeepBookV3와 상호 작용하는 개발자, 트레이더, 분석가를 위해 중요한 데이터 포인트를 집계하고 노출하는 중앙화된 서비스 역할을 한다.

DeepBookV3 인덱서는 다음을 가능하게 하는 엔드포인트를 제공하여 데이터 조회를 단순화한다:

  • Viewing 풀 information: 기본 자산과 견적 자산, tick sizes, lot sizes를 포함하여 사용 가능한 모든 거래 풀에 대한 자세한 메타데이터를 조회한다.
  • Historical volume analysis: 간격 기반 breakdown을 지원하면서 특정 풀 또는 BalanceManager에 대한 거래량 메트릭을 사용자 정의 시간 범위로 가져온다.
  • User-specific volume tracking: BalanceManager별 volume을 조회하여 개별 trader 활동에 대한 인사이트를 제공한다.
  • OHLCV candlestick data: 구성 가능한 간격로 technical analysis를 위한 candlestick chart data에 접근한다.
  • DeepBook Margin data: loans, liquidations, 마진 풀 operations를 포함한 margin trading events를 조회한다.

공개 인덱서를 사용하거나 직접 서비스를 구동할 수 있다. 선택은 몇 가지 요소에 따라 달라진다.

다음과 같은 경우 공개 서비스를 사용한다:

  • 표준적인 데이터 요구 사항을 가진다.
  • 공개 엔드포인트가 제공하는 지연 시간과 가용성이 요구 사항을 충족한다.
  • 자체 서비스를 운영하는 운영 오버헤드를 피하고 싶다.

다음과 같은 경우 자체 인덱서를 실행한다:

  • 보장된 업타임과 낮은 지연 시간이 필요하다.
  • 특정한 커스터마이징 요구 사항이 있다.
  • 애플리케이션이 독자적인 기능 또는 확장된 데이터 세트에 의존한다.

Public DeepBookV3 Indexer

Mysten Labs는 DeepBookV3를 위한 public 인덱서를 제공한다.

Mainnet

https://deepbook-indexer.mainnet.mystenlabs.com/

Testnet

https://deepbook-indexer.testnet.mystenlabs.com/

자산 변환

다음 엔드포인트가 반환하는 volume은 해당 자산의 최소 단위로 표현된다.

  • /all_historical_volume
  • /historical_volume
  • /historical_volume_by_balance_manager_id
  • /historical_volume_by_balance_manager_id_with_interval

다음은 각 자산의 base 단위를 결정하는 데 사용되는 decimal places(scalars)이다.

AssetScalar
ALKIMI9
AUSD6
Bridged Eth (BETH)8
DEEP6
DRF6
IKA9
LayerZero WBTC (LZWBTC)8
Native USDC6
NS6
SEND6
SUI9
TYPUS9
WAL9
Wormhole USDC (WUSDC)6
Wormhole USDT (WUSDT)6
xBTC8

반환된 volume을 표준 자산 단위로 변환하려면 값을 10^SCALAR로 나눈다. 예를 들어:

SUI/USDC 풀의 베이스 자산에 대해 반환된 volume이 1,000,000,000 SUI UNIT인 경우, SUI에서의 올바른 volume은 1,000,000,000 / 10^(SUI_SCALAR) = 1 SUI이다. 마찬가지로 SUI/USDC 풀의 견적 자산에 대해 반환된 volume이 1,000,000,000 USDC UNIT인 경우, 올바른 volume은 1,000,000,000 / 10^(USDC_SCALAR) = 1,000 USDC이다.

이러한 변환을 사용하여 모든 풀과 자산에 걸쳐 volume을 올바르게 해석한다.

API 엔드포인트

DeepBookV3용 인덱서 API가 제공하는 엔드포인트를 사용하여 다음 작업을 수행할 수 있다.

Click to open
Get all 풀 information
/get_pools

사용 가능한 모든 풀의 목록을 반환하며, 각 풀에는 베이스 자산과 견적 자산에 대한 자세한 정보와 minimum size, lot size, tick size 같은 풀 파라미터가 포함된다.

응답

[
{
"pool_id": "string",
"pool_name": "string",
"base_asset_id": "string",
"base_asset_decimals": integer,
"base_asset_symbol": "string",
"base_asset_name": "string",
"quote_asset_id": "string",
"quote_asset_decimals": integer,
"quote_asset_symbol": "string",
"quote_asset_name": "string",
"min_size": integer,
"lot_size": integer,
"tick_size": integer
},
...
]

응답의 각 풀 객체에는 다음 필드가 포함된다:

  • 풀_id: 풀의 ID이다.
  • 풀_name: 풀의 이름이다.
  • base_자산_id: 베이스 자산의 ID이다.
  • base_자산_decimals: 베이스 자산의 소수 자릿수이다.
  • base_자산_symbol: 베이스 자산의 symbol이다.
  • base_자산_name: 베이스 자산의 이름이다.
  • quote_자산_id: 견적 자산의 ID이다.
  • quote_자산_decimals: 견적 자산의 소수 자릿수이다.
  • quote_자산_symbol: 견적 자산의 symbol이다.
  • quote_자산_name: 견적 자산의 이름이다.
  • min_size: 베이스 자산의 최소 단위로 표현된 풀의 minimum trade size이다.
  • lot_size: 이 풀에서 베이스 자산의 최소 단위로 표현된 trades의 minimum increment이다.
  • tick_size: 이 풀에서 trades를 위한 minimum price increment이다.

예시

다음 엔드포인트에 대한 성공적인 요청은

/get_pools

다음과 유사한 응답을 생성한다

[
{
"pool_id": "0xb663828d6217467c8a1838a03793da896cbe745b150ebd57d82f814ca579fc22",
"pool_name": "DEEP_SUI",
"base_asset_id": "0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP",
"base_asset_decimals": 6,
"base_asset_symbol": "DEEP",
"base_asset_name": "DeepBook Token",
"quote_asset_id": "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI",
"quote_asset_decimals": 9,
"quote_asset_symbol": "SUI",
"quote_asset_name": "Sui",
"min_size": 100000000,
"lot_size": 10000000,
"tick_size": 10000000
},
{
"pool_id": "0xf948981b806057580f91622417534f491da5f61aeaf33d0ed8e69fd5691c95ce",
"pool_name": "DEEP_USDC",
"base_asset_id": "0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP",
"base_asset_decimals": 6,
"base_asset_symbol": "DEEP",
"base_asset_name": "DeepBook Token",
"quote_asset_id": "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC",
"quote_asset_decimals": 6,
"quote_asset_symbol": "USDC",
"quote_asset_name": "USDC",
"min_size": 100000000,
"lot_size": 10000000,
"tick_size": 10000
}
]
Click to open
Get 과거 거래량 for 풀 in a specific time range
/historical_volume/:pool_names?start_time=<UNIX_TIMESTAMP_SECONDS>&end_time=<UNIX_TIMESTAMP_SECONDS>&volume_in_base=<BOOLEAN>

이 엔드포인트를 사용하여 특정 시간 범위 동안 풀의 과거 volume을 가져온다. pool_names는 쉼표로 구분하고 start_timeend_time 값에는 유닉스 타임스탬프 초를 사용한다.

기본적으로 이 엔드포인트는 지정된 풀에 대해 견적 자산 기준의 최근 24시간 거래량을 가져온다. 베이스 자산을 기준으로 조회하려면 volume_in_basetrue로 설정한다.

응답

지정된 각 풀에 대해 주어진 시간 범위 내의 과거 volume을 반환한다.

{
"pool_name_1": total_pool1_volume,
"pool_name_2": total_pool2_volume,
...
}

예시

다음 엔드포인트에 대한 성공적인 요청은

/historical_volume/DEEP_SUI,SUI_USDC?start_time=1731260703&end_time=1731692703&volume_in_base=true

다음과 유사한 응답을 생성한다

{
"DEEP_SUI": 22557460000000,
"SUI_USDC": 19430171000000000
}
Click to open
Get 과거 거래량 for all 풀
/all_historical_volume?start_time=<UNIX_TIMESTAMP_SECONDS>&end_time=<UNIX_TIMESTAMP_SECONDS>&volume_in_base=<BOOLEAN>

이 엔드포인트를 사용하여 모든 풀에 대한 과거 volume을 가져온다. 해당 시간 범위의 volume을 조회하려면 선택적인 start_timeend_time 값을 유닉스 타임스탬프 초로 포함한다.

기본적으로 이 엔드포인트는 견적 자산 기준의 최근 24시간 거래량을 가져온다. 베이스 자산을 기준으로 조회하려면 volume_in_basetrue로 설정한다.

응답

제공된 시간 범위(있는 경우) 내에서 사용 가능한 모든 풀에 대한 과거 volume을 반환한다.

{
"pool_name_1": total_pool1_volume,
"pool_name_2": total_pool2_volume
}

예시

다음 엔드포인트에 대한 성공적인 요청은

/all_historical_volume?start_time=<UNIX_TIMESTAMP_SECONDS>&end_time=<UNIX_TIMESTAMP_SECONDS>&volume_in_base=<BOOLEAN>

다음과 유사한 응답을 생성한다

{
"DEEP_SUI": 22557460000000,
"WUSDT_USDC": 10265000000,
"NS_USDC": 4399650900000,
"NS_SUI": 6975475200000,
"SUI_USDC": 19430171000000000,
"WUSDC_USDC": 23349574900000,
"DEEP_USDC": 130000590000000
}
Click to open
Get 과거 거래량 by BalanceManager
/historical_volume_by_balance_manager_id/:pool_names/:balance_manager_id?start_time=<UNIX_TIMESTAMP_SECONDS>&end_time=<UNIX_TIMESTAMP_SECONDS>&volume_in_base=<BOOLEAN>

특정 시간 범위에 대해 BalanceManager별 과거 volume을 가져온다. pool_names는 쉼표로 구분하고 선택적인 start_timeend_time 값에는 유닉스 타임스탬프 초를 사용한다.

기본적으로 이 엔드포인트는 지정된 풀에 대해 견적 자산 기준의 BalanceManager별 최근 24시간 거래량을 가져온다. 베이스 자산을 기준으로 조회하려면 volume_in_basetrue로 설정한다.

응답

{
"pool_name_1": [maker_volume, taker_volume],
"pool_name_2":
}

예시

다음 엔드포인트에 대한 성공적인 요청은

/historical_volume_by_balance_manager_id/SUI_USDC,DEEP_SUI/0x344c2734b1d211bd15212bfb7847c66a3b18803f3f5ab00f5ff6f87b6fe6d27d?start_time=1731260703&end_time=1731692703&volume_in_base=true

다음과 유사한 응답을 생성한다

{
"DEEP_SUI": [
14207960000000,
3690000000
],
"SUI_USDC": [
2089300100000000,
17349400000000
]
}
Click to open
Get 과거 거래량 by BalanceManager within a specific time range and 간격
/historical_volume_by_balance_manager_id_with_interval/:pool_names/:balance_manager_id?start_time=<UNIX_TIMESTAMP_SECONDS>&end_time=<UNIX_TIMESTAMP_SECONDS>&interval=<UNIX_TIMESTAMP_SECONDS>&volume_in_base=<BOOLEAN>

특정 시간 범위에서 간격을 포함하여 BalanceManager별 과거 volume을 가져온다. pool_names는 쉼표로 구분하고 선택적인 start_timeend_time 값에는 유닉스 타임스탬프 초를 사용한다. interval 값에는 초 단위의 숫자를 사용한다. 간단한 간격 예로 start_time이 5이고 end_time이 10이며 interval이 2인 경우, 응답에는 기간 시작 시간을 key로 하여 5에서 7까지와 7에서 9까지의 거래량이 포함된다.

기본적으로 이 엔드포인트는 지정된 풀에 대해 견적 자산 기준의 최근 24시간 거래량을 가져온다. 베이스 자산을 기준으로 조회하려면 volume_in_basetrue로 설정한다.

응답

{
"[time_1_start, time_1_end]": {
"pool_name_1": [maker_volume, taker_volume],
"pool_name_2":
},
"[time_2_start, time_2_end]": {
"pool_name_1": [maker_volume, taker_volume],
"pool_name_2":
}
}

예시

24시간 간격을 사용한 다음 엔드포인트에 대한 성공적인 요청은

/historical_volume_by_balance_manager_id_with_interval/USDC_DEEP,SUI_USDC/0x344c2734b1d211bd15212bfb7847c66a3b18803f3f5ab00f5ff6f87b6fe6d27d?start_time=1731460703&end_time=1731692703&interval=86400&volume_in_base=true

다음과 유사한 응답을 생성한다

{
"[1731460703, 1731547103]": {
"SUI_USDC": [
505887400000000,
2051300000000
]
},
"[1731547103, 1731633503]": {
"SUI_USDC": [
336777500000000,
470600000000
]
}
}
Click to open
Get summary
/summary

DeepBookV3의 모든 거래 페어에 대한 summary를 JSON 형식으로 반환한다.

응답

각 summary 객체는 다음 형식을 가진다. JSON 객체의 필드 순서는 보장되지 않는다.

{
"trading_pairs": "string",
"quote_currency": "string",
"last_price": float,
"lowest_price_24h": float,
"highest_bid": float,
"base_volume": float,
"price_change_percent_24h": float,
"quote_volume": float,
"lowest_ask": float,
"highest_price_24h": float,
"base_currency": "string"
}

예시

다음에 대한 성공적인 요청은

/summary

다음과 유사한 응답을 생성한다

[
{
"trading_pairs": "AUSD_USDC",
"quote_currency": "USDC",
"last_price": 1.0006,
"lowest_price_24h": 0.99905,
"highest_bid": 1.0006,
"base_volume": 1169.2,
"price_change_percent_24h": 0.07501125168773992,
"quote_volume": 1168.961637,
"lowest_ask": 1.0007,
"highest_price_24h": 1.00145,
"base_currency": "AUSD"
},
{
"quote_volume": 4063809.55231,
"lowest_price_24h": 0.9999,
"highest_price_24h": 1.009,
"base_volume": 4063883.6,
"quote_currency": "USDC",
"price_change_percent_24h": 0.0,
"base_currency": "WUSDC",
"trading_pairs": "WUSDC_USDC",
"last_price": 1.0,
"highest_bid": 1.0,
"lowest_ask": 1.0001
},
{
"price_change_percent_24h": 0.0,
"quote_currency": "USDC",
"lowest_price_24h": 0.0,
"quote_volume": 0.0,
"base_volume": 0.0,
"highest_price_24h": 0.0,
"lowest_ask": 1.04,
"last_price": 1.04,
"base_currency": "WUSDT",
"highest_bid": 0.90002,
"trading_pairs": "WUSDT_USDC"
},
...
]
Click to open
Get ticker information
/ticker

모든 거래 페어의 volume(이미 scale이 적용됨), last price, 그리고 isFrozen 값을 반환한다. isFrozen의 가능한 값은 다음과 같다:

  • 0: 풀이 active 상태이다.
  • 1: 풀이 inactive 상태이다.

응답

{
"TRADING_PAIR": {
"base_volume": float,
"quote_volume": float,
"last_price": float,
"isFrozen": integer (0 | 1)
}
}

예시

다음에 대한 성공적인 요청은

/ticker

다음과 유사한 응답을 생성한다

{
"DEEP_USDC": {
"last_price": 0.07055,
"base_volume": 43760440.0,
"quote_volume": 3096546.9161,
"isFrozen": 0
},
"NS_SUI": {
"last_price": 0.08323,
"base_volume": 280820.8,
"quote_volume": 23636.83837,
"isFrozen": 0
},
...
}
Click to open
Get trades
/trades/:pool_name?limit=<INTEGER>&start_time=<UNIX_TIMESTAMP_SECONDS>&end_time=<UNIX_TIMESTAMP_SECONDS>&maker_balance_manager_id=<ID>&taker_balance_manager_id=<ID>

풀에서 가장 최근의 trades를 반환한다.

응답

[
{
"event_digest": "string",
"digest": "string",
"trade_id": "string",
"maker_order_id": "string",
"taker_order_id": "string",
"maker_balance_manager_id": "string",
"taker_balance_manager_id": "string",
"price": float,
"base_volume": float,
"quote_volume": float,
"timestamp": integer,
"type": "string",
"taker_is_bid": boolean,
"taker_fee": float,
"maker_fee": float,
"taker_fee_is_deep": boolean,
"maker_fee_is_deep": boolean
}
]

timestamp 값은 유닉스 밀리초이다. type 값은 taker의 방향에 따라 "buy" 또는 "sell"이다.

예시

다음에 대한 성공적인 요청은

trades/SUI_USDC?limit=2&start_time=1738093405&end_time=1738096485&maker_balance_manager_id=0x344c2734b1d211bd15212bfb7847c66a3b18803f3f5ab00f5ff6f87b6fe6d27d&taker_balance_manager_id=0x47dcbbc8561fe3d52198336855f0983878152a12524749e054357ac2e3573d58

다음과 유사한 응답을 생성한다

[
{
"event_digest": "abc123...",
"digest": "def456...",
"trade_id": "136321457151457660152049680",
"maker_order_id": "68160737799100866923792791",
"taker_order_id": "170141183460537392451039660509112362617",
"maker_balance_manager_id": "0x344c2734b1d211bd15212bfb7847c66a3b18803f3f5ab00f5ff6f87b6fe6d27d",
"taker_balance_manager_id": "0x47dcbbc8561fe3d52198336855f0983878152a12524749e054357ac2e3573d58",
"price": 3.695,
"base_volume": 405.0,
"quote_volume": 1499.0,
"timestamp": 1738096392913,
"type": "sell",
"taker_is_bid": false,
"taker_fee": 0.001,
"maker_fee": 0.0005,
"taker_fee_is_deep": true,
"maker_fee_is_deep": true
},
...
]
Click to open
Get 주문 updates
/order_updates/:pool_name?limit=<INTEGER>&start_time=<UNIX_TIMESTAMP_SECONDS>&end_time=<UNIX_TIMESTAMP_SECONDS>&status=<"Placed" or "Canceled">&balance_manager_id=<ID>

풀에서 최근에 배치되거나 취소된 주문을 반환한다.

응답

[
{
"order_id": "string",
"balance_manager_id": "string",
"timestamp": integer,
"original_quantity": integer,
"remaining_quantity": integer,
"filled_quantity": integer,
"price": integer,
"status": "string",
"type": "string"
}
]

timestamp 값은 유닉스 밀리초이다.

예시

다음에 대한 성공적인 요청은

/order_updates/DEEP_USDC?start_time=1738703053&end_time=1738704080&limit=2&status=Placed&balance_manager_id=0xd335e8aa19d6dc04273d77e364c936bad69db4905a4ab3b2733d644dd2b31e0a

다음과 유사한 응답을 생성한다

[
{
"order_id": "170141183464610341308794360958165054983",
"balance_manager_id": "0xd335e8aa19d6dc04273d77e364c936bad69db4905a4ab3b2733d644dd2b31e0a",
"timestamp": 1738704071994,
"original_quantity": 8910,
"remaining_quantity": 8910,
"filled_quantity": 0,
"price": 22449,
"status": "Placed",
"type": "sell"
},
...
]
Click to open
Get 오더북 information
/orderbook/:pool_name?level={1|2}&depth={integer}

해당 풀에 대한 bids와 asks를 반환한다. 반환되는 bids와 asks는 각각 최고가에서 최저가 순으로 정렬된다. 엔드포인트에는 두 개의 선택적 쿼리 파라미터가 있다:

  • level: level 값은 1 또는 2일 수 있다.
  • 1: best bid와 ask만 반환한다.
  • 2: best bids와 asks 기준으로 정렬한다. 이 값이 기본값이다.
  • depth: depth 값은 0 또는 1보다 큰 값일 수 있다. 0이면 전체 오더북을 반환하고, 1보다 크면 지정된 수의 bids와 asks를 모두 반환한다. 즉, depth=100을 제공하면 응답에는 bids 50개와 asks 50개가 포함된다. depth 값이 홀수이면 다음으로 낮은 짝수 값으로 처리된다. 따라서 depth=101도 bids 50개와 asks 50개를 반환한다. depth 파라미터를 제공하지 않으면 응답은 기본적으로 오더북의 모든 주문을 포함한다.

응답

{
"timestamp": "string",
"bids": [
[
"string",
"string"
],
[
"string",
"string"
]
],
"asks": [
[
"string",
"string"
],
[
"string",
"string"
]
]
}

반환되는 타임스탬프는 밀리초 단위의 Unix 타임스탬프를 나타내는 string이다.

예시

다음에 대한 성공적인 요청은

/orderbook/SUI_USDC?level=2&depth=4

다음과 유사한 응답을 생성한다

{
"timestamp": "1733874965431",
"bids": [
[
"3.715",
"2.7"
],
[
"3.713",
"2294.8"
]
],
"asks": [
[
"3.717",
"0.9"
],
[
"3.718",
"1000"
]
]
}
Click to open
Get 자산 information
/assets

DeepBookV3에서 거래되는 모든 코인에 대한 자산 정보를 반환한다.

응답

각 자산 객체는 다음 형식을 가진다:

"ASSET_NAME": {
"unified_cryptoasset_id": "string",
"name": "string",
"contractAddress": "string",
"contractAddressUrl": "string",
"can_deposit": "string (true | false)",
"can_withdraw": "string (true | false)"
}

예시

다음에 대한 성공적인 요청은

/assets

다음과 유사한 응답을 생성한다

{
"NS": {
"unified_cryptoasset_id": "32942",
"name": "Sui Name Service",
"contractAddress": "0x5145494a5f5100e645e4b0aa950fa6b68f614e8c59e17bc5ded3495123a79178",
"contractAddressUrl": "https://suiscan.xyz/mainnet/object/0x5145494a5f5100e645e4b0aa950fa6b68f614e8c59e17bc5ded3495123a79178",
"can_deposit": "true",
"can_withdraw": "true"
},
"AUSD": {
"unified_cryptoasset_id": "32864",
"name": "AUSD",
"contractAddress": "0x2053d08c1e2bd02791056171aab0fd12bd7cd7efad2ab8f6b9c8902f14df2ff2",
"contractAddressUrl": "https://suiscan.xyz/mainnet/object/0x2053d08c1e2bd02791056171aab0fd12bd7cd7efad2ab8f6b9c8902f14df2ff2",
"can_deposit": "true",
"can_withdraw": "true"
},
...
}
Click to open
Get 주문 by BalanceManager
/orders/:pool_name/:balance_manager_id?limit=<INTEGER>&status=<STATUS>

풀에서 특정 BalanceManager에 대한 주문을 반환한다. status 파라미터는 주문 status(예: Placed, Canceled, Filled)로 필터링할 수 있다. 여러 statuses는 쉼표로 구분한 값으로 제공할 수 있다.

응답

[
{
"order_id": "string",
"balance_manager_id": "string",
"type": "string",
"current_status": "string",
"price": float,
"placed_at": integer,
"last_updated_at": integer,
"original_quantity": float,
"filled_quantity": float,
"remaining_quantity": float
}
]
Click to open
Get trade count
/trade_count?start_time=<UNIX_TIMESTAMP_SECONDS>&end_time=<UNIX_TIMESTAMP_SECONDS>

지정된 시간 범위 내에서 모든 풀에 걸친 전체 trade 수를 반환한다.

응답

integer
Click to open
Get OHLCV candlestick data
/ohclv/:pool_name?interval=<INTERVAL>&start_time=<UNIX_TIMESTAMP_SECONDS>&end_time=<UNIX_TIMESTAMP_SECONDS>&limit=<INTEGER>

풀에 대한 OHLCV(Open, High, Low, Close, Volume) candlestick data를 반환한다. 유효한 간격는 1m, 5m, 15m, 30m, 1h, 4h, 1d, 1w이다.

응답

{
"candles": [
[timestamp, open, high, low, close, volume],
...
]
}

예시

다음에 대한 성공적인 요청은

/ohclv/SUI_USDC?interval=1h&limit=10

다음과 유사한 응답을 생성한다

{
"candles": [
[1738000000, 3.5, 3.6, 3.4, 3.55, 1000000],
[1738003600, 3.55, 3.7, 3.5, 3.65, 1500000],
...
]
}
Click to open
Get net 예치
/get_net_deposits/:asset_ids/:timestamp

지정된 타임스탬프까지 지정된 자산에 대한 net 예치(예치금에서 출금을 뺀 값)를 반환한다. Asset IDs는 쉼표로 구분해야 한다.

응답

{
"asset_id_1": integer,
"asset_id_2": integer,
...
}
Click to open
Get DEEP supply
/deep_supply

DEEP 토큰의 총 공급량을 반환한다.

응답

{
"total_supply": "string"
}
Click to open
Get deposited 자산
/deposited_assets/:balance_manager_ids

지정된 BalanceManager에 예치된 자산 목록을 반환한다. BalanceManager IDs는 쉼표로 구분해야 한다.

응답

[
{
"balance_manager_id": "string",
"assets": ["string", ...]
}
]
Click to open
Get indexer status
/status?max_checkpoint_lag=<INTEGER>&max_time_lag_seconds=<INTEGER>

각 pipeline에 대한 checkpoint lag 정보를 포함한 indexer의 상태를 반환한다. 선택적 파라미터는 healthy status를 결정하기 위한 thresholds를 설정한다(기본값: max_checkpoint_lag=100, max_time_lag_seconds=60).

응답

{
"status": "OK" | "UNHEALTHY",
"latest_onchain_checkpoint": integer,
"current_time_ms": integer,
"earliest_checkpoint": integer,
"max_lag_pipeline": "string",
"max_checkpoint_lag": integer,
"max_time_lag_seconds": integer,
"pipelines": [
{
"pipeline": "string",
"indexed_checkpoint": integer,
"indexed_epoch": integer,
"indexed_timestamp_ms": integer,
"checkpoint_lag": integer,
"time_lag_seconds": integer,
"latest_onchain_checkpoint": integer
}
]
}
Click to open
Get points
/get_points?addresses=<ADDRESS1>,<ADDRESS2>,...

지정된 주소들에 대해 누적된 총 points를 반환한다. Points는 DeepBookV3의 거래 활동를 통해 적립된다. Addresses는 쉼표로 구분한 값으로 제공한다.

응답

[
{
"address": "0x1234...",
"total_points": 1000000
},
{
"address": "0x5678...",
"total_points": 500000
}
]

예시

다음에 대한 성공적인 요청은

/get_points?addresses=0x344c2734b1d211bd15212bfb7847c66a3b18803f3f5ab00f5ff6f87b6fe6d27d,0x47dcbbc8561fe3d52198336855f0983878152a12524749e054357ac2e3573d58

다음과 유사한 응답을 생성한다

[
{
"address": "0x344c2734b1d211bd15212bfb7847c66a3b18803f3f5ab00f5ff6f87b6fe6d27d",
"total_points": 1250000
},
{
"address": "0x47dcbbc8561fe3d52198336855f0983878152a12524749e054357ac2e3573d58",
"total_points": 750000
}
]
Click to open
Get margin supply
/margin_supply

마진 풀 contract를 통해 onchain query한 각 마진 풀의 total supply 잔액을 반환한다.

응답

{
"0x2::sui::SUI": 1000000000000,
"0xdba3...::usdc::USDC": 5000000000000
}

Asset type에서 total supply amount(smallest units)로 mapping한 값이다.

Click to open
Get 풀 creation events
/pool_created

DeepBook 풀이 생성될 때의 event를 반환한다.

응답

[
{
"event_digest": "0xabc123...",
"digest": "0xdef456...",
"sender": "0x1111...",
"checkpoint": 12345678,
"checkpoint_timestamp_ms": 1738000000000,
"package": "0x2222...",
"pool_id": "0x1234...",
"taker_fee": 1000000,
"maker_fee": 500000,
"tick_size": 10000,
"lot_size": 10000000,
"min_size": 100000000,
"whitelisted_pool": false,
"treasury_address": "0x5678..."
}
]
Click to open
Get book 파라미터 updated events
/book_params_updated?pool_id=<ID>

Pool에 대한 가장 최근 오더북 파라미터 update event를 반환한다. pool_id 파라미터가 필요하다.

응답

{
"event_digest": "0xabc123...",
"digest": "0xdef456...",
"sender": "0x1111...",
"checkpoint": 12345678,
"checkpoint_timestamp_ms": 1738000000000,
"package": "0x2222...",
"pool_id": "0x1234...",
"tick_size": 10000,
"lot_size": 10000000,
"min_size": 100000000,
"onchain_timestamp": 1738000000000
}
Click to open
Get user portfolio
/portfolio/:wallet_address

Wallet 주소에 대한 comprehensive 포트폴리오 뷰를 반환하며 margin 포지션, 담보 잔액, LP 포지션, total 자기자본 요약를 포함한다.

응답

{
"margin_positions": [
{
"margin_manager_id": "0x1234...",
"pool": "SUI_USDC",
"base_asset_symbol": "SUI",
"quote_asset_symbol": "USDC",
"base_asset": 100.0,
"quote_asset": 500.0,
"base_debt": 50.0,
"quote_debt": 200.0,
"base_asset_usd": 350.0,
"quote_asset_usd": 500.0,
"base_debt_usd": 175.0,
"quote_debt_usd": 200.0,
"total_debt_usd": 375.0,
"net_value_usd": 475.0,
"risk_ratio": 2.27
}
],
"collateral_balances": [
{
"asset": "SUI",
"balance": 100.0,
"balance_usd": 350.0
}
],
"lp_positions": [
{
"margin_pool_id": "0x5678...",
"asset": "USDC",
"supplied": 1000.0,
"shares": 1000000000,
"supplied_usd": 1000.0
}
],
"summary": {
"total_equity_usd": 1850.0,
"total_debt_usd": 375.0,
"net_value_usd": 1475.0
}
}
Click to open
Get 리퍼럴 수수료 events
/referral_fee_events?pool_id=<ID>&referral_id=<ID>

trading 중 적립된 리퍼럴 수수료에 대한 events를 반환한다. 이 events는 서로 다른 풀에 걸쳐 referrals가 적립한 fees를 추적한다.

응답

[
{
"event_digest": "0xabc123...",
"digest": "0xdef456...",
"sender": "0x1111...",
"checkpoint": 12345678,
"checkpoint_timestamp_ms": 1738000000000,
"package": "0x2222...",
"pool_id": "0x1234...",
"referral_id": "0x5678...",
"base_fee": 1000000,
"quote_fee": 500000,
"deep_fee": 250000
}
]