本ページはコミュニティ翻訳です。参考用であり、内容は英語版を優先します。
英語の原文を見る ↗

Exchange エンドポイント

エクスチェンジエンドポイントは、Hyperliquidチェーンとのインタラクションおよび取引に使用されます。これらのリクエストの署名を生成するコードについては、Python SDKを参照してください。

Asset

多くのリクエストはassetを入力として取ります。永続契約の場合、これはmetaレスポンスのuniverseフィールドで返されるインデックスです。スポット資産の場合は10000 + indexを使用します。ここでindexはspotMeta.universe内の対応するインデックスです。例えば、PURR/USDCの注文を送信する場合、スポットメタデータにおけるassetインデックスが0であるため、使用すべきassetは10000です。

Subaccounts and vaults

サブアカウントとボールトには秘密鍵がありません。サブアカウントまたはボールトの代わりに操作を実行するには、マスターアカウントが署名を行い、vaultAddressフィールドにサブアカウントまたはボールトのアドレスを設定する必要があります。Python SDKのbasic_vault.pyの例がこれをデモンストレーションしています。

Expires After

一部のアクションはオプションフィールドexpiresAfterをサポートしており、これはこのアクションが拒否される期限となるミリ秒単位のタイムスタンプです。Core USDC transferなどのユーザー署名アクションはexpiresAfterフィールドをサポートしていません。なお、期限切れのexpiresAfterフィールドによりキャンセルされたアクションは、通常のアドレスベースのレート制限の5倍を消費します。

署名時にこのフィールドを組み込む方法の詳細については、Python SDKを参照してください。

Place an order

POST https://api.hyperliquid.xyz/exchange

注文リクエストのフィールドに関する全機能を備えた例については、Python SDKを参照してください。

リミットオーダーの場合、TIF(time-in-force)は、注文が最初にオーダーブックに到達したときの動作を設定します。

ALO(add liquidity only、すなわち「post only」)は、即時マッチングされる代わりにキャンセルされます。

IOC(immediate or cancel)は、未約定部分がオーダーブックに残る代わりにキャンセルされます。

GTC(good til canceled)の注文には特別な動作はありません。

Client Order ID(cloid)はオプションの128ビットの16進文字列です。例:0x1234567890abcdef1234567890abcdef

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{

"type": "order",
"orders": [{

"a": Number,

"b": Boolean,

"p": String,

"s": String,

"r": Boolean,

"t": {

"limit": {

"tif": "Alo"

"Ioc" "Gtc"

} or

"trigger": {

"isMarket": Boolean,

"triggerPx": String,

"tpsl": "tp"

"sl"

}

},

"c": Cloid (optional)

}],

"grouping": "na"

"normalTpsl" "positionTpsl",

"builder": Optional({"b": "address", "f": Number, "s": Optional([{"b": "address", "s": Number}])})

}

キーの意味:
a は asset(アセット)
b は isBuy(買い注文かどうか)
p は price(価格)
s は size(サイズ)
r は reduceOnly
t は type(タイプ)
c は cloid(client order id)

オプションの builder 引数のキーの意味:
b は追加の手数料を受け取るべきアドレス
f はベーシスポイントの10分の1を単位とする手数料のサイズ。例えば f が 10 の場合、注文ノーショナルの1bpがユーザーから徴収され、builderに送られる
s は最大5つのサブbuilderのオプションのリストで、それぞれがbuilder手数料の一部を受け取る。各エントリにおいて b はアドレス(既存のユーザーでなければならない)、s は0.001%を単位とするbuilder手数料の取り分。例えば s が 50000 の場合、builder手数料の半分がそのアドレスに送られる。取り分は正の値で、合計は最大100%でなければならない。残余分はbuilderが受け取る

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object
vaultAddress String ボールトまたはサブアカウントの代わりに取引する場合、その42文字の16進形式のオンチェーンアドレス。例: 0x0000000000000000000000000000000000000000
expiresAfter Number ミリ秒単位のタイムスタンプ

{% tabs %}

{
   "status":"ok",
   "response":{
      "type":"order",
      "data":{
         "statuses":[
            {
               "resting":{
                  "oid":77738308
               }
            }
         ]
      }
   }
}

{% endtab %}

{% tab title="200: OK Error Response" %}

{
   "status":"ok",
   "response":{
      "type":"order",
      "data":{
         "statuses":[
            {
               "error":"Order must have minimum value of $10."
            }
         ]
      }
   }
}

{% endtab %}

