본문으로 건너뛰기

DeepBook Margin 인덱서

DeepBook Margin 인덱서는 margin trading 데이터용 엔드포인트를 통해 DeepBookV3 인덱서를 확장한다. 이러한 엔드포인트는 margin manager 이벤트, 마진 풀 operation, 그리고 liquidation monitoring에 대한 액세스를 제공한다.

공개 엔드포인트

margin 엔드포인트는 DeepBookV3와 동일한 public 인덱서를 통해 사용할 수 있다.

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

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

공통 쿼리 매개변수

모든 margin 엔드포인트는 다음 공통 쿼리 파라미터를 지원한다:

  • start_time: Unix 타임스탬프 seconds로 표현된 시간 범위의 시작(기본값: 24시간 전)
  • end_time: Unix 타임스탬프 seconds로 표현된 시간 범위의 끝(기본값: 현재 시간)
  • limit: 반환할 결과의 최대 개수(기본값: 1)

마진 관리자 엔드포인트

Click to open
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
}
]
Click to open
Get loan borrowed events
/loan_borrowed?margin_manager_id=<ID>&margin_pool_id=<ID>

자산이 마진 풀에서 차입될 때의 이벤트를 반환한다.

응답

[
{
"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
}
]
Click to open
Get loan repaid events
/loan_repaid?margin_manager_id=<ID>&margin_pool_id=<ID>

차입된 자산이 상환될 때의 이벤트를 반환한다.

응답

[
{
"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
}
]
Click to open
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
}
]
Click to open
Get margin managers information
/margin_managers_info

연관된 풀 및 자산 정보와 함께 모든 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..."
}
]
Click to open
Get margin manager states
/margin_manager_states?max_risk_ratio=<FLOAT>&deepbook_pool_id=<ID>

margin manager의 현재 상태를 반환한다. 이 엔드포인트는 liquidation 위험이 있을 수 있는 포지션을 모니터링하는 데 유용하다.

  • max_risk_ratio: 이 임계값보다 낮은 risk ratio를 가진 margin manager만 반환하도록 필터링한다; liquidation 기회를 찾는 데 유용하다
  • deepbook_pool_id: 특정 DeepBook 풀로 필터링한다

응답

[
{
"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
}
]

마진 풀 endpoints

Click to open
Get 자산 supplied events
/asset_supplied?margin_pool_id=<ID>&supplier=<ADDRESS>

자산이 마진 풀에 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
}
]
Click to open
Get 자산 withdrawn events
/asset_withdrawn?margin_pool_id=<ID>&supplier=<ADDRESS>

자산이 마진 풀에서 출금될 때의 이벤트를 반환한다.

응답

[
{
"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
}
]
Click to open
Get 마진 풀 creation events
/margin_pool_created?margin_pool_id=<ID>

마진 풀이 생성될 때의 이벤트를 반환한다.

응답

[
{
"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
}
]
Click to open
Get DeepBook 풀 updated events
/deepbook_pool_updated?margin_pool_id=<ID>&deepbook_pool_id=<ID>

DeepBook 풀이 마진 풀에 대해 활성화되거나 비활성화될 때의 이벤트를 반환한다.

응답

[
{
"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
}
]
Click to open
Get interest 파라미터 update events
/interest_params_updated?margin_pool_id=<ID>

금리 파라미터가 업데이트될 때의 이벤트를 반환한다.

응답

[
{
"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
}
]
Click to open
Get 마진 풀 configuration update events
/margin_pool_config_updated?margin_pool_id=<ID>

마진 풀 configuration이 업데이트될 때의 이벤트를 반환한다.

응답

[
{
"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": {
"supply_cap": 10000000000000,
"max_utilization_rate": 950000000,
"protocol_spread": 50000000,
"min_borrow": 1000000
},
"onchain_timestamp": 1738000000000
}
]
Click to open
Get supplier cap 민트ed events
/supplier_cap_minted?supplier_cap_id=<ID>

supplier capability가 민트될 때의 이벤트를 반환한다.

응답

