What catches me about Dusk's transfer contract isn't the transfer — it's that the same infrastructure prices the work a transaction causes. Fees aren't a flat toll bolted onto execution; they're gas_used times gas_price, paid in DUSK, priced in LUX. Even a reverted transaction still pays for gas it burned — cost tracks work attempted, not completed.

I think that's the right call: treat computation as free and you invite congestion. Dusk even filters underfunded transactions via a minimum gas limit before they touch node resources, rather than letting them fail mid-execution.

Here's the tension, as I see it: the more expressive a transaction gets, the harder its cost is to predict — and predictability is what makes a fee model legible to a non-technical user.

What I keep noticing is that Dusk already lets contracts absorb gas on a user's behalf. That doesn't resolve the tension, it just relocates it, from wallet to app.
$DUSK @Dusk #dusk
$BMT
$STAR