{% tab title="200: OK Successful Response (filled)" %}

{
   "status":"ok",
   "response":{
      "type":"order",
      "data":{
         "statuses":[
            {
               "filled":{
                  "totalSz":"0.02",
                  "avgPx":"1891.4",
                  "oid":77747314
               }
            }
         ]
      }
   }
}

{% endtab %}

Cancel order(s)

POST https://api.hyperliquid.xyz/exchange

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{

"type": "cancel",

"cancels": [

{

"a": Number,

"o": Number

}

],

"f": Boolean // fast

}

キーの意味:
a は asset(アセット)
o は oid(order id)

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object
vaultAddress String ボールトまたはサブアカウントの代わりに取引する場合、その42文字の16進形式のアドレス。例: 0x0000000000000000000000000000000000000000
expiresAfter Number ミリ秒単位のタイムスタンプ

{% tabs %}

{
   "status":"ok",
   "response":{
      "type":"cancel",
      "data":{
         "statuses":[
            "success"
         ]
      }
   }
}

{% endtab %}

{% tab title="200: OK Error Response" %}

{
   "status":"ok",
   "response":{
      "type":"cancel",
      "data":{
         "statuses":[
            {
               "error":"Order was never placed, already canceled, or filled."
            }
         ]
      }
   }
}

{% endtab %}

cancelとcancelByCloidの両アクションにはオプションのfastフラグがあり、アクション内ではfとしてエンコードされます。f: trueの注文は、トリガー注文を参照している場合に拒否されます。現在のところfastには他の効果はありません。将来のネットワークアップグレードでは、キャンセルアクションはfast = trueの場合にのみmempool内で優先付けされる予定です。

なお、fがfalseの場合はスキップする必要があります。つまり、f: falseでハッシュされたアクションは拒否されます。

Cancel order(s) by cloid

