← All writing
Web3·Oct 14, 2026·5 min read

Gas is a UX problem before it is a technical one

Users do not care what gas is. They care that a button asked them for money they did not expect.

H

Hammad Iqbal

Software Engineer

On a blockchain every state change costs a fee, paid by whoever sends the transaction. To a developer that is a resource model. To a first-time user it is a surprise charge on top of the amount they meant to pay. Handling it well is mostly a design job.

In brief
  • Show the expected fee before the wallet pop-up, not only inside it.
  • Fewer, smaller writes cost less, so design the contract around the transactions users really need.
  • Some work belongs off-chain entirely.

Surprises are the real cost

A fee of a few cents is fine when it is expected and a dealbreaker when it appears from nowhere. Tell users up front that a step involves a network fee, and show an estimate before the wallet asks for confirmation.

Design the contract to spend less

Storage is the expensive part. Every extra slot you write is a fee your users pay forever.

  • Store only what must be on-chain; keep descriptions and images off-chain
  • Avoid loops over unbounded lists
  • Batch actions when several steps belong together

Not everything needs a transaction

Reading state is free. Sorting, searching, and displaying can all happen off-chain from public data. Reserve transactions for the moments that truly need trustless agreement, such as moving money.

Takeaway

Make fees visible and predictable, and keep the contract small enough that users only pay for what matters.

Have a project this kind of thinking applies to?

Tell me what you're building — I read every message myself.

Available for new projects

4+

Years exp.

8+

Projects shipped

<6h

Avg. reply time

Let's build something

Tell me about your project.

Share what you're building, your timeline, and the best way to reach you.