SolanaのPriority Feeメモ

Priority Feeとは?

ソラナの料金体系は、基本料金と優先料金の2つのコンポーネントで構成されています。大まかに言えば、各料金コンポーネントは理想的には次の目的を果たします:

基本料金: ネットワークのリソースを利用する権利
優先料: リーダーのトランザクションキューで順序を決定します

引用元: note - 理論と実践におけるソラナ料金

Priority Feeの計算方法とは?

getRecentPrioritizationFees, 開発者がトランザクションに追加する優先料金を正確に決定できるようにします。
エンドポイントは、それぞれのアドレスと入力パラメーターを使用して少なくとも1つのトランザクションを正常に着陸させるために使用された過去150ブロックの優先料金のリストを返します。

これは、優先料金に設定する必要がある最小値のスナップショットを提供し、その有用性は比較的制限されています。または、Heliusは 優先料金API これは、より優先度の高い料金の見積もりを提供するために追加の計算を行います。

引用元: note - 理論と実践におけるソラナ料金

Priority Feeの取得方法(JS)

connection.getRecentPrioritizationFees() という感じで取得できるようです。

@solana/web3.js - getRecentPrioritizationFees

実装例: helium-program-library/packages/spl-utils/src
/priorityFees.ts

実装解説:Helius - Priority Fees: Understanding Solana's Transaction Fee Mechanics

Priority Feeの変更方法(JS)

実装例

setComputeUnitPrice で変更するらしい。Transaction().add しないといけない点に要注意。

Solana Cookbook - How to change compute budget, fee, & priority for a transaction

(補足)Helius Priority API

Heliusを使うと簡単そうだった。

Helius - (Alpha) Priority Fee API