vault 開発 · vault の基礎 · 3/7
vault への入金と引き出し
入金の仕組み
vault に USDC を入れると、vault の資産のうち、入れた額に応じた持ち分を持つことになります。Hyperliquid は持ち分のトークンを発行するのではなく、預けた人ごとの資産額を記録しています。それでも、1口あたりの価格で考えると分かりやすくなります。
Shares Received = Deposit Amount / Current Share Price
Share Price = Total Vault Equity / Total Shares Outstanding
例
- vault の資産は $10,000、口数は 10,000 口
- 1口の価格 = $1.00
- ある人が $1,000 を入れる → 1,000 口を受け取る
- vault の資産は $11,000、口数は 11,000 口になる
vault が10%の利益を出すと、次のようになります。
- vault の資産 = $12,100
- 1口の価格 = $12,100 / 11,000 = $1.10
- その人の 1,000 口 = $1,100(10%の利益)
vault の状態を読む
SDK には vault の詳細を取る専用の関数がありません。vaultDetails のリクエストを直接送ります(info エンドポイントの資料)。
from hyperliquid.info import Info
from hyperliquid.utils import constants
info = Info(constants.MAINNET_API_URL, skip_ws=True) # read-only
# Get vault details
vault_details = info.post("/info", {"type": "vaultDetails",
"vaultAddress": vault_address})
print(f"Vault Name: {vault_details['name']}")
print(f"Leader: {vault_details['leader']}")
print(f"Leader fraction: {vault_details['leaderFraction']}")
print(f"Allow deposits: {vault_details['allowDeposits']}")
print(f"APR: {vault_details['apr']}")
# Get vault equity and positions
vault_state = info.user_state(vault_address)
print(f"Account value: ${vault_state['marginSummary']['accountValue']}")
for pos in vault_state["assetPositions"]:
p = pos["position"]
print(f" {p['coin']}: {p['szi']} @ {p['entryPx']}")
引き出し
預けた人は、ロック期間が過ぎれば引き出せます。ユーザーの vault では最後の入金から1日、HLP では4日です(預ける人向けの資料)。
# Testnet only. Withdraw 500 USDC (usd is an integer in micro-USDC)
exchange.vault_usd_transfer(vault_address, False, 500_000_000)
気をつけること
- 引き出しの影響 — 空いている証拠金が足りないと、まず証拠金を使っている未約定の注文が取り消されます。それでも足りなければ、引き出しを払えるまで、ポジションの20%ずつを繰り返し閉じます(vault リーダー向けの資料)
- ロック期間 — プロトコルが固定しています(ユーザーの vault は1日、HLP は4日)。リーダーが選ぶものではありません
- 引き出しの手数料はない — 手数料は、利益に対するリーダーの10%の取り分だけです
- 持ち分に応じて閉じる設定 — リーダーは、引き出しのときに常にポジションを持ち分に応じて閉じるよう設定できます。こうすると清算価格が大きく変わりません
- リーダーの下限 — 引き出すとリーダーの持ち分が5%を下回る場合、リーダーは引き出せません
利益の分け方
利益は、1口の価格を通じて分けられます。
- vault が利益を出すと、1口の価格が上がります
- 預けた人が利益を引き出すとき、その利益からリーダーの 10%の取り分が差し引かれます(HLP のようなプロトコルの vault は取りません)
- 残りの利益は預けた人のものです
資料には次の例があります。900 USDC の vault に 100 USDC を入れます(10%)。vault が 2,000 USDC に増えます。引き出すと 200 USDC から 10 USDC の取り分(100 USDC の利益の10%)が引かれ、190 USDC になります。ポジションを閉じるときのスリッページは別です。
手数料の計算
Depositor Profit = (Exit Share Price - Entry Share Price) * Shares
Leader Fee = Depositor Profit * Profit Share Rate
Net Depositor Profit = Depositor Profit - Leader Fee
vault の成績を見張る
追いかけておきたい指標は次のとおりです。
- 資産の推移 — vault の資産の合計が、時間とともにどう変わるか
- 1口の価格 — すべての手数料を引いた後の成績を表します
- ドローダウン — 最も高いところから最も低いところまでの下げ幅の最大値
- 預けた人の数 — 伸びているかどうかの目安
- APR — 過去の成績から出した年率の利回りです(将来の利回りを約束するものではありません)