メインコンテンツまでスキップ

ガス抽象化

ガス抽象化により、ユーザーはQORではなく、承認されたネイティブ以外のトークンで取引手数料を支払えます。手数料の変換コードはチェーンの一部ですが、現在、どちらのネットワークでもネイティブ以外のトークンは承認されていないため、すべての手数料はQORで支払われます。このページでは、現在稼働しているもの、変換が実装どおりにどう動作するか、そして代わりに行うべきことを説明します。

まだ利用できません:すべての手数料をuqorで支払ってください

メインネット(qorechain-vladi、ノードリリース v3.2.3、ブロック高 3,742,566 からは v3.2.4)とテストネット(qorechain-diana、ノードリリース v3.2.4)で、2026年10月20日に確認した内容です。

  • 現在稼働中の承認済みトークン一覧には uqor のみが含まれています。手数料の変換は v3.2.2 で有効になりましたが、それ以外は何も登録されておらず、ブロックごとの変換上限は 0(変換オフ)で、変換用フロートには残高がありません。それ以外のデノミネーションで支払われた手数料は、シミュレーションでも実際のトランザクションでも、「denom not accepted for fee payment」エラーで拒否されます。
  • どちらのネットワークにもIBCチャネルもクライアントも存在しないため、支払いに使える ibc/… 残高は存在し得ません。

すべての手数料を uqor で支払ってください。稼働中のネットワークでトークンが承認された時点で、このページは更新されます。


現在動作するもの:uqorで手数料を支払う​

すべてのトランザクションは、ガス1単位あたり最低 0.1 uqor を支払います。ガスリミットと手数料を一緒に設定します。

qorechaind tx bank send mykey qor1recipient... 5000000uqor \
--gas 400000 --fees 40000uqor \
--chain-id qorechain-vladi --generate-only > tx.json

その後、トランザクションコマンドの説明に従って、qorechaind tx pqc cosign でハイブリッド署名してブロードキャストします。トランザクションタイプごとの推奨上限については、手数料とガスをご覧ください。


稼働中の設定​

このモジュールは、REST と gRPC で設定を提供しています。以下は、2026年10月20日時点の両ネットワークの値です。

フィールド値意味
enabledtrueモジュールのスイッチ
native_denomuqorすべての手数料が最終的に支払われるデノミネーション
accepted_tokensuqor のみ手数料の支払いに使えるトークン。uqor は価格ソースを必要としません
premium_bps300価格リスクをカバーするために、変換後の手数料の価値のうちフロートが保持する割合(3 %)
max_tip_multiplier3変換後の手数料は、そのガスに対する最低手数料のこの倍数を超えてはなりません。0 の場合は上限なしを意味します
float_min0フロートが常に確保しておくネイティブ残高
block_conversion_cap0フロートがブロックごとに支払う最大額。0 は変換がオフであることを意味します

このページの以前のバージョンでは、固定レートの ibc/USDC と ibc/ATOM のプレースホルダーエントリが表示されていました。これらは稼働中の一覧には含まれていません。

ご自身で確認するには:

qorechaind query gasabstraction config
qorechaind query gasabstraction accepted-tokens
qorechaind query gasabstraction conversion-rate uqor
qorechaind query gasabstraction float

curl -s https://api.qore.host/qorechain/gasabstraction/v1/config
curl -s "https://api.qore.host/qorechain/gasabstraction/v1/conversion_rate?denom=uqor"
curl -s https://api.qore.host/qorechain/gasabstraction/v1/float

conversion_rate は、rate、effective_rate(レートからプレミアムを差し引いたもの)、price_source、およびそのトークンがこの高さで usable(使用可能)かどうかを返し、使用できない場合は reason も返します。float は、フロートのアドレスと残高、および block_cap に対する現在のブロックの使用量を返します。JSON-RPC メソッド qor_getGasAbstractionConfig はどの公開エンドポイントでも提供されていません(qor_ 名前空間を参照)。REST または gRPC を使用してください。


変換の仕組み(実装どおり)​

v3.2.2 以降、手数料デコレーターは各トランザクションを2つの経路のいずれかに振り分けます。

  • uqor での手数料、または複数のデノミネーションでの手数料は、ネイティブ経路を通り、従来どおり処理されます。
  • ちょうど1つのネイティブ以外のデノミネーションでの手数料は、変換経路を通ります。

変換経路では次のようになります。

  1. 承認済みか? デノミネーションが承認済みトークン一覧に含まれ、かつ価格ソースを持っている必要があります。そうでなければ、トランザクションは拒否されます。
  2. 価格。 トークンの価格は、次の2つのソースのいずれかから得られます。指定されたブロック高で失効する、ガバナンスが設定した固定レート、または、そのトークンとQORをペアにした AMM プールの時間加重平均価格です。プールの価格が使われるのは、プールがアクティブで、QOR側に設定された最小流動性以上を保有し、スポット価格が平均価格から設定された乖離幅以内にある場合に限られます。
  3. 価値。 手数料のネイティブ価値は、トークンの量に価格を掛け、プレミアムを差し引いたものです。
  4. ネイティブ手数料と同じルール。 ネイティブの最低手数料ルールと動的手数料ルールがそのネイティブ価値に適用されるため、変換後の手数料は、QOR建ての手数料が満たすべき水準(下限としてガス1単位あたり0.1 uqor)をそのまま満たす必要があり、max_tip_multiplier による上限も受けます。
  5. 決済。 支払者のトークンはガス抽象化モジュールのフロートに送られ、フロートがそのネイティブ価値を uqor でフィーコレクターに支払います。したがって、フィーコレクターより下流のすべて(バーン、バリデーター、ステーカー、トレジャリー、ライトノードの取り分)は、常に uqor だけを扱います。

変換は3つの観点で制限されています。トランザクションごと(max_tip_multiplier)、ブロックごと(block_conversion_cap)、そしてフロートが常に確保する残高(float_min)です。すべての拒否はシミュレーション中にも発生するため、ガス見積もりは実際のトランザクションと同じように失敗します。

トークンを承認してもらうには​

  • ガバナンスが MsgUpdateConfig で設定を置き換えます(権限者:ガバナンスモジュールアカウント)。これが、実際の ibc/<hash> 手数料トークンとそのプールまたは固定レートを追加し、変換を開始する方法です。
  • フロートは、通常のバンク送金を拒否するモジュールアカウントです。MsgFundFloat(qorechaind tx gasabstraction fund-float <amount>uqor)で資金を供給します。たとえば、その目的のためにコミュニティプールからの支出を受け取ったアカウントが行います。

メインネットでは、そのいずれについても提案はまだ行われておらず、提案が可決されるまで一覧は uqor のみのままです。