[
{
"event_digest": "0xabc123...",
"digest": "0xdef456...",
"sender": "0x1111...",
"checkpoint": 12345678,
"checkpoint_timestamp_ms": 1738000000000,
"package": "0x2222...",
"supplier_cap_id": "0x1234...",
"onchain_timestamp": 1738000000000
}
]
Click to open
Get supply referral 민트ed events
/supply_referral_minted?margin_pool_id=<ID>&owner=<ADDRESS>

supply referral이 민트될 때의 이벤트를 반환한다.

응답

[
{
"event_digest": "0xabc123...",
"digest": "0xdef456...",
"sender": "0x1111...",
"checkpoint": 12345678,
"checkpoint_timestamp_ms": 1738000000000,
"package": "0x2222...",
"margin_pool_id": "0x5678...",
"supply_referral_id": "0x1234...",
"owner": "0xabcd...",
"onchain_timestamp": 1738000000000
}
]
Click to open
Get protocol fees increased events
/protocol_fees_increased?margin_pool_id=<ID>

프로토콜 수수료가 증가할 때의 이벤트를 반환한다.

응답

[
{
"event_digest": "0xabc123...",
"digest": "0xdef456...",
"sender": "0x1111...",
"checkpoint": 12345678,
"checkpoint_timestamp_ms": 1738000000000,
"package": "0x2222...",
"margin_pool_id": "0x1234...",
"total_shares": 1000000000,
"referral_fees": 100000,
"maintainer_fees": 200000,
"protocol_fees": 300000,
"onchain_timestamp": 1738000000000
}
]
Click to open
Get 리퍼럴 수수료 claimed events
/referral_fees_claimed?referral_id=<ID>&owner=<ADDRESS>

리퍼럴 수수료가 claim될 때의 이벤트를 반환한다.

응답

[
{
"event_digest": "0xabc123...",
"digest": "0xdef456...",
"sender": "0x1111...",
"checkpoint": 12345678,
"checkpoint_timestamp_ms": 1738000000000,
"package": "0x2222...",
"referral_id": "0x1234...",
"owner": "0xabcd...",
"fees": 1000000,
"onchain_timestamp": 1738000000000
}
]
Click to open
Get 담보 events
/collateral_events?margin_manager_id=<ID>&type=<"Deposit" | "Withdraw">&is_base=<BOOLEAN>

담보이 margin manager에 예치되거나 출금될 때의 이벤트를 반환한다. 이 엔드포인트는 이벤트 시점의 Pyth price 데이터를 포함하여 모든 담보 movement에 대한 상세 추적을 제공한다.

  • margin_manager_id: 특정 margin manager로 필터링한다
  • type: 이벤트 타입(Deposit 또는 Withdraw)으로 필터링한다
  • is_base: 담보이 베이스 자산(true)인지 견적 자산(false)인지로 필터링한다

응답

[
{
"event_digest": "0xabc123...",
"digest": "0xdef456...",
"sender": "0x1111...",
"checkpoint": 12345678,
"checkpoint_timestamp_ms": 1738000000000,
"package": "0x2222...",
"event_type": "Deposit",
"margin_manager_id": "0x1234...",
"amount": "1000000000",
"asset_type": "0x2::sui::SUI",
"pyth_decimals": 8,
"pyth_price": "100000000",
"withdraw_base_asset": null,
"base_pyth_decimals": 8,
"base_pyth_price": "100000000",
"quote_pyth_decimals": 8,
"quote_pyth_price": "100000000",
"remaining_base_asset": "500000000",
"remaining_quote_asset": "2000000000",
"remaining_base_debt": "0",
"remaining_quote_debt": "0",
"onchain_timestamp": 1738000000000
}
]

Admin and registry endpoints

Click to open
Get maintainer cap updated events
/maintainer_cap_updated?maintainer_cap_id=<ID>

maintainer capability가 업데이트될 때의 이벤트를 반환한다.

응답

[
{
"event_digest": "0xabc123...",
"digest": "0xdef456...",
"sender": "0x1111...",
"checkpoint": 12345678,
"checkpoint_timestamp_ms": 1738000000000,
"package": "0x2222...",
"maintainer_cap_id": "0x1234...",
"allowed": true,
"onchain_timestamp": 1738000000000
}
]
Click to open
Get maintainer fees withdrawn events
/maintainer_fees_withdrawn?margin_pool_id=<ID>

