# ETH Transaction Fees by Action: Transfer, Swap, Bridge

> ETH transaction fee for each action: what sending ETH, a USDC or ERC-20 transfer, a swap and a bridge to a layer 2 cost now in gas, ETH and USD on Ethereum.

Markdown copy of https://voltfincrypto.com/apps/eth-transaction-fee-by-action

**Question:** How much does it cost right now to send ETH, send a token, swap or bridge on Ethereum?

- Kind: Table in Voltfin Strata
- Topic: [Ethereum](https://voltfincrypto.com/topics/ethereum)
- Chains: Ethereum
- Status: Planned. The data is not published yet, so this page states no figure; each figure will open its receipt when it is.

The fee for an Ethereum transaction is the gas it uses times the price per gas: the block's base fee plus a tip. The price is the same for everyone in a block, but the gas differs by action, so sending ETH costs far less than a swap or a bridge deposit. This table measures the gas each common action actually used over the last 24 hours and prices it at the latest block.

Find your action and read its cost in ETH and USD, then check the sample behind it: the median gas comes from real transactions calling that contract and function, not from an estimate. Costs move with the base fee block by block; to see when they are usually lowest, open the gas-by-hour dashboard.

## Blueprint

One row: One row per common action, priced at the latest block from the last 24 hours of transactions

- **Action** (`action`): The action in plain words, such as send ETH, send USDC, approve a token, swap on Uniswap or bridge ETH to a layer 2.
- **Category** (`category`): Transfer, approval, swap or bridge, to filter the table by kind of action.
- **Contract** (`contract`): The contract the action calls, with its label, or none for a plain ETH transfer.
- **Function** (`function`): The function name and four-byte selector that identify the action, such as transfer (0xa9059cbb).
- **Median gas** (`median_gas`, gas): Median gas_used of successful transactions making this call over the last 24 hours.
- **Gas, 90th percentile** (`p90_gas`, gas): Gas used at the 90th percentile of the sample, for heavier calls such as multi-hop swaps.
- **Cost in ETH** (`cost_eth`, ETH): Median gas times the latest base fee plus the median tip of recent blocks.
- **Cost in USD** (`cost_usd`, USD): The ETH cost converted with the Chainlink ETH/USD feed read at the same block.
- **Sample** (`sample_size`, transactions): How many transactions over the last 24 hours the median was taken from.
- **Block** (`priced_at_block`): The block whose base fee and oracle price priced the row.
- **Receipt** (`receipt`): The block, the sample query and the oracle read behind the row.

## How it will be measured

- Gas per action is the median gas_used over the last 24 hours of successful transactions that call a given contract and function selector, such as transfer (0xa9059cbb) on a token or execute (0x3593564c) on the Uniswap Universal Router.
- A plain ETH transfer uses the fixed intrinsic gas of a transaction with no data, so its row is exact rather than a median.
- Cost is gas times the latest block's base fee plus the median priority fee of recent blocks, converted to USD with the Chainlink ETH/USD feed read at the same block.
- Bridge rows measure deposits into canonical bridges, such as depositTransaction on an OptimismPortal and bridgeETHTo on an L1StandardBridge, and count only the Ethereum side of the cost.
- Every row names its sample size and the block it was priced at, with the reads behind it as its receipt.

## Data it needs

- `gas_blocks` (to build): Base fee, priority fee percentiles, gas used and gas limit for each block on fee-market chains, for a near-live gas tracker.
- `native_prices_daily` (to build): Reference prices of major assets read from on-chain oracle feeds (Chainlink latestRoundData) at each day's last block, with each round's update time.
- `token_transfers_daily` (to build): ERC-20 and native transfer counts, volume and unique senders and receivers per token per chain per day.
- `dex_swaps_daily` (to build): Swap counts and volume per DEX, pool and chain per day, decoded from Swap events, valued with stablecoin legs and oracle prices.
- `bridge_flows_daily` (to build): Deposits into and withdrawals out of canonical and major third-party bridges by chain, token and day, plus escrow balances at day end.
- Source: Successful transactions of the last 24 hours grouped by to-address and function selector, with gas_used from their receipts
- Source: Token transfer (0xa9059cbb) and approve (0x095ea7b3) calls on major ERC-20 tokens such as USDC and USDT
- Source: Uniswap Universal Router execute (0x3593564c) calls, for swaps
- Source: OptimismPortal depositTransaction and L1StandardBridge bridgeETHTo calls, for bridge deposits
- Source: Latest block header base_fee_per_gas and eth_feeHistory priority fee percentiles
- Source: Chainlink ETH/USD latestRoundData() at the same block

## Questions

### How much does it cost to send ETH?

A plain ETH transfer uses a fixed amount of gas, the smallest of any transaction, so its cost is that gas times the base fee and tip of the block it lands in. The table prices it at the latest block in ETH and USD; the cost moves block by block with the base fee.

### Why does sending a token cost more than sending ETH?

A token transfer calls the token's contract, which reads and writes two balances in storage and emits an event. Storage writes are among the most expensive operations in gas, so a token transfer uses roughly two to three times the gas of a plain ETH transfer, and more if the recipient held none of the token before.

### Why does a swap cost so much gas?

A swap goes through a router that pulls tokens, updates one or more pools and pays out the result, touching several contracts and storage slots. Routes through several pools use more gas. The table shows the median for each router function, so the figure reflects the swaps people actually made.

### Does the fee include the layer 2 side of a bridge?

No. A bridge row shows what the Ethereum transaction costs. The layer 2 then credits the funds, and some bridges charge their own fee on top; the layer 2 fee pages cover costs on the other side.

### What is the priority fee in these costs?

It is the tip paid to the block proposer on top of the base fee. The table uses the median tip of recent blocks; a higher tip can get a transaction included sooner when blocks are full, and a lower one may wait.

## Glossary

- **Gas**: The unit that measures the computation and storage a transaction uses. The fee is gas used times the price per gas.
- **Function selector**: The first four bytes of a contract call's data, which name the function being called, such as transfer or approve.
- **Intrinsic gas**: The fixed gas every transaction pays before execution, plus a charge for its data; a plain ETH transfer pays only this.

## Related apps

- [Ethereum Gas Tracker](https://voltfincrypto.com/apps/ethereum-gas-tracker)
- [When Is ETH Gas Lowest? Gas Price by Hour and Day](https://voltfincrypto.com/apps/eth-gas-price-by-hour)
- [Ethereum L2 Fees Compared: Cost per Transaction](https://voltfincrypto.com/apps/ethereum-l2-fees)
- [Cheapest Blockchain Fees: Median Cost per Transaction](https://voltfincrypto.com/apps/cheapest-blockchain-fees)
- [ETH Supply Tracker: Burn vs Issuance](https://voltfincrypto.com/apps/eth-supply-burn-vs-issuance)
- [Ethereum Validator Queue: Entry and Exit Wait Times](https://voltfincrypto.com/apps/ethereum-validator-queue)

Build it in Voltfin Studio: https://app.voltfincrypto.com/signup?next=%2F
