本頁內容
Gas Limit 是一筆交易最多能用多少 gas;Gas Price 則是每單位 gas 的價格。要知道最後付了多少執行費,不能只看其中一個數字,而要用「實際計費的 gas 用量 × 實際單價」計算。[1][4]
本文只說明以太坊主網(Ethereum Mainnet)的執行費,包含 EIP-1559 的費用上限。這不是即時 gas 報價或錢包設定建議,也不能直接當成其他網路的總費用公式。
先分清楚:用量上限、實際用量與單價
| 欄位 | 代表什麼 | 單位 |
|---|---|---|
| Gas Limit(gas 用量上限) | 這筆交易最多可使用的 gas 數量 | gas |
| Gas Used(實際用量) | 這筆交易實際計費的 gas 數量 | gas |
| Effective Gas Price(實際單價) | 每單位 gas 實際支付的價格 | 通常顯示為 gwei/gas |
| Max Fee Per Gas(每單位費用上限) | EIP-1559 交易允許的最高單價 | gwei/gas |
| 執行費 | 實際用量 × 實際單價 | 換算後以 ETH 表示 |
Gas 是衡量運算工作量的單位,不是另一種代幣。Gwei 才是 ETH 的計價單位:1 gwei = 0.000000001 ETH,也就是十億分之一 ETH。本文的 Gas Limit 指單筆交易的用量上限,別和限制整個區塊用量的「區塊 gas 上限」混在一起。[1]
Max Fee 是上限,不一定是成交單價
EIP-1559 交易的實際單價,取決於所在區塊的基礎費用(base fee)、交易的優先費上限(max priority fee),以及每單位費用上限(max fee)。在交易符合納入區塊的有效性條件時,計算方式如下:[2]
實際單價 = 基礎費用 + min(優先費上限,每單位費用上限 − 基礎費用)
Min 的意思是取兩者較小的值。每單位費用上限至少要涵蓋基礎費用,但滿足這項條件,不代表交易一定會被納入區塊,也不保證執行成功。上限與實際收費之間未用到的差額,不會變成另一筆手續費。傳統交易使用 gas price 欄位,而不是這一組 EIP-1559 費用上限。[2]
同一筆假設交易,算出兩個不同金額
假設一筆一般 EIP-1559 交易使用下列數值。所有數字都是教學例子,不是可直接照抄的設定,也不是對網路費用的預測。
| 項目 | 假設數值 |
|---|---|
| 交易 gas 用量上限 | 60,000 gas |
| 實際計費用量 | 40,000 gas |
| 基礎費用 | 12 gwei/gas |
| 優先費上限 | 2 gwei/gas |
| 每單位費用上限 | 20 gwei/gas |
先算實際單價:12 + min(2,20 − 12)= 14 gwei/gas。
0.00056 ETH
40,000 gas × 14 gwei/gas
實際用量 × 實際單價
0.0012 ETH
60,000 gas × 20 gwei/gas
用量上限 × 單價上限
- 執行費:40,000 × 14 = 560,000 gwei = 0.00056 ETH。
- 由兩項上限算出的 gas 費用上限:60,000 × 20 = 1,200,000 gwei = 0.0012 ETH。
第二個金額不是交易收據上的實際費用,也不包含交易本身轉出的 ETH(transaction value)。EIP-1559 的餘額檢查要求帳戶足以支付「轉出的 ETH + Gas Limit × Max Fee Per Gas」,不能只看 gas 費用上限。[2]
交易失敗,為什麼還可能付 gas 費?
狀態變更被撤銷,不代表已經做過的運算也沒發生。合約可以透過 REVERT 中止執行並撤銷變更,而不耗盡所有剩餘 gas。這和 out-of-gas(gas 不足)例外不同:後者會耗盡分配給該次失敗執行的 gas。因此,失敗交易的用量不一定剛好等於整筆交易的 Gas Limit。[3]
還要分清楚「已執行但失敗」與「尚未納入區塊就被拒絕」。無效交易若在執行前被拒絕,不會只因為錢包顯示錯誤,就產生鏈上 gas 費。[1]
這些區別用來解讀費用,不能單憑它們診斷某筆交易失敗的原因,也不是重新送出交易的建議。
看交易收據,別把估算當成實際費用
以太坊交易收據會分開列出 gasUsed、effectiveGasPrice 和 status。gasUsed 只屬於這一筆交易;cumulativeGasUsed 則是同一區塊從第一筆交易累計到這一筆的用量。若拿累計值來算單筆費用,可能把前面交易的用量也算進去。尚待處理的交易,還沒有執行收據。[4]
閱讀時,依序確認四件事:
- 看到的是執行後的收據,還是執行前的費用估算?
- status 顯示成功還是失敗?
- 計算時用的是「這一筆」的 gasUsed,乘上 effectiveGasPrice 嗎?
- 單價的單位是 wei 還是 gwei?最後顯示的是 ETH,還是另外換算的法幣金額?
算出 gas 費,也還沒算完整筆交易的所有成本。平台費用與其他入出金成本,需要另外比較,詳見預測市場費用指南。費用數字也不能告訴你一項請求授予了哪些權限;相關概念可參考代幣授權與可動用額度指南。
常見問題
把 Gas Limit 調低,就能少付手續費嗎?
不能這樣理解。Gas Limit 限制的是可用數量,不是每單位價格;實際執行費仍要看 gasUsed × effectiveGasPrice。可用 gas 不足時,交易可能無法通過驗證,或在執行過程中失敗。兩種情況是否產生鏈上費用不同。[1][4]
Max Fee Per Gas 會全額收取嗎?
不一定。它是單價上限,不是實際單價。本例的上限是 20 gwei/gas,實際單價則是 14 gwei/gas;再乘上實際計費用量,才得到執行費。[2]
只要交易失敗,就一定扣完 Gas Limit 嗎?
不是。REVERT 與 gas 不足例外的處理不同,執行前遭拒也不等於已消耗鏈上 gas。要先辨認失敗發生在哪個階段,再看收據中的實際用量。[1][3]
0.0012 ETH 的費用上限包含轉帳金額嗎?
不包含。它只是本例的 Gas Limit × Max Fee Per Gas;交易另外轉出的 ETH 要分開計算。餘額必須足以支付這兩部分。[2]
可以用 cumulativeGasUsed 計算這筆手續費嗎?
不應把它當成單筆用量。它包含同一區塊截至這筆交易的累計 gas,可能也包含前面交易的用量。單筆執行費應使用該筆收據的 gasUsed 與 effectiveGasPrice。[4]
資料來源與適用範圍
資料查核日期:2026 年 10 月 23 日。這是查核日期,不是下列文件的發布日期。本文沒有連接錢包或送出交易。
- Ethereum:燃料與費用,用於 gas、單位與執行前拒絕的說明。
- EIP-1559:交易費用機制(英文),用於有效性、費用上限與餘額計算。
- EIP-140:REVERT 指令(英文)。
- Ethereum JSON-RPC:eth_getTransactionReceipt(英文)。
繼續了解相關概念
想查其他費用或交易名詞,可以瀏覽文章列表,或搜尋你正在遇到的問題。
分享本指南