Koraとは?
Koraは、ユーザーがSOLの代わりにSPLトークンでトランザクション手数料を支払うこと(または完全に手数料を回避すること)を可能にする、Solanaの手数料抽象化レイヤーです。これは、Solanaネットワークのトランザクション手数料をスポンサーしながら、アプリケーションがサポートするトークンでの支払いを受け入れるペイマスターとして機能するJSON-RPCサーバーです。
課題:ユーザーはSolanaでトランザクション手数料を支払うためにSOLが必要であり、主に他のトークンを保有するアプリケーション(例:USDCのみを使用するペイメントウォレットや、BONKのみで取引を行うゲームなど)にとって摩擦が生じます。
ソリューション:Koraノードオペレーターは、SPLトークンでの手数料支払いを受け入れ、トランザクションを検証・署名し、自身のSOLでネットワーク手数料を支払うことで、ユーザーにガスレス体験を提供します。
ユースケース例
- ネオバンク:ユーザーが手数料のためにSOLを必要とせずにUSDCを送信できるようにする
- ゲーミング:プレイヤーがすべてのトランザクションにゲーム内トークンを使用
- リキッドステーキング:ユーザーがネイティブSOLではなく、あなたのdAppのリキッドステーキングトークンを保有・使用できるようにする
- ロイヤルティ報酬:ユーザーのロイヤルティレベルに基づいて、一定数の補助手数料を報酬として提供
主な機能
- セキュア:プログラム、トークン、アカウントに対する設定可能な検証ルール
- 柔軟な価格設定:リアルタイム価格設定で複数の手数料支払いトークンをサポート
- 簡単なデプロイ:すぐにデプロイ可能なKora CLI crate
- 開発者フレンドリー:Solana Kitとシームレスに連携するCLIおよびTypeScript SDKを備えたJSON-RPC API
- 本番環境対応:組み込みのレート制限、監視、セキュリティ機能
仕組み
Koraノードは、アプリケーションとSolanaの間のミドルウェアとして動作します。Solana上のすべてのトランザクションには、トランザクションに署名しSOLでネットワークトランザクション手数料をカバーする手数料支払者が必要です。さらに、プログラムロジックに応じて、トランザクションには他のウォレットからの署名が必要になる場合があります(例:トークン転送にはトークン所有者の署名が必要です)。
Koraは、Solanaトランザクションがネットワークに送信される前にそれを検査し、ノードの設定されたセキュリティ要件を満たしていることを確認し、トランザクションにノードオペレーターへの適切なSPLトークン支払いinstructionsが含まれていることを検証します。検証が完了すると、Koraは手数料支払者としてトランザクションに共同署名し、完全に署名されたトランザクションをアプリケーションに返してネットワークへの送信を行います。
Koraトランザクションフロー
- ユーザーがトランザクションを開始
- アプリがトランザクションを構築(Koraノードオペレーターへのトークン支払いinstructionsを含む)
- ユーザーがトランザクションに署名
- アプリが署名済みトランザクションをKoraノードオペレーターに送信
- Koraがトランザクションを検証(許可されたプログラム、トークンなどの設定ルールに照らし合わせ、Oracleを通じた現在の市場価格に基づいてネットワーク手数料をカバーするのに十分な支払いであることを確認)
- Koraが検証済みトランザクションに手数料支払者として署名し、アプリに返却
- アプリがKora署名済みトランザクションをSolanaに送信して処理
- Solanaがトランザクションを処理:SPLトークンがノードオペレーターに流れ、SOL手数料はKoraが支払い、ユーザーのトランザクションが処理される
- アプリがトランザクションが正常に完了したことを確認し、ユーザーに通知
ユーザーはSPLトークンのみを使用してトランザクションを正常に完了し、KoraがすべてのSOL建てネットワーク手数料を処理しました。
Koraトランザクションフロー
重要な用語
- 手数料支払者:Solanaトランザクションの署名者アカウントで、トランザクションのオンチェーン処理に関連するネットワークコストを負担します。
- ガス(またはガス手数料):Solana上でトランザクションを送信し完了させるために必要なコスト(SOLで支払われます)。
- ガスレスリレイヤー:ユーザーが直接ガス手数料を支払うことなく、ユーザーに代わってブロックチェーントランザクションを促進するサービス(Koraはガスレスリレイヤーです)。
- JSON-RPC:ステートレスで軽量なリモートプロシージャコール(RPC)プロトコルで、データのシリアライゼーションにJSON(JavaScript Object Notation)を使用します。クライアントがサーバー上のメソッドをローカル関数のように呼び出すことで、クライアントとサーバー間の通信を可能にします。
- Oracle:トークンのリアルタイム価格データを提供するサービス。
- ペイマスター:通常、代替トークンや通貨での支払いと引き換えに、ユーザーに代わってトランザクション手数料を支払うサービスまたはアカウント(Koraノードオペレーターはペイマスターです)。
- rent:ブロックチェーン上でアカウントをアクティブに保つためにSolanaが要求するデポジット。rentはアカウントが閉鎖されたときに取り戻すことができます。
始めましょう
パスを選択してください:
Koraを素早く試したい
ローカルのKoraサーバーを起動し、10分以内に手数料抽象化の動作を確認できます。
Koraノードを運用したい
独自のKoraサーバーをセットアップ・デプロイして、アプリケーションのトランザクションをスポンサーします。
アプリでKoraを使用したい
Kora SDKを使用して、SolanaアプリケーションにFee
Abstractionを追加します。推奨されるアプローチは、createKitKoraClient()を使用することです。これはKitのプラグインアーキテクチャと統合され、トランザクション計画、手数料見積もり、支払いの注入、送信を自動的に処理します。
→ Kitクライアントガイド - Kitクライアントでガスレストランザクションを構築
より低レベルの制御が必要な場合は、KoraClientを直接使用した完全なトランザクションフローガイド、または利用可能なすべてのクライアントオプションについてはAPIリファレンスをご覧ください。
サポートが必要ですか?
- Solana Stack Exchange -
koraタグを付けて質問してください - GitHub Issues - バグ報告や機能リクエスト
Is this page helpful?