通貨解説

Solanaで取引に失敗したのに手数料が減るのはなぜ?

Solanaは、実行した取引が失敗した場合も手数料を徴収します。基本手数料、優先手数料、送信前のエラーを区別して読むための整理です。

Solanaで取引に失敗したのに手数料が減るのはなぜ?の内容を図解したサムネイル
記事内容を基に制作した図版です。

この記事のポイント

  • ネットワークで実行された取引は、失敗しても手数料がかかる。
  • 優先手数料は、交換条件の成立やプログラムの成功を保証しない。
  • 送信前のエラーと、取り込まれた後の実行失敗を分けて確認する。

二つの手数料を読み分ける

種類公式資料での説明
基本手数料署名の検証などの費用。署名1件当たり5000 lamports
優先手数料任意設定。処理順に関係するが、実行成功の保証ではない
確認する記録取引IDがあれば、処理結果と手数料の内訳を照合

取引の目的が達成されなくても、実行には費用がかかる

Solanaの公式資料では、取引が成功しても失敗しても手数料がかかると説明されています。実行前に支払者から手数料が差し引かれ、プログラムの処理が失敗しても、その費用は徴収されます。交換したい通貨が受け取れなかったことと、ネットワークが取引を処理したことは別だからです。

一つの取引に含まれる命令は、一まとまりとして処理されます。たとえば複数の命令の途中で失敗したとき、利用者が意図した変更を途中まで成立させる形ではありません。一方で、手数料まで成功時にだけ発生するわけではありません。この違いが、「残高の移動は起きていないのにSOLが少し減った」という見え方につながります。

基本手数料と優先手数料を分けて読む

手数料には、署名の検証などに対する基本手数料と、任意に設定する優先手数料があります。公式資料の基本額は署名1件当たり5000 lamportsです。優先手数料は処理される順番に関係しますが、アプリのプログラムが正しく動くことや、交換条件が成立することを保証する費用ではありません。

従来型とv0形式では、優先手数料は設定した計算量の上限と単価から計算されます。実際に使った計算量だけで決まるわけではなく、必要以上に大きい上限は費用に影響します。公式資料にはv1形式で直接総額を設定する方式も記載されているため、異なる形式の説明やウォレット画面を比較する場合は、何を設定している数値かも確かめたいところです。

画面の「失敗」だけで、同じ処理を繰り返さない

ウォレットの送信前の確認で止まった場合と、ネットワークに取り込まれて実行された結果が失敗した場合は区別が必要です。アプリのエラー表示だけでは、どちらか断定できません。取引IDが発行されているなら、その記録の成否と手数料を確認する方が、残高の印象だけで判断するより確実です。

再送を考えるときも、先の取引の状態が分からないまま連続で操作すると、状況を追いにくくなります。まず、取引ID、処理結果、手数料の内訳を控えると、アプリの問い合わせでも説明しやすくなります。SOLを使わないトークンの送付でも手数料の支払いにはSOLが必要なので、送る通貨の残高だけを見ないことも大切です。

出典・参考資料

内容は確認日時点の資料に基づきます。利用条件や今後の日程は、リンク先の最新の案内もご確認ください。