maintainer fee가 출금될 때의 이벤트를 반환한다.

응답

[
{
"event_digest": "0xabc123...",
"digest": "0xdef456...",
"sender": "0x1111...",
"checkpoint": 12345678,
"checkpoint_timestamp_ms": 1738000000000,
"package": "0x2222...",
"margin_pool_id": "0x1234...",
"margin_pool_cap_id": "0x5678...",
"maintainer_fees": 1000000,
"onchain_timestamp": 1738000000000
}
]
Click to open
Get protocol fees withdrawn events
/protocol_fees_withdrawn?margin_pool_id=<ID>

프로토콜 수수료가 출금될 때의 이벤트를 반환한다.

응답

[
{
"event_digest": "0xabc123...",
"digest": "0xdef456...",
"sender": "0x1111...",
"checkpoint": 12345678,
"checkpoint_timestamp_ms": 1738000000000,
"package": "0x2222...",
"margin_pool_id": "0x1234...",
"protocol_fees": 1000000,
"onchain_timestamp": 1738000000000
}
]
Click to open
Get pause cap updated events
/pause_cap_updated?pause_cap_id=<ID>

pause capability가 업데이트될 때의 이벤트를 반환한다.

응답

[
{
"event_digest": "0xabc123...",
"digest": "0xdef456...",
"sender": "0x1111...",
"checkpoint": 12345678,
"checkpoint_timestamp_ms": 1738000000000,
"package": "0x2222...",
"pause_cap_id": "0x1234...",
"allowed": true,
"onchain_timestamp": 1738000000000
}
]
Click to open
Get DeepBook 풀 registered events
/deepbook_pool_registered?pool_id=<ID>

DeepBook 풀이 margin registry에 등록될 때의 이벤트를 반환한다.

응답

[
{
"event_digest": "0xabc123...",
"digest": "0xdef456...",
"sender": "0x1111...",
"checkpoint": 12345678,
"checkpoint_timestamp_ms": 1738000000000,
"package": "0x2222...",
"pool_id": "0x1234...",
"config_json": {
"base_margin_pool_id": "0x5678...",
"quote_margin_pool_id": "0x9abc...",
"risk_ratios": {
"min_withdraw_risk_ratio": 1200000000,
"min_borrow_risk_ratio": 1100000000,
"liquidation_risk_ratio": 1000000000,
"target_liquidation_risk_ratio": 1050000000
},
"user_liquidation_reward": 50000000,
"pool_liquidation_reward": 10000000,
"enabled": true
},
"onchain_timestamp": 1738000000000
}
]
Click to open
Get DeepBook 풀 registry updated events
/deepbook_pool_updated_registry?pool_id=<ID>

DeepBook 풀 registry entry가 업데이트될 때의 이벤트를 반환한다.

응답

[
{
"event_digest": "0xabc123...",
"digest": "0xdef456...",
"sender": "0x1111...",
"checkpoint": 12345678,
"checkpoint_timestamp_ms": 1738000000000,
"package": "0x2222...",
"pool_id": "0x1234...",
"enabled": true,
"onchain_timestamp": 1738000000000
}
]
Click to open
Get DeepBook 풀 config updated events
/deepbook_pool_config_updated?pool_id=<ID>

DeepBook 풀 configuration이 업데이트될 때의 이벤트를 반환한다.

응답

[
{
"event_digest": "0xabc123...",
"digest": "0xdef456...",
"sender": "0x1111...",
"checkpoint": 12345678,
"checkpoint_timestamp_ms": 1738000000000,
"package": "0x2222...",
"pool_id": "0x1234...",
"config_json": {
"base_margin_pool_id": "0x5678...",
"quote_margin_pool_id": "0x9abc...",
"risk_ratios": {
"min_withdraw_risk_ratio": 1200000000,
"min_borrow_risk_ratio": 1100000000,
"liquidation_risk_ratio": 1000000000,
"target_liquidation_risk_ratio": 1050000000
},
"user_liquidation_reward": 50000000,
"pool_liquidation_reward": 10000000,
"enabled": true
},
"onchain_timestamp": 1738000000000
}
]