Fee Abstraction
Fee abstraction lets you pay transaction fees in tokens other than the chain's native token. On Osmosis you can pay gas in many of the assets listed on the exchange, not just OSMO, so you do not have to hold a separate balance of the native token just to transact.
Why it matters
Normally every chain requires its own native token to pay for gas. That is friction: a user who holds only USDC has to go acquire OSMO before they can do anything. Fee abstraction removes that step. You hold the asset you actually use, and the network accepts it for fees, converting it behind the scenes.
How it works conceptually
A governance-managed allowlist defines which tokens are accepted for fees. When you pay a fee in an accepted non-OSMO token, the network values it against OSMO using an onchain price and accepts the equivalent amount. The collected non-OSMO fees are periodically swapped back to the native token, so validators and stakers are still ultimately paid in OSMO.
The same primitive also lets other Cosmos chains accept their users' fees in IBC tokens and settle them through Osmosis liquidity, using Osmosis as the conversion venue. To pay a fee in an alternative token, set your gas price in that token's denom; see Fees and Gas for the integrator detail.
Reference
This page covers two distinct implementations, one for each side of the picture:
- Paying fees on Osmosis in non-OSMO tokens is implemented by Osmosis's own
txfeesmodule, which maintains the whitelist of accepted fee tokens and values fees at their OSMO equivalent. See the txfees module page for those mechanics. - Other chains accepting fees in IBC tokens adopt the fee-abstraction module, which keeps exchange rates updated over interchain queries and settles the collected fees cross-chain through Osmosis liquidity. See the fee-abstraction repository for the module mechanics and deployment.