APIキーは、API認証の主要なコンポーネントの1つであり、Krakenアカウントのユーザー名とパスワードのAPI版のようなものです。
APIキーは、お客様担当者、取引、入出金、ステーキングのエンドポイントなど、アカウント独自の(プライベート)APIエンドポイントを呼び出すのに必要です。市場データのエンドポイントは特定のクラーケンアカウントと関連づけられていないため、APIキーは市場データ(パブリック)APIエンドポイントの呼び出しには必要ありません。
APIキーは、REST APIコマンドラインクライアント、モバイル用アプリ、Cryptowatchなどの取引プラットフォーム、サードパーティの取引ボット、その他さまざまな製品/サービスなど、当社の市場やアカウントとやりとりするあらゆるソフトウェアによって使用可能です。
- アカウントメニューを開きます(ページの右上隅にある自分の名前をクリックします)
- セキュリティオプションを選択します
- APIオプションを選択します
- キー追加のリンクをクリックします(次のステップでAPIキーを設定できます)
APIキーを使用可能にするには、特に名前/説明とアクセス権限など、設定(セッティング)やオプションの設定(コンフィグレーション)を行う必要があります。
キー名
キー名は、基本的にAPIキーの名前であり、一意(同アカウントの他のAPIキーの名と違うもの)であれば、ほぼ好きなものを使用できます。
デフォルトで、キー名には例えば「api-key-1605316109249」などが割り当てられます。このデフォルトの名はそのまま使用することも、より説明的な名(「Trading Key」、「Account Management Key」、「Python API Key 6」、「Mobile App Key」など)に変更することもできます。
キーの権限
キーの権限によって、APIキーがどのアカウント独自の(プライベート)APIエンドポイントを呼び出すことができるかが決まります。
資金
- 資金のクエリは、Balance(残高)やTradeBalance(取引残高)など、アカウントの残高情報を照会するAPIエンドポイントに必要です。
- 資金の入金は、DepositMethods(入金方法)やDepositAddresses(入金アドレス)など、入金に関連する入出金エンドポイントに必要です。
- 資金の出金は、WithdrawInfo(出金情報)、Withdraw(出金)、WithdrawCancel(出金キャンセル)など、出金に関連する入出金エンドポイントに必要です。
注文および&取引
- オープン注文と取引のクエリは、OpenOrders(オープン注文)、QueryOrders(注文のクエリ)、OpenPositions(オープンポジション)など、既存の注文や証拠金ポジションを照会するAPIエンドポイントに必要です。
- クローズ注文と取引のクエリは、ClosedOrders(クローズ済み注文)、QueryOrders(注文のクエリ)、QueryTrades(取引のクエリ)など、クローズ済み/キャンセル済みの注文や証拠金ポジションを照会するAPIエンドポイントに必要です。
- 注文の訂正は、AddOrder(注文の追加)、EditOrder(注文の編集)、AddOrderBatch(注文バッチの追加)など、新たに発注する取引エンドポイントに必要です。
- 注文のキャンセル/クローズは、CancelOrder(注文のキャンセル)、CancelAll(すべてのキャンセル)、CancelOrderBatch(注文バッチのキャンセル)など、オープン注文または保留された注文をキャンセルする取引エンドポイントに必要です。
その他
- 明細エントリのクエリは、Ledgers(明細)やQueryLedgers(明細のクエリ)など、アカウント明細からアカウントの過去データを取得するAPIエンドポイントに必要です。
- データのエクスポートは、AddExport(エクスポートの追加)、RetrieveExport(エクスポートの取得)、ExportStatus(エクスポートのステータス)、RemoveExport(エクスポートの削除)など、アカウント明細をエクスポート(ダウンロード)するエンドポイントに必要です。
- WebSocket APIへのアクセスは、GetWebSocketsToken(WebSocketsトークン取得)エンドポイント経由で、WebSocket APIの認証トークンを取得するために必要です。
APIキー権限の正しい使用例として、取引の目的でサードパーティに提供されるAPIキーについて考えてみてください。そうしたAPIキーには、注文の訂正と注文のキャンセル/クローズの権限は間違いなく必要です。また、オープン注文と取引のクエリの権限も恐らく必要ですが、資金の出金の権限が不要であることはほぼ確実です。
権限を適切に設定することで、APIクライアントによるアカウントの取引を許可する一方で、アカウント情報へのアクセス、または入出金タスクの実行を防ぐことができます。
任意の設定
その他のAPIキーの設定は、さらに高度な設定を行う場合のみに必要なため、通常はデフォルト値のままにしておくことができます。
- ノンス・ウィンドウは、APIリクエストが順不同に到着する可能性があるネットワークの問題を、短い時間枠(1秒、10秒など)の提供によって解決するために使用される設定です。その時間枠内では、無効なノンス(その前に用いられたノンス値より値の低いノンス)を用いたAPIリクエストが、無効なノンス・エラーを起こさなくなります。
- IPホワイトリスティングは、APIキーの使用を特定のクライアント側のIPアドレスに限定するセキュリティ機能です。
- キー・エクスピレーションは、1週間限定で使えるキーのように、一定の時間内のみに有効なAPIキーの作成に使用することができます。
- クエリスタート/エンド・デート/タイムは、今年の取引歴を取得できるが、それより前の年の取引歴を取得できないキーなど、アカウントの過去データへのリクエストを一定の時間枠に制限する設定です。
APIキーが適切に設定された後は、キー作成ボタンをクリックすることにより、新たなAPIキーを作成できます。
重要:APIキー、プライベートキー、QRコードはユーザー名/パスワードと同じように扱う必要があります。それらに再度アクセスする必要がある場合、パスワードマネージャー内に保存してください。暗号化されていないフォーマットで保存しないでください。
APIキーはパブリックおよびプライベートのキーペアから成り、いずれもAPIクライアントのソフトウェアに提供する必要があります。
キーペアには3つの使用方法があります。
- キーペアをコピーし、プレーンテキストとしてAPIクライアントコードに直接貼りつけることができます。例:当社のPHP APIクライアントが用いている方法。
- キーペアをコピーし、APIクライアントがアクセス可能なプレーンテキストファイルに貼りつけることができます。例:当社のコマンドラインAPIクライアントが用いている方法。
注意:プライベートキーは、一部のAPIクライアントソフトウェアによって、APIシークレット(または単にシークレット)とも呼ばれています。
APIキーは、クラーケンアカウントへのAPIアクセスを認証する安全な方法をすでに提供していますが、2要素認証(2FA)を追加することで、セキュリティをさらに強化できます。
APIキーの2FAは、セキュリティのページから既存のAPIキーに追加可能で、静的パスワードかGoogle認証システムを利用できます。
注意:2FAをAPIキーに追加するには、APIクライアントが2FAをサポートしている(プライベートAPI方式を呼び出す度に2FAデータを提供する)必要があります。これができないと、希望通りのAPI出力が行われず、想定外のエラーが生じます。
APIキーに対する2FAの仕組みの詳細については、こちらをご覧ください。