Skip to main content
ウォレットキットSDKはブラウザで動作するため、Helius apiKeyがクライアント側に存在します。プロバイダーはアプリが読み込まれる際にブートストラップ (/waas/config) に渡します。これはクライアント側SDKにとって想定される動作です。公開されたキーが悪用されないようにすることが重要です。
公開は請求を回避するものではありません。 埋め込まれたウォレットが署名する瞬間にすべての署名が測定され、APIキー層ではありません。ドメインにロックされたキーが漏洩しても、他のサイトで無料署名を作成したりクレジットを浪費したりすることはできません。測定はキーの秘密に依存しません。
このリストを下に進めてください。最初のステップは必要な基本であり、残りは深層防御を追加します。

1. ドメインを制限してキーを保護する(必須)

アプリが稼働するオリジンにキーをロックします。一度設定すると、他のオリジンからのリクエストは拒否され、バンドルから抽出されたキーは自分のドメイン以外では無効になります。
1

RPCアクセス制御を開く

ダッシュボードで、RPCsセクションの下にあるキーに移動してアクセス制御を開きます。
2

許可されたドメインにドメインを追加する

アプリが配信されるすべてのオリジンを追加します—本番、ステージング、プレビュー:
3

環境ごとに別々のキーを使用する

ローカル、ステージング、本番用に異なるキーを保持し、1つをローテーションしても他のものを停止させないようにします。
キーを保護するを参照し、アクセス制御の完全なセット(サーバー側キーの許可されたIPやCIDR範囲)を確認してください。

2. Secure RPC URLs(自動)

RPCトラフィックのために、SDKはブートストラップ時にプロジェクトのキーなしSecure RPC URLsを解決し、それらをconnection呼び出しに使用します。このため、APIキーはRPCリクエストに含まれません。設定する必要はなく、デフォルトで有効です。
セキュアURLはIPごとに5RPSにレート制限され、有料プランで利用可能です。

3. ルートハンドラーでトラフィックをサーバーサイドに移行

SDKは、RPC、送信、トランザクション履歴の呼び出しを自分のサーバー経由で転送し、サーバー側の環境変数からキーを挿入するNext.jsルートハンドラーを提供しています(HELIUS_API_KEY)。これにより、キーはそのリクエストで使われることはありません。これはまた、送信トランザクション用の送信者最適化やトランザクション履歴を活用する方法でもあります。
app/api/helius/[...path]/route.ts
HELIUS_API_KEYをサーバーの環境変数として設定し、ハンドラーが転送リクエストにそれを添付します。クイックスタート → サーバールートハンドラーを参照してください。
ブートストラップはクライアントのapiKeyを依然として使用します。これはプロバイダーconfigに渡され、応答を/waas/configからブラウザに送信するため、ルートハンドラーがマウントされていてもキーはブラウザに存在します。キーをドメインに制限すること(ステップ1)がこの呼び出しを保護します。完全なサーバーサイドキーの処理は今後の予定です。

4. Cloudflare RPCプロキシを自前でホスティング

最大限の制御を得るために、自分のプロキシを展開してキーを完全にサーバーサイドに保持し、独自のレート制限やリクエストフィルタリングを追加できます。

Helius RPCプロキシ

オープンソースRPCプロキシをCloudflareにワンクリックでデプロイできます。

チェックリスト

出荷前に:
  • クライアントキーは正確なオリジンにドメイン制限されています
  • ローカル/ステージング/本番用の別々のキー
  • 環境変数からキーが読み込まれ、ハードコードされません
  • (オプション) サーバーサイドRPC/送信+送信者用にルートハンドラーをマウント
  • (オプション) 完全なサーバーサイドキー処理用のCloudflareプロキシ

次のステップ

キーを保護する

完全なアクセス制御リファレンス:ドメイン、IP、CIDR、およびプロキシ。

構成

プロバイダーの設定とダッシュボードサインイン方法。