メインコンテンツへスキップする

Astar zkEVM トランザクションコスト試算

Astar zkEVMの手数料はどのように動作するのか?

Astar zkEVMでは、L1のガス代に固定係数を適用してガス代を計算します。 その価格係数は固定の値で、あまり変化することはありません。また、その値はL1にトランザクションを発行するためにかかるロールアップのコストに基づいて決定されています。 簡単にいうと、L2のガス料金はL1のガス料金に比例するということです。

L2{gas_fee}=L1{gas_fee}FactorL2_\{gas\_fee\} = L1_\{gas\_fee\} * Factor

L1のガス代はL1のトランザクション量に応じて変化します。 もしトランザクションのタイミングが変更可能であれば、L1のガス代が低いタイミング(週末など)でトランザクションを送信することで手数料を削減できます。

ネットワークの混雑具合によりガス代が変化する構造に基づくEIP-1559 (こちら) が将来的に実装され、L2のガス代が流動的になる可能性があります。

RPCノードからガス料金を取得する

以下のRPCコールを用いてAstar zkEVMのシークエンサーからガス代を取得することができます:

curl https://rpc.zkatana.gelato.digital/ \
-X POST \
-H "Content-Type: application/json" \
--data '{"method":"eth_gasPrice","params":[],"id":1,"jsonrpc":"2.0"}'

16進数のガス料金がwei建てで返ってきます。

BlockscoutのPriceオラクルを使用する

BlockscoutのPriceオラクルはこれまでのブロックの平均からガス料金を計算します。eth_gasPriceメソッドを呼び出すわけではありません。

GETリクエストをBlockscout Price Oracle endpointに送信し、オラクルから推奨のガス料金を受け取ることができます。

cURL

curl https://astar-zkevm.explorer.startale.com/api/v1/gas-price-oracle

JavaScript

fetch('https://astar-zkevm.explorer.startale.com/api/v1/gas-price-oracle')
.then(response => response.json())
.then(json => console.log(json))

Python

import requests
requests.get('https://astar-zkevm.explorer.startale.com/api/v1/gas-price-oracle').json()

オラクルからのレスポンス

BlockscoutのオラクルからのJSONレスポンスは以下のようになります:

{
"average":3.02,
"fast":3.02,
"slow":3.02,
}
  • slow はGwei建てでのガス代になります。Astar zkEVMにトランザクションを送信する前にこの価格を参考にすることができます。