POST https://api.hyperliquid.xyz/exchange

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{

"type": "cancelByCloid",

"cancels": [

{

"asset": Number,

"cloid": String

}

],

"f": Boolean // fast

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object
vaultAddress String ボールトまたはサブアカウントの代わりに取引する場合、その42文字の16進形式のアドレス。例: 0x0000000000000000000000000000000000000000
expiresAfter Number ミリ秒単位のタイムスタンプ

{% tabs %}

{% endtab %}

{% tab title="200: OK Error Response" %}

{% endtab %}

Schedule cancel (dead man's switch)

POST https://api.hyperliquid.xyz/exchange

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{

"type": "scheduleCancel",

"time": number (optional)

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object
vaultAddress String ボールトまたはサブアカウントの代わりに取引する場合、その42文字の16進形式のアドレス。例: 0x0000000000000000000000000000000000000000
expiresAfter Number ミリ秒単位のタイムスタンプ

将来の時刻にキャンセルすべての操作をスケジュールします。timeを含めない場合、スケジュールされたキャンセル操作は削除されます。timeは現在時刻から少なくとも5秒後でなければなりません。時刻になると、すべての未決済注文がキャンセルされ、トリガーカウントが1増加します。1日あたりの最大トリガー数は10です。このトリガーカウントは00:00 UTCにリセットされます。

Modify an order

POST https://api.hyperliquid.xyz/exchange

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{

"type": "modify",

"oid": Number

Cloid,

"order": {

"a": Number,

"b": Boolean,

"p": String,

"s": String,

"r": Boolean,

"t": {

"limit": {

"tif": "Alo"

"Ioc" "Gtc"

} or

"trigger": {

"isMarket": Boolean,

"triggerPx": String,

"tpsl": "tp"

"sl"

}

},

"c": Cloid (optional)

},

"a": Boolean // always_place

}

キーの意味:
a は asset(アセット)
b は isBuy(買い注文かどうか)
p は price(価格)
s は size(サイズ)
r は reduceOnly
t は type(タイプ)
c は cloid(client order id)

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object
vaultAddress String ボールトまたはサブアカウントの代わりに取引する場合、その42文字の16進形式のオンチェーンアドレス。例: 0x0000000000000000000000000000000000000000
expiresAfter Number ミリ秒単位のタイムスタンプ

{% tabs %}

{% endtab %}

{% tab title="200: OK Error Response" %}

{% endtab %}

単一およびバッチのmodifyアクションの両方にはオプションのalways_placeフラグがあり、アクション内ではaとしてエンコードされます。always_place = trueの場合、キャンセルが成功したかどうかにかかわらず新しい注文が出されます。always_place = falseの場合、新しい注文は非トリガー注文でなければならず、TIF = ALOであるか、または実行不可能なTIF = GTCの注文でなければなりません。後者の場合、新しい注文のTIFはALOに上書きされます。

なお、aがfalseの場合はスキップする必要があります。つまり、a: falseでハッシュされたアクションは拒否されます。

Modify multiple orders

POST https://api.hyperliquid.xyz/exchange

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{

"type": "batchModify",

"modifies": [{

"oid": Number

Cloid,

"order": {

"a": Number,

"b": Boolean,

"p": String,

"s": String,

"r": Boolean,

"t": {

"limit": {

"tif": "Alo"

"Ioc" "Gtc"

} or

"trigger": {

"isMarket": Boolean,

"triggerPx": String,

"tpsl": "tp"

"sl"

}

},

"c": Cloid (optional)

}

}],

"a": Boolean // always_place

}

キーの意味:
a は asset(アセット)
b は isBuy(買い注文かどうか)
p は price(価格)
s は size(サイズ)
r は reduceOnly
t は type(タイプ)
c は cloid(client order id)

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object
vaultAddress String ボールトまたはサブアカウントの代わりに取引する場合、その42文字の16進形式のオンチェーンアドレス。例: 0x0000000000000000000000000000000000000000
expiresAfter Number ミリ秒単位のタイムスタンプ

Update leverage

POST https://api.hyperliquid.xyz/exchange

コインのクロスレバレッジまたは分離レバレッジを更新します。

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{

"type": "updateLeverage",

"asset": コインのインデックス,

"isCross": クロスレバレッジを更新する場合は true または false,

"leverage": 新しいレバレッジを表す整数。当該コインのレバレッジ制約に従う

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object
vaultAddress String ボールトまたはサブアカウントの代わりに取引する場合、その42文字の16進形式のオンチェーンアドレス。例: 0x0000000000000000000000000000000000000000
expiresAfter Number ミリ秒単位のタイムスタンプ

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Update isolated margin

POST https://api.hyperliquid.xyz/exchange

分離ポジションに証拠金を追加または削除します。

証拠金変更のUSDC値ではなく特定のレバレッジをターゲットにするには、代替アクション{"type": "topUpIsolatedOnlyMargin", "asset": <asset>, "leverage": <float string>}があります。

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{

"type": "updateIsolatedMargin",

"asset": コインのインデックス,

"isBuy": true(このパラメータはヘッジモードが導入されるまで効果はない),

"ntli": 追加または削除する金額を6桁の小数で表す整数。例: 1 usd の場合は 1000000,

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object
vaultAddress String ボールトまたはサブアカウントの代わりに取引する場合、その42文字の16進形式のオンチェーンアドレス。例: 0x0000000000000000000000000000000000000000
expiresAfter Number ミリ秒単位のタイムスタンプ

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Send Asset

POST https://api.hyperliquid.xyz/exchange

この汎用メソッドは、異なる永続契約DEX、スポット残高、ユーザー、および/またはサブアカウント間でトークンを転送するために使用されます。デフォルトのUSDC永続契約DEXを指定するには""を使用し、スポットを指定するには"spot"を使用します。永続契約DEXとの間で転送できるのはコラテラルトークンのみです。

Headers

Name Value
Content-Type* application/json

Body

Name Type Description
action* Object

{

"type": "sendAsset",

"hyperliquidChain": "Mainnet"(テストネットでは代わりに "Testnet" を使用),

"signatureChainId": 署名時に使用されるチェーンのID(16進形式)。例: Arbitrum の場合は "0xa4b1",

"destination": 42文字の16進形式のアドレス。例: 0x0000000000000000000000000000000000000000,

"sourceDex": 転送元のperp dexの名前,

"destinationDex": 転送先のperp dexの名前,

"token": tokenName:tokenId。例: "PURR:0xc4bf3f870c0e9465323c0b6ed28096c2",

"amount": 送信するトークンの量(文字列)。例: "0.01",

"fromSubAccount": 42文字の16進形式のアドレス。サブアカウントからでない場合は空文字列,

"nonce": 現在のタイムスタンプをミリ秒で表すNumber。nonceと一致すべき

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨。上記のaction Object内のnonceと一致する必要がある
signature* Object

Response

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Agent Send Asset

POST https://api.hyperliquid.xyz/exchange

send assetと同様ですが、エージェントが署名できます。転送先は転送元のアドレスと一致する必要があります。デフォルトのUSDC永続契約DEXを指定するには""を使用し、スポットを指定するには"spot"を使用します。永続契約DEXとの間で転送できるのはコラテラルトークンのみです。

Headers

Name Value
Content-Type* application/json

Body

Name Type Description
action* Object

{

"type": "agentSendAsset",

"destination": 42文字の16進形式のアドレス。例: 0x0000000000000000000000000000000000000000,

"sourceDex": 転送元のperp dexの名前,

"destinationDex": 転送先のperp dexの名前,

"token": tokenName:tokenId。例: "PURR:0xc4bf3f870c0e9465323c0b6ed28096c2",

"amount": 送信するトークンの量(文字列)。例: "0.01",

"fromSubAccount": 42文字の16進形式のアドレス。サブアカウントからでない場合は空文字列,

"nonce": 現在のタイムスタンプをミリ秒で表すNumber。nonceと一致すべき

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨。上記のaction Object内のnonceと一致する必要がある
signature* Object

Response

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Send to EVM with data

POST https://api.hyperliquid.xyz/exchange

追加のデータペイロードを含むCoreからEVMへの転送のための特殊なアクションです。詳細についてはHyperCore <> HyperEVM transfersを参照してください。使用されると、transferの代わりにリンクされたコントラクト上でcoreReceiveWithDataが呼び出されます。重要:トークンが適切にリンクされており、リンクされたコントラクトが以下のインターフェースをサポートしていることを確認するのは呼び出し側の責任です:

interface ICoreReceiveWithData {
  function coreReceiveWithData(
    address from,
    bytes32 destinationRecipient,
    uint32 destinationChainId,
    uint256 amount,
    uint64 nonce,
    bytes calldata data
  ) external;
}

Headers

Name Value
Content-Type* application/json

Body

Name Type Description
action* Object

{

"type": "sendToEvmWithData",

"hyperliquidChain": "Mainnet"(テストネットでは代わりに "Testnet" を使用),

"signatureChainId": 署名時に使用されるチェーンのID(16進形式)。例: Arbitrum の場合は "0xa4b1",

"token": tokenName:tokenId。例: "PURR:0xc4bf3f870c0e9465323c0b6ed28096c2",

"amount": 送信するトークンの量(文字列)。例: "0.01",

"sourceDex": 転送元のperp dexの名前,

"destinationRecipient": addressEncoding形式のアドレス,

"addressEncoding": "hex"

"base58",

"destinationChainId": 数値,

"gasLimit": 数値,

"data": bytes,

"nonce": 現在のタイムスタンプをミリ秒で表すNumber。nonceと一致すべき

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨。上記のaction Object内のnonceと一致する必要がある
signature* Object

Response

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Core USDC transfer

POST https://api.hyperliquid.xyz/exchange

usdを別のアドレスに送信します。この転送はEVMブリッジを経由しません。署名形式はウォレットインターフェース向けに人間が読める形式です。

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{

"type": "usdSend",

"hyperliquidChain": "Mainnet"(テストネットでは代わりに "Testnet" を使用),
"signatureChainId": 署名時に使用されるチェーンのID(16進形式)。例: Arbitrum の場合は "0xa4b1",

"destination": 42文字の16進形式のアドレス。例: 0x0000000000000000000000000000000000000000,

"amount": 送信するusdの量(文字列)。例: 1 usd の場合は "1",

"time": 現在のタイムスタンプをミリ秒で表すNumber。nonceと一致すべき

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Core spot transfer

POST https://api.hyperliquid.xyz/exchange

スポット資産を別のアドレスに送信します。この転送はEVMブリッジを経由しません。署名形式はウォレットインターフェース向けに人間が読める形式です。

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{

"type": "spotSend",

"hyperliquidChain": "Mainnet"(テストネットでは代わりに "Testnet" を使用),
"signatureChainId": 署名時に使用されるチェーンのID(16進形式)。例: Arbitrum の場合は "0xa4b1",

"destination": 42文字の16進形式のアドレス。例: 0x0000000000000000000000000000000000000000,
"token": tokenName:tokenId。例: "PURR:0xc4bf3f870c0e9465323c0b6ed28096c2",

"amount": 送信するトークンの量(文字列)。例: "0.01",

"time": 現在のタイムスタンプをミリ秒で表すNumber。nonceと一致すべき

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Example sign typed data for generating the signature:
{
  "types": {
    "HyperliquidTransaction:SpotSend": [
      {
        "name": "hyperliquidChain",
        "type": "string"
      },
      {
        "name": "destination",
        "type": "string"
      },
      {
        "name": "token",
        "type": "string"
      },
      {
        "name": "amount",
        "type": "string"
      },
      {
        "name": "time",
        "type": "uint64"
      }
    ]
  },
  "primaryType": "HyperliquidTransaction:SpotSend",
  "domain": {
    "name": "HyperliquidSignTransaction",
    "version": "1",
    "chainId": 42161,
    "verifyingContract": "0x0000000000000000000000000000000000000000"
  },
  "message": {
    "destination": "0x0000000000000000000000000000000000000000",
    "token": "PURR:0xc1fb593aeffbeb02f85e0308e9956a90",
    "amount": "0.1",
    "time": 1716531066415,
    "hyperliquidChain": "Mainnet"
  }
}

Initiate a withdrawal request

POST https://api.hyperliquid.xyz/exchange

このメソッドは出金フローを開始するために使用されます。このリクエストを行うと、L1バリデーターが出金リクエストに署名し、ブリッジコントラクトに送信します。本記事の執筆時点で出金には$1の手数料がかかり、出金の確定には約5分かかります。

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{
"type": "withdraw3",

"hyperliquidChain": "Mainnet"(テストネットでは代わりに "Testnet" を使用),
"signatureChainId": 署名時に使用されるチェーンのID(16進形式)。例: Arbitrum の場合は "0xa4b1",

"amount": 送信するusdの量(文字列)。例: 1 usd の場合は "1",

"time": 現在のタイムスタンプをミリ秒で表すNumber。nonceと一致すべき,

"destination": 42文字の16進形式のアドレス。例: 0x0000000000000000000000000000000000000000

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨。上記のaction Object内のnonceと一致する必要がある
signature* Object

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Transfer from Spot account to Perp account (and vice versa)

POST https://api.hyperliquid.xyz/exchange

このメソッドは、ユーザーのスポットウォレットから永続契約ウォレットへ、およびその逆にUSDCを転送するために使用されます。

Headers

Name Value
Content-Type* "application/json"

Body

NameTypeDescription
action*Object

{

"type": "usdClassTransfer",

"hyperliquidChain": "Mainnet"(テストネットでは代わりに "Testnet" を使用),
"signatureChainId": 署名時に使用されるチェーンのID(16進形式)。例: Arbitrum の場合は "0xa4b1",

"amount": 転送するusdの量(文字列)。例: 1 usd の場合は "1"。このアクションをサブアカウントに対して使用する場合、amountの後に subaccount: address を含めることができる。例: "1" subaccount:0x0000000000000000000000000000000000000000,

"toPerp": spot → perp の場合は true、それ以外は false,

"nonce": 現在のタイムスタンプをミリ秒で表すNumber。外側のリクエストボディのnonceと一致する必要がある

}

nonce*Number現在のタイムスタンプをミリ秒で使用することを推奨。上記のaction Object内のnonceと一致する必要がある
signature*Object

Response

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Deposit into staking

POST https://api.hyperliquid.xyz/exchange

このメソッドは、バリデーターへのデリゲートのために、ユーザーのスポットアカウントからネイティブトークンをステーキングに移すために使用されます。

Headers

Name Value
Content-Type* application/json

Body

Name Type Description
action* Object

{

"type": "cDeposit",

"hyperliquidChain": "Mainnet"(テストネットでは代わりに "Testnet" を使用),
"signatureChainId": 署名時に使用されるチェーンのID(16進形式)。例: Arbitrum の場合は "0xa4b1",

"wei": 転送するweiの量(数値),

"nonce": 現在のタイムスタンプをミリ秒で表すNumber。外側のリクエストボディのnonceと一致する必要がある

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨。上記のaction Object内のnonceと一致する必要がある
signature* Object

Response

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Deposit into staking (agent)

POST https://api.hyperliquid.xyz/exchange

deposit into stakingと同様ですが、エージェントが署名できます。

Headers

Name Value
Content-Type* application/json

Body

Name Type Description
action* Object

{

"type": "cDeposit2",

"wei": 転送するweiの量(数値)

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object
expiresAfter Number ミリ秒単位のタイムスタンプ

Response

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Withdraw from staking

POST https://api.hyperliquid.xyz/exchange

このメソッドは、ステーキングからネイティブトークンをユーザーのスポットアカウントに移すために使用されます。ステーキングからスポットアカウントへの転送は7日間のアンステーキングキューを経由することに注意してください。

Headers

Name Value
Content-Type* application/json

Body

Name Type Description
action* Object

{

"type": "cWithdraw",

"hyperliquidChain": "Mainnet"(テストネットでは代わりに "Testnet" を使用),
"signatureChainId": 署名時に使用されるチェーンのID(16進形式)。例: Arbitrum の場合は "0xa4b1",

"wei": 転送するweiの量(数値),

"nonce": 現在のタイムスタンプをミリ秒で表すNumber。外側のリクエストボディのnonceと一致する必要がある

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨。上記のaction Object内のnonceと一致する必要がある
signature* Object

Response

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Delegate or undelegate stake from validator

POST https://api.hyperliquid.xyz/exchange

バリデーターに対してネイティブトークンをデリゲートまたはデリゲート解除します。特定のバリデーターへのデリゲーションには1日間のロックアップ期間があることに注意してください。

Headers

Name Value
Content-Type* application/json

Body

Name Type Description
action* Object

{

"type": "tokenDelegate",

"hyperliquidChain": "Mainnet"(テストネットでは代わりに "Testnet" を使用),
"signatureChainId": 署名時に使用されるチェーンのID(16進形式)。例: Arbitrum の場合は "0xa4b1",

"validator": 42文字の16進形式のアドレス。例: 0x0000000000000000000000000000000000000000,
"isUndelegate": 真偽値,

"wei": 数値,

"nonce": 現在のタイムスタンプをミリ秒で表すNumber。外側のリクエストボディのnonceと一致する必要がある

}

nonce* number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object

Response

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Deposit or withdraw from a vault

POST https://api.hyperliquid.xyz/exchange

ボールトに資金を追加または削除します。

Headers

Name Value
Content-Type* application/json

Body

Name Type Description
action* Object

{

"type": "vaultTransfer",

"vaultAddress": 42文字の16進形式のアドレス。例: 0x0000000000000000000000000000000000000000,
"isDeposit": 真偽値,

"usd": 数値

}

nonce* number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object
expiresAfter Number ミリ秒単位のタイムスタンプ

Response

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Deposit or withdraw from an HIP-3 DEX's backstop liquidator

POST https://api.hyperliquid.xyz/exchange

HIP-3バックストップ清算人アドレスに資金を追加または削除します。ntlは1e-6クォートトークンを単位とする整数です。金額は1000クォートトークンの倍数でなければなりません(つまり ntl % 1000000000 == 0)。

出金できるのは元本のみであり、pnlは出金できません。

Headers

Name Value
Content-Type* application/json

Body

Name Type Description
action* Object

{

"type": "hip3LiquidatorTransfer",

"dex": 文字列(例: "xyz"),

"ntl": 数値,
"isDeposit": 真偽値

}

nonce* number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object
expiresAfter Number ミリ秒単位のタイムスタンプ

Response

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Approve an API wallet

POST https://api.hyperliquid.xyz/exchange

APIウォレット(エージェントウォレットと呼ばれることもあります)を承認します。詳細についてはこちらを参照してください。

Headers

Name Value
Content-Type* application/json

Body

Name Type Description
action* Object

{
"type": "approveAgent",

"hyperliquidChain": "Mainnet"(テストネットでは代わりに "Testnet" を使用),
"signatureChainId": 署名時に使用されるチェーンのID(16進形式)。例: Arbitrum の場合は "0xa4b1",

"agentAddress": 42文字の16進形式のアドレス。例: 0x0000000000000000000000000000000000000000,

"agentName": APIウォレットのオプションの名前。1つのアカウントは、名前なしの承認済みウォレットを1つ、名前付きウォレットを最大3つ持てる。さらに、サブアカウントごとに追加で2つの名前付きエージェントが許可される。名前の後にvalid_until {timestamp}を追加することでカスタムの有効期限を設定できる。有効期限は最大で未来の180日まで,

"nonce": 現在のタイムスタンプをミリ秒で表すNumber。外側のリクエストボディのnonceと一致する必要がある

}

nonce* number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object

Response

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Approve a builder fee

POST https://api.hyperliquid.xyz/exchange

builderに対する最大手数料率を承認します。

Headers

Name Value
Content-Type* application/json

Body

Name Type Description
action* Object

{
"type": "approveBuilderFee",

"hyperliquidChain": "Mainnet"(テストネットでは代わりに "Testnet" を使用),
"signatureChainId": 署名時に使用されるチェーンのID(16進形式)。例: Arbitrum の場合は "0xa4b1",

"maxFeeRate": 許可される最大のbuilder手数料率(パーセント文字列)。例: "0.001%",

"builder": 42文字の16進形式のアドレス。例: 0x0000000000000000000000000000000000000000,

"nonce": 現在のタイムスタンプをミリ秒で表すNumber。外側のリクエストボディのnonceと一致する必要がある

}

nonce* number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object

Response

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Place a TWAP order

POST https://api.hyperliquid.xyz/exchange

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{

"type": "twapOrder",
"twap": {

"a": Number,

"b": Boolean,

"s": String,

"r": Boolean,

"m": Number,

"t": Boolean

}

}

キーの意味:
a は asset(アセット)
b は isBuy(買い注文かどうか)
s は size(サイズ)
r は reduceOnly

m は minutes(分)
t は randomize(ランダム化)

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object
vaultAddress String ボールトまたはサブアカウントの代わりに取引する場合、その42文字の16進形式のオンチェーンアドレス。例: 0x0000000000000000000000000000000000000000
expiresAfter Number ミリ秒単位のタイムスタンプ

{% tabs %}

{
   "status":"ok",
   "response":{
      "type":"twapOrder",
      "data":{
         "status": {
            "running":{
               "twapId":77738308
            }
         }
      }
   }
}

{% endtab %}

{% tab title="200: OK Error Response" %}

{
   "status":"ok",
   "response":{
      "type":"twapOrder",
      "data":{
         "status": {
            "error":"Invalid TWAP duration: 1 min(s)"
         }
      }
   }
}

{% endtab %}

Cancel a TWAP order

POST https://api.hyperliquid.xyz/exchange

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{

"type": "twapCancel",

"a": Number,

"t": Number

}

キーの意味:
a は asset(アセット)
t は twap_id

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object
vaultAddress String ボールトまたはサブアカウントの代わりに取引する場合、その42文字の16進形式のアドレス。例: 0x0000000000000000000000000000000000000000
expiresAfter Number ミリ秒単位のタイムスタンプ

{% tabs %}

{
   "status":"ok",
   "response":{
      "type":"twapCancel",
      "data":{
         "status": "success"
      }
   }
}

{% endtab %}

{% tab title="200: OK Error Response" %}

{
   "status":"ok",
   "response":{
      "type":"twapCancel",
      "data":{
         "status": {
            "error": "TWAP was never placed, already canceled, or filled."
         }
      }
   }
}

{% endtab %}

Place a trailing stop order

POST https://api.hyperliquid.xyz/exchange

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{

"type": "trailingStop",

"asset": Number,

"isBuy": Boolean,

"sz": String,

"reduceOnly": Boolean,

"retracement": {"pct": パーセント文字列。例: "1.234%"} または {"px": String},

"activationPx": String

null

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object
vaultAddress String ボールトまたはサブアカウントの代わりに取引する場合、その42文字の16進形式のアドレス。例: 0x0000000000000000000000000000000000000000
expiresAfter Number ミリ秒単位のタイムスタンプ

{% tabs %}

{
   "status":"ok",
   "response":{
      "type":"trailingStop",
      "data":{
         "oid":77738308
      }
   }
}

{% endtab %}

Reserve Additional Actions

POST https://api.hyperliquid.xyz/exchange

アドレスベースのレート制限を増やすために取引を行う代わりに、このアクションではリクエストごとに0.0005 USDCで追加のアクションを予約できます。コストは永続契約残高から支払われます。

destinationを設定すると、別のL1ユーザーの支払いを行うことができます。転送先ユーザーは既に存在している必要があります。このフィールドは未設定の場合、ハッシュ時にはスキップされます。

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{

"type": "reserveRequestWeight",

"weight": Number,

"destination": Address

null

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object
expiresAfter Number ミリ秒単位のタイムスタンプ

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Invalidate Pending Nonce (noop)

POST https://api.hyperliquid.xyz/exchange

このアクション自体は何も行いません(操作なし)が、nonceが使用済みとしてマークされます。これにより、キャンセルアクションよりも効果的に処理中の注文をキャンセルできる場合があります。

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{

"type": "noop"

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object
expiresAfter Number ミリ秒単位のタイムスタンプ

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Enable HIP-3 DEX abstraction

POST https://api.hyperliquid.xyz/exchange

注意: 非推奨です。userSetAbstractionを優先してください。

設定すると、HIP-3永続契約のアクションは、USDCがコラテラルトークンであるHIP-3 DEXについてはバリデーター運営のUSDC永続契約残高から、それ以外の場合はスポット残高からコラテラルを自動的に転送します。HIP-3 DEX abstractionが有効な場合、ポジションまたは未決済注文から解放されたコラテラルは同じソース(バリデーター運営のUSDC永続契約またはスポット残高)に戻されます。

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

NameTypeDescription
action*Object

{

"type": "userDexAbstraction",

"hyperliquidChain": "Mainnet"(テストネットでは代わりに "Testnet" を使用),

"signatureChainId": 署名時に使用されるチェーンのID(16進形式)。例: Arbitrum の場合は "0xa4b1",

"user": 42文字の16進形式のアドレス。ユーザーのサブアカウントでもよい,

"enabled": 真偽値,

"nonce": 現在のタイムスタンプをミリ秒で表すNumber。nonceと一致すべき

}

nonce*Number現在のタイムスタンプをミリ秒で使用することを推奨
signature*Object

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Enable HIP-3 DEX abstraction (agent)

注意: 非推奨です。agentSetAbstractionを優先してください。

上記のUserDexAbstractionと同じ効果ですが、値をnullからtrueに設定する場合にのみ機能します。

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{

"type": "agentEnableDexAbstraction"

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Set User Abstraction

POST https://api.hyperliquid.xyz/exchange

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{

"type": "userSetAbstraction",

"hyperliquidChain": "Mainnet"(テストネットでは代わりに "Testnet" を使用),

"signatureChainId": 署名時に使用されるチェーンのID(16進形式)。例: Arbitrum の場合は "0xa4b1",

"user": 42文字の16進形式のアドレス。ユーザーのサブアカウントでもよい,

"abstraction": 文字列 ["disabled", "unifiedAccount", "portfolioMargin"] のいずれか,

"nonce": 現在のタイムスタンプをミリ秒で表すNumber。nonceと一致すべき

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Set User Abstraction (agent)

POST https://api.hyperliquid.xyz/exchange

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{

"type": "agentSetAbstraction",

"abstraction": 文字列 ["i", "u", "p"] のいずれか。"i" は "disabled"、"u" は "unifiedAccount"、"p" は "portfolioMargin" を表す

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Split outcome

XクォートトークンをX株のYesシェアとX株のNoシェアに分割します。

POST https://api.hyperliquid.xyz/exchange

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{

"type": "userOutcome",

"splitOutcome": { "outcome": Number, amount: String (e.g., "123.0") }

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Merge outcome

X株のYesシェアとX株のNoシェアをXクォートトークンにマージします。

POST https://api.hyperliquid.xyz/exchange

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{

"type": "userOutcome",

"mergeOutcome": { "outcome": Number, amount: String

null(null は最大値を意味する) }

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Merge question

同じ質問に関連付けられた各アウトカムからX株のYesシェアをXクォートトークンにマージします。

POST https://api.hyperliquid.xyz/exchange

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{

"type": "userOutcome",

"mergeQuestion": { "question": Number, amount: String

null(null は最大値を意味する) }

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Negate outcome

質問に関連付けられたあるアウトカムのX株のNoシェアを、その質問に関連付けられた他のすべてのアウトカムのX株のYesシェアに変換します。

POST https://api.hyperliquid.xyz/exchange

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{

"type": "userOutcome",

"negateOutcome": { "question": Number, "outcome": Number, amount: String }

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Validator vote on risk-free rate for aligned quote asset

POST https://api.hyperliquid.xyz/exchange

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{

"type": "validatorL1Stream",

"riskFreeRate": String // 例: 4% の場合は "0.04"

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Authorize AQAv2 role

POST https://api.hyperliquid.xyz/exchange

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{

"type": "authorizeAqav2Role",

"token": number // 例: USDC の場合は 0,

"role": "technical"

"treasury"

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

Claim rewards

POST https://api.hyperliquid.xyz/exchange

Headers

Name Type Description
Content-Type* String "application/json"

Request Body

Name Type Description
action* Object

{

"type": "claimRewards"

}

nonce* Number 現在のタイムスタンプをミリ秒で使用することを推奨
signature* Object

{% tabs %}

{'status': 'ok', 'response': {'type': 'default'}}

{% endtab %}

非公式のコミュニティ翻訳です。著作権は Hyperliquid に帰属し、内容は英語版を優先します。 出典: https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/exchange-endpoint