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.
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.
- 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.
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.