Why Gas Fees Are Quoted in Gwei (And What Wei, Gwei, and Ether Actually Are)
A Number That Looks Wrong Until You Know the Trick
If you have ever sent an Ethereum transaction, you have stared at a number like "25 gwei" and quietly wondered whether you were about to pay the right amount. Twenty-five of what, exactly? The wallet helpfully tells you the total in ETH, but the part that matters — the gas price — is denominated in a unit most people cannot place on a number line. Is gwei expensive? Is it the same as wei? Why does the same chain need three different units for the same currency?
The short version is that Ethereum's native token has one canonical unit, wei, and that unit is too small for humans to read at the prices the chain actually charges. Gwei is what you get when you take wei and multiply by a billion, and it sits in the sweet spot where gas prices are small integers most of the time. The longer version is more interesting, because it touches the history of the protocol, the design of EIP-1559, and the small linguistic decisions that shape how an entire industry talks about money.
This post is the explainer the wallet UIs never quite give you. By the end you should be able to read any gas price quote without converting in your head, eyeball whether you are overpaying, and understand why the math behind a $4 transaction involves a number with eighteen zeroes in it.
Wei Is the Real Currency. Ether Is the Friendly Label.
Here is the part that surprises people who came to crypto through ETH price charts: the Ethereum protocol does not natively know what an "ether" is. Internally, every balance, every transfer amount, every fee, and every numeric value the EVM touches is denominated in wei. One ether is defined as exactly 1018 wei, which is a one followed by eighteen zeros — a quintillion. When you send 0.05 ETH to a friend, the transaction your wallet signs contains the integer 50000000000000000. That is the actual on-chain value. The "0.05 ETH" your wallet shows you is a display convention, applied by the software so you do not have to count zeros every time you check a balance.
The reason the protocol uses an integer this large comes down to a design choice that paid off enormously: Ethereum does not use floating-point arithmetic anywhere. Floats are notoriously unsuitable for financial systems because they accumulate rounding errors, and at scale those errors become exploitable. The Ethereum team made the same call Bitcoin made before it — pick a base unit so small that even tiny fractions of the headline currency can be represented as plain integers, and never use anything but integers in the execution layer. That base unit is wei, named after Wei Dai, the cryptographer whose 1998 b-money proposal is one of the intellectual ancestors of every cryptocurrency in existence.
So when you read that the total ETH supply is around 120 million, the protocol sees something closer to 120,000,000,000,000,000,000,000,000 wei. The chain does not get tired of carrying those zeros around because integer math is essentially free at the EVM level. Humans get tired of reading them, which is why we have the rest of the table.
The Denomination Table You Will Actually Encounter
There are several named denominations between wei and ether, but most of them are vestigial. In practice you will only ever see three on a regular basis: wei, gwei, and ether itself. Here is the full table, with the units in increasing order of size and the alternate names you may see in older documentation or block explorers.
- wei — 1 wei. The base unit. Named after Wei Dai.
- kwei, sometimes called babbage after Charles Babbage — 103 wei. Almost never used in production.
- mwei, sometimes called lovelace after Ada Lovelace — 106 wei. Also almost never used.
- gwei, sometimes called shannon after Claude Shannon — 109 wei. The unit you actually live in.
- szabo, after Nick Szabo — 1012 wei. Effectively deprecated.
- finney, after Hal Finney — 1015 wei. Effectively deprecated.
- ether — 1018 wei. The headline unit.
The historical denominations between gwei and ether (szabo and finney) were intended as friendly units for everyday transaction amounts, the way "cents" sits between "mills" and "dollars" in traditional currency. They never caught on, partly because crypto pricing tools gravitated to displaying values in ETH directly, and partly because the gap between gwei and ether turned out to be exactly the place where the actual UX problem lived. Gas got quoted in gwei. Account balances got quoted in ETH. Nothing else needed a name.
Why Gas Is Quoted in Gwei Specifically
Gas — the unit of computational work the EVM charges for — is a separate concept from money, but the price of gas is denominated in the chain's native currency. The protocol multiplies the amount of gas a transaction uses by the gas price the sender is willing to pay, and that product, in wei, is what the network actually deducts from the sender's balance.
The problem is that gas prices on Ethereum live in a range that is awkward in every other unit. A typical gas price during normal load might be twenty billion wei — twenty followed by nine zeros. In ether terms, that same price is 0.00000002 ETH per unit of gas. Neither of those is readable at a glance. Twenty gwei, on the other hand, is just twenty. It is the smallest unit at which a gas price comfortably fits as a plain integer, which is exactly what you want when humans are eyeballing fees and bots are competing for inclusion in blocks down to the single-digit gwei.
The convention stuck because it works. Gas prices that swing from two gwei in the middle of the night to two hundred gwei during a hot NFT mint stay readable across that entire range. Wallets, block explorers, MEV bots, and dashboards all converged on gwei without anyone formally legislating it, and the unit became the lingua franca of fee discussion. When someone on a Discord asks "what's gas right now?", the expected answer is a single small number with the unit implied. That implied unit is gwei.
If you want to sanity-check the conversion in either direction without doing the zero-counting yourself, our wei-to-ether converter takes any wei amount and shows you the equivalent in kwei, mwei, gwei, and ether at the same time. It is the kind of tool that is unimportant until you are debugging an estimated fee that looks off by an order of magnitude, at which point it is the difference between a confident "send" and a deleted browser tab.
Reading a Gas Price the Way Practitioners Do
Once you internalize that gas prices are small integers in gwei, a few rules of thumb make the numbers stop feeling abstract. A simple ETH transfer on Ethereum mainnet uses exactly 21,000 gas — a constant fixed by the protocol. So the total fee in wei for that transfer is 21,000 × gas_price_in_wei, and the fee in ether is 21,000 × gas_price_in_gwei × 10-9.
That formula is easier than it looks. Drop the constants: a gas price of one gwei means a simple ETH transfer costs 21,000 gwei, which is 0.000021 ETH. Multiply both sides by whatever the live gas price is. At 25 gwei, a transfer costs roughly 0.000525 ETH. At an ETH price of $3,000, that is about $1.58. The arithmetic is unglamorous, but once you have done it twice, you can ballpark any transaction in your head — gwei price, multiplied by twenty-one if it is a transfer or two hundred if it is a swap or five hundred if it is a heavy contract call, then divided by a million for a rough ETH figure.
The same math applies to more complex transactions. A Uniswap V3 swap typically uses somewhere between 150,000 and 250,000 gas depending on the path; an ERC-20 transfer is about 65,000; minting an NFT can run anywhere from 80,000 into the millions depending on what the contract does. Multiply the gas used by the gwei price, divide by a billion, and you have the fee in ether. Multiply by the ETH price in dollars and you have the human number.
EIP-1559 and Why Modern Gas Prices Have Two Numbers
If you have looked at gas in the last few years you may have noticed that wallets often quote two prices: a base fee and a priority fee, both in gwei. This is the result of EIP-1559, which activated in the London hard fork in August 2021 and changed the way Ethereum's fee market works. Before that, every transaction was a single sealed-bid auction — you posted a gas price, and the block builder either included you or did not. The fee market was notoriously hard to reason about, and overpaying was the norm.
EIP-1559 split the fee into two pieces. The base fee is set algorithmically by the protocol, scales up and down based on how full recent blocks have been, and is burned rather than paid to validators. The priority fee, sometimes called the tip, is the part you pay to whoever builds the block you land in. The total you pay per unit of gas is the sum, capped by a max fee you specify so a sudden base-fee spike does not drain your wallet.
Both numbers are quoted in gwei because both are gas prices in the original sense. The base fee is usually the larger of the two; priority fees are often a single gwei or less on Ethereum mainnet, sometimes higher when MEV bots are competing for the same block. Layer 2 chains like Base, Arbitrum, and Optimism have their own variations on this, and the priority fee component on most L2s is effectively a rounding error. The convention of quoting all of it in gwei is one of the few things that has stayed consistent across the entire EVM ecosystem.
The Other Chains Borrowed the Same Unit
Because so much tooling is shared across EVM-compatible chains, gwei spread far beyond Ethereum itself. Polygon, BSC, Avalanche C-chain, Base, Arbitrum, Optimism, Linea, Scroll — all of them use the same wei-as-base-unit, gwei-as-display convention, even though their native tokens are MATIC or BNB or AVAX rather than ETH. The denominator scales: one POL is 1018 wei, one BNB is 1018 wei, one AVAX is 1018 wei. The label changes; the math does not.
This is a coincidence of EVM compatibility rather than a deliberate standard. Every chain that runs the Ethereum Virtual Machine inherits its integer arithmetic and its 18-decimal display convention by default, and trying to deviate would break vast amounts of tooling. The result is that "gwei" effectively means "a billionth of the native token" across most of the EVM ecosystem. If you ever find yourself reading Polygon gas in gwei, that is the underlying reason.
Cosmos SDK chains do things differently — most use 6 decimals rather than 18, with units like uatom (micro-atom) playing roughly the role of gwei. Bitcoin uses 8 decimals and calls its base unit the satoshi. The choice of decimal place is a design decision each chain makes once, very early, and never changes. Ethereum's eighteen decimals look excessive until you realize they leave room for ten more orders of magnitude of price appreciation before the chain has to think about precision at all.
The Mental Model That Makes All of This Stick
The single most useful thing to remember is that wei is the integer, ether is the display, and gwei is the convenient middle ground for gas prices specifically. Everything else falls out of that. When a wallet shows you a balance in ETH, it has divided by 1018. When it shows you a gas price in gwei, it has divided by 109. The underlying storage is always wei, always an integer, always exact.
The reason this matters beyond pub-quiz trivia is that small unit mistakes cause real losses. The wrong number of zeros in a smart-contract function call can turn a one-dollar fee into a thousand-dollar fee, or a thousand-dollar transfer into a one-dollar transfer that lands the rest in the validator's pocket. Tools that round in display but not in submission are a particular source of confusion when you are writing transactions by hand. The discipline of checking your unit before you click sign is the same discipline that keeps financial software honest, and it is worth practicing even on small transactions where the consequence of a mistake is just embarrassment rather than money.
Once you have the conversion in your head, the strange-looking quantities the protocol works in stop being strange. Gas at 25 gwei is gas at 25 billionths of an ETH per unit, which for a normal transfer is roughly half a millicent at any reasonable ETH price. A gas spike to 300 gwei is the same arithmetic with a bigger small number. The chain is doing nothing exotic — it is just counting very small things very precisely, because that is the only way to make a global computer that handles real money do its arithmetic without ever rounding wrong.
Related Free Tools
Stay Informed
Get ecosystem updates
New tools, posts, and ecosystem news — no spam, unsubscribe anytime.