DeepBook Margin 인덱서
DeepBook Margin 인덱서는 margin trading 데이터용 엔드포인트를 통해 DeepBookV3 인덱서를 확장한다. 이러한 엔드포인트는 margin manager 이벤트, margin pool operation, 그리고 liquidation monitoring에 대한 액세스를 제공한다.
공개 엔드포인트
margin 엔드포인트는 DeepBookV3와 동일한 public 인덱서를 통해 사용할 수 있다.
-
Mainnet:
https://deepbook-indexer.mainnet.mystenlabs.com/ -
Testnet:
https://deepbook-indexer.testnet.mystenlabs.com/
공통 쿼리 매개변수
모든 margin 엔드포인트는 다음 공통 쿼리 파라미터를 지원한다:
start_time: Unix timestamp seconds로 표현된 시간 범위의 시작(기본값: 24시간 전)end_time: Unix timestamp seconds로 표현된 시간 범위의 끝(기본값: 현재 시간)limit: 반환할 결과의 최대 개수(기본값: 1)
마진 관리자 엔드포인트
Get margin manager creation events
/margin_manager_created?margin_manager_id=<ID>
margin manager가 생성될 때의 이벤트를 반환한다.
응답
[
{
"event_digest": "0xabc123...",
"digest": "0xdef456...",
"sender": "0x1111...",
"checkpoint": 12345678,
"checkpoint_timestamp_ms": 1738000000000,
"package": "0x2222...",
"margin_manager_id": "0x1234...",
"balance_manager_id": "0x5678...",
"deepbook_pool_id": "0x9abc...",
"owner": "0xabcd...",
"onchain_timestamp": 1738000000000
}
]
Get loan borrowed events
/loan_borrowed?margin_manager_id=<ID>&margin_pool_id=<ID>
asset이 margin pool에서 borrow될 때의 이벤트를 반환한다.
응답
[
{
"event_digest": "0xabc123...",
"digest": "0xdef456...",
"sender": "0x1111...",
"checkpoint": 12345678,
"checkpoint_timestamp_ms": 1738000000000,
"package": "0x2222...",
"margin_manager_id": "0x1234...",
"margin_pool_id": "0x5678...",
"loan_amount": 1000000000,
"loan_shares": 1000000000,
"onchain_timestamp": 1738000000000
}
]
Get loan repaid events
/loan_repaid?margin_manager_id=<ID>&margin_pool_id=<ID>
borrow된 asset이 repay될 때의 이벤트를 반환한다.
응답
[
{
"event_digest": "0xabc123...",
"digest": "0xdef456...",
"sender": "0x1111...",
"checkpoint": 12345678,
"checkpoint_timestamp_ms": 1738000000000,
"package": "0x2222...",
"margin_manager_id": "0x1234...",
"margin_pool_id": "0x5678...",
"repay_amount": 1000000000,
"repay_shares": 1000000000,
"onchain_timestamp": 1738000000000
}
]
Get liquidation events
/liquidation?margin_manager_id=<ID>&margin_pool_id=<ID>
margin manager가 liquidation될 때의 이벤트를 반환한다.
응답
[
{
"event_digest": "0xabc123...",
"digest": "0xdef456...",
"sender": "0x1111...",
"checkpoint": 12345678,
"checkpoint_timestamp_ms": 1738000000000,
"package": "0x2222...",
"margin_manager_id": "0x1234...",
"margin_pool_id": "0x5678...",
"liquidation_amount": 1000000000,
"pool_reward": 10000000,
"pool_default": 0,
"risk_ratio": 800000000,
"onchain_timestamp": 1738000000000,
"remaining_base_asset": "500000000",
"remaining_quote_asset": "2000000000",
"remaining_base_debt": "0",
"remaining_quote_debt": "0",
"base_pyth_price": 100000000,
"base_pyth_decimals": 8,
"quote_pyth_price": 100000000,
"quote_pyth_decimals": 8
}
]
Get margin managers information
/margin_managers_info
연관된 pool 및 asset 정보와 함께 모든 margin manager에 대한 집계 뷰를 반환한다.
응답
[
{
"margin_manager_id": "0x1234...",
"deepbook_pool_id": "0x5678...",
"base_asset_id": "0xabcd...",
"base_asset_symbol": "SUI",
"quote_asset_id": "0xefgh...",
"quote_asset_symbol": "USDC",
"base_margin_pool_id": "0x1111...",
"quote_margin_pool_id": "0x2222..."
}
]
Get margin manager states
/margin_manager_states?max_risk_ratio=<FLOAT>&deepbook_pool_id=<ID>
margin manager의 현재 상태를 반환한다. 이 엔드포인트는 liquidation 위험이 있을 수 있는 position을 모니터링하는 데 유용하다.
max_risk_ratio: 이 임계값보다 낮은 risk ratio를 가진 margin manager만 반환하도록 필터링한다; liquidation 기회를 찾는 데 유용하다deepbook_pool_id: 특정 DeepBook pool로 필터링한다
응답
[
{
"id": 1,
"margin_manager_id": "0x1234...",
"deepbook_pool_id": "0x5678...",
"base_margin_pool_id": "0x1111...",
"quote_margin_pool_id": "0x2222...",
"base_asset_id": "0xabcd...",
"base_asset_symbol": "SUI",
"quote_asset_id": "0xefgh...",
"quote_asset_symbol": "USDC",
"risk_ratio": "1.5",
"base_asset": "1000000000",
"quote_asset": "5000000000",
"base_debt": "500000000",
"quote_debt": "2000000000",
"base_pyth_price": 100000000,
"base_pyth_decimals": 8,
"quote_pyth_price": 100000000,
"quote_pyth_decimals": 8,
"created_at": "2025-01-01 00:00:00",
"updated_at": "2025-01-01 12:00:00",
"current_price": "2.5",
"lowest_trigger_above_price": null,
"highest_trigger_below_price": null
}
]
Margin pool endpoints
Get asset supplied events
/asset_supplied?margin_pool_id=<ID>&supplier=<ADDRESS>
asset이 margin pool에 supply될 때의 이벤트를 반환한다.
응답
[
{
"event_digest": "0xabc123...",
"digest": "0xdef456...",
"sender": "0x1111...",
"checkpoint": 12345678,
"checkpoint_timestamp_ms": 1738000000000,
"package": "0x2222...",
"margin_pool_id": "0x1234...",
"asset_type": "0x2::sui::SUI",
"supplier": "0xabcd...",
"amount": 1000000000,
"shares": 1000000000,
"onchain_timestamp": 1738000000000
}
]
Get asset withdrawn events
/asset_withdrawn?margin_pool_id=<ID>&supplier=<ADDRESS>
asset이 margin pool에서 withdraw될 때의 이벤트를 반환한다.
응답
[
{
"event_digest": "0xabc123...",
"digest": "0xdef456...",
"sender": "0x1111...",
"checkpoint": 12345678,
"checkpoint_timestamp_ms": 1738000000000,
"package": "0x2222...",
"margin_pool_id": "0x1234...",
"asset_type": "0x2::sui::SUI",
"supplier": "0xabcd...",
"amount": 1000000000,
"shares": 1000000000,
"onchain_timestamp": 1738000000000
}
]
Get margin pool creation events
/margin_pool_created?margin_pool_id=<ID>
margin pool이 생성될 때의 이벤트를 반환한다.
응답
[
{
"event_digest": "0xabc123...",
"digest": "0xdef456...",
"sender": "0x1111...",
"checkpoint": 12345678,
"checkpoint_timestamp_ms": 1738000000000,
"package": "0x2222...",
"margin_pool_id": "0x1234...",
"maintainer_cap_id": "0x5678...",
"asset_type": "0x2::sui::SUI",
"config_json": {
"margin_pool_config": {
"supply_cap": 10000000000000,
"max_utilization_rate": 950000000,
"protocol_spread": 50000000,
"min_borrow": 1000000
},
"interest_config": {
"base_rate": 100000,
"base_slope": 200000,
"optimal_utilization": 800000000,
"excess_slope": 500000
}
},
"onchain_timestamp": 1738000000000
}
]
Get DeepBook pool updated events
/deepbook_pool_updated?margin_pool_id=<ID>&deepbook_pool_id=<ID>
DeepBook pool이 margin pool에 대해 활성화되거나 비활성화될 때의 이벤트를 반환한다.
응답
[
{
"event_digest": "0xabc123...",
"digest": "0xdef456...",
"sender": "0x1111...",
"checkpoint": 12345678,
"checkpoint_timestamp_ms": 1738000000000,
"package": "0x2222...",
"margin_pool_id": "0x1234...",
"deepbook_pool_id": "0x5678...",
"pool_cap_id": "0x9abc...",
"enabled": true,
"onchain_timestamp": 1738000000000
}
]
Get interest parameter update events
/interest_params_updated?margin_pool_id=<ID>
interest rate parameter가 업데이트될 때의 이벤트를 반환한다.
응답
[
{
"event_digest": "0xabc123...",
"digest": "0xdef456...",
"sender": "0x1111...",
"checkpoint": 12345678,
"checkpoint_timestamp_ms": 1738000000000,
"package": "0x2222...",
"margin_pool_id": "0x1234...",
"pool_cap_id": "0x5678...",
"config_json": {
"base_rate": 100000,
"base_slope": 200000,
"optimal_utilization": 800000000,
"excess_slope": 500000
},
"onchain_timestamp": 1738000000000
}
]