really like that width is earned from finalized gas and burned irreversibly, it sidesteps the stake and reputation traps at once.
the thing i keep circling on is that the charge is flat across every additional tx, while the work it actually prices, the cheap repeated invalidation loop, only shows up when the validation prefix reads shared live-contended state. if a prefix only touches single-writer state, its own nullifier, or a value bound to a recent root (8272, which you already fold into admission_gas), one onchain write can’t take down the pending set: a recent-root read is stale-acceptable by construction, and a nullifier is self-scoped, so falsifying it only drops that one spend, not its neighbours. those txs structurally can’t be in the mass-invalidation set, yet they still pay full width.
we wrote up the dimension behind this here (Order-dependence as the classifying dimension for frame-transaction mempool admission): the ruler for admission is order-dependence / contention, not the volume of state a check reads, and the recent-root tier is exactly the stale-acceptable middle class. it lines up with your VOPS-eligibility split, class 0 there is the same single-writer case.
so the question is whether width could be indexed by that: full charge when the prefix reads shared live-contended state, waived or reduced when it’s provably single-writer or recent-root-bound. that would also take the edge off cold-start for an honest pool that binds spends to a recent root, which is the natural design anyway.
the obvious counter is admission cost: can a client decide cheaply that a prefix reads no shared contended state without running it? if not, flat charging is the pragmatic call. and exempting those txs leans their capacity protection on FOCIL plus the fee ramp instead of width, which may be fine but is a real shift. curious if you already looked at contention-indexed width and ruled it out on the classification cost.