[Voting Period] Signaling Proposal: Add the Fee Abstraction Module to the Cosmos Hub

Signaling Proposal: Add the Fee Abstraction Module to the Cosmos Hub

Summary

This is a signaling proposal to add the Fee Abstraction Module to the Cosmos Hub. At a high level, the module will allow for transaction fees on the Cosmos Hub to be paid with any token by first swapping that token for ATOM on Osmosis. The function of the module will be outlined in more detail below.

The fee abstraction module was developed by the team at Notional, and funded by the Osmosis Grants Program, as a method of solving fee abstraction issues that currently plague the Cosmos Ecosystem and hinder adoption from external ecosystems. The module solves for this by allowing fees to be paid in any asset on chains that implement it without requiring that chain to change its accepted fee assets.

This proposal is merely a signaling proposal and will not result in any immediate changes to the Cosmos Hub if passed. The module will need to be added via a subsequent software upgrade requiring an independent vote. If this vote passes, the Notional team will assist the maintainers of the Cosmos Hub codebase with integration as needed and help solve any technical challenges that may be encountered in the process of adding the module.

The estimated on-chain date for this proposal, pending community discussion and amendments, is August 02, 2023

Changelog

  • July 22: Posted this proposal to the Cosmos Hub Forum
  • July 31: Changed on-chain date to August 02
  • Aug 01: Added a paragraph to “Impact and Benefits” detailing the benefit of this module to allow for onboarding of users to the Cosmos Hub from the upcoming Metamask integration.

Problem Statement

Thanks to Replicated Security, the Cosmos Hub is undergoing a period of rapid expansion. The Hub recently onboarded Neutron as the first ever consumer of its security, with Stride expected to onboard in a matter of days, and Duality to follow soon thereafter.

As these integrations grow, so too will the diversity of assets received by ATOM stakers grow (Stride alone will reward ATOM stakers with 10 different assets as staking rewards). In the short term, many of these rewards will be small, and will not be worth the ATOM gas fees required to transfer them back to their native chains via IBC. This is especially true for smaller delegators.

Rather than letting these assets sit unused in their wallets, what if ATOM stakers could use these assets to pay for gas fees instead of their ATOM? Further, what if these gas fees could be used to create a consistent supply of steady buy pressure on the ATOM token? This is where the fee abstraction module comes in.

How the Fee Abstraction Module Works

The fee abstraction module leverages interchain queries, packet forwarding middleware, and ibc hooks to periodically swap collected transaction fees to a chain’s native token using Osmosis. The frequency at which fees are swapped is parameterized. Using this feature, the Cosmos Hub can have its transaction fees paid in any asset that has a liquidity pool on Osmosis, and the asset will be swapped to ATOM to be used as a transaction fee.

The module operates on the following module flow:

  • Interchain Query to Osmosis to determine the exchange rate between the fee asset and ATOM
  • Collect fee assets from executed transactions
  • IBC transfer accrued fee assets to Osmosis
  • [If needed] Unwind IBC path to preserve fungibility
  • Swap to ATOM on Osmosis
  • IBC transfer back to the Hub for distribution to ATOM validators and delegators

Interchain Queries

On a regular basis, the module queries Osmosis TWAP data over IBC to determine the rate of exchange between a given fee asset and the chain’s native token (in this case, ATOM). Osmosis returns an acknowledgement via IBC with the rate of exchange to the module, which is then used to set the rate at which fees are collected in other assets to be swapped.

The frequency at which the module sends an interchain query message to Osmosis is governed by the update exchange rate period parameter. This parameter is governance mutable and by default is set to a frequency of 1 hour. This setting is recommended to limit the number of query messages being sent over IBC by the Hub as much as possible while still maintaining a high degree of reliability in the exchange rate.

Fee Collection, Transfer, Path Unwinding, and Swap

Transaction fees collected by the Hub in IBC assets are stored in the module at the time of collection, and are periodically sent to Osmosis over IBC. If the fee asset is native to the Osmosis chain (i.e., OSMO or ION), it will be swapped for ATOM immediately via Osmosis’s cross-chain swap contract and sent back to the Hub.

If the fee asset is an IBC denom that doesn’t have Osmosis as its origin chain, its IBC path will first be unwound to maintain fungibility with the corresponding IBC asset on Osmosis. For example, if a transaction on the Hub is paid in Stargaze’s native STARS token, the module would send the STARS token to Osmosis with instructions to unwind the tokens’ IBC path as follows:

  • Send the STARS to the Cosmos Hub
  • Send the STARS to Stargaze
  • Send the STARS to Osmosis

From there, the STARS will be swapped to ATOM as normal and returned to the Hub, where they will be distributed to ATOM stakers.

Fees are transferred and swapped every hour before being distributed. This feature is a governance-controlled parameter that can be adjusted depending on how many external fee assets are used to pay for transaction fees on the Hub. The more non-ATOM fees that are paid, the more frequently the hub should want to make this transfer.

Impact and Benefits

The principal benefit of this module is that it will allow for an increase of ATOM’s status as a canonical source of onboarding liquidity to the Cosmos ecosystem. With the influx of new Cosmos users that will accompany the upcoming metamask integration, users coming to Cosmos holding ETH, USDC, USDT, wBTC, or other high-volume bridge onramp assets will be able to easily use these assets to pay for transaction fees on the Cosmos Hub before they are able to get ATOM tokens. Fiat onramps like Kado could also allow for onboarding of liquidity directly to the Cosmos Hub in non-ATOM assets like USDC or ETH. It is important to have such an onboarding mechanism in place before the metamask integration goes live in order to make the onboarding UX as simple as possible for non-cosmos users.

This module also allows transaction fees on the Cosmos Hub to be paid in assets received by ATOM stakers via Interchain Security while also placing a consistent source of buy pressure on the ATOM token.

For example, ATOM stakers can begin to pay for transaction fees on the Hub in assets like NTRN, STRD, or even stATOM which will be paid to them via Interchain Security. This will not only obviate the need for ATOM stakers to use ATOM for transaction fees, but it will also cause a continuous source of buy pressure for the ATOM token on the Osmosis DEX.

Resources

Fee Abstraction Module github repo: GitHub - osmosis-labs/fee-abstraction

5 Likes

hey

this module enforce the use of osmosis as fees tokens’ exchange platform, right?

if so, i’m against this proposal.

it would be better the hub funds and integrates a similar module functioning with a consumer chain exchange, hi Duality, and eventually reap the flow rewards inside the AEZ rather than let them go.

3 Likes

Duality won’t support the same variety of assets that Osmosis does for a very long time, if ever, so that solution would result in much less buy pressure on ATOM.

Someone else would also have to build a brand new module from scratch since the fee abstraction module is only licensed for use with Osmosis. That might not be done for a very long time, if ever.

1 Like

Duality won’t support the same variety of assets that Osmosis does for a very long time, if ever

how do you know that?

That might not be done for a very long time, if ever.

in how many time Notional has developed this module?


it’s a good short term solution for the hub, some people are currently pushing for an UX improvement, and i suppose that’s why this proposal is coming now, but it would be a very very bad long term decision imho.

also i guess if Osmosis licensed the module that way it’s because it’s somehow a good revenue vehicule.

The module was licensed because Osmosis Grants (and thereby the Osmosis community pool) paid for the module’s development.

Since the Osmosis community paid for this, we were sensitive to having the community fund the use of the module in a way that doesn’t return some value to that community. The revenue potential of the module isn’t known yet, as it hasn’t been deployed anywhere.

If this is a good short-term UX solution, why not implement it? There’s nothing stopping the Hub from rolling their own solution and switching to that in the future. But why not implement it now and drive additional value to the ATOM token until such a solution has been put in place?

3 Likes

good point!

even if it would be so much easier and time/funds saving if the license was less restrictive.

i’m a naive idealist who thought we were all fighting for open software in here.

imagine if all the things Atom community have funded these past years were licensed that way, i guess there would exist a lot less chains in the Cosmos space.

2 Likes

invest in both osmosis and hub and accept this prop its a win win

3 Likes

My initial understanding was that this covers all IBC transactions. If it is for just the AEZ, then this is a strict ‘No’ from me.

The Hub can no longer remain neutral. It should support the DEX that brings highest value to $ATOM. In Hub’s case, that DEX is Duality.

Use community pool to develop this same functionality in the Hub to use Duality to do the token swap. Short term pain for long term gain. Else we will be permanently giving Osmosis an edge over Duality.

The hub should do everything in its power to give the consumer chains an edge over every other chain in Cosmos. That should be the value prop for joining the AEZ - join the hub and get its full backing.

5 Likes

Duality does not exist right now.

Osmosis does, has liquidity, a wide array of assets, and a working fee abstraction module.

If the Hub wants to, it can switch to a different module, once one exists

3 Likes

This would have to be a no from me. Abstracting away the ownership of ATOM within the AEZ? This is a presented as a meme of growth but offers little to the hub except allowing people to not own any ATOM. Lets wait for Duality or someone formally aligned. Credible neutrality is dead. Long live the hub.

Hey Ranger!

The plan here is definitely not to abstract ownership of ATOM away within the AEZ. What this module does is quite the opposite.

It ensures that fees can be paid in any asset on the Hub, but at the same time does so in a way that ensures it gives ATOM an increased value proposition by having all non-ATOM fees be swapped to ATOM. This actually puts additional buy pressure onto the ATOM token without taking any existing value away from the Cosmos Hub which is pretty neat!

There may be a future in which we would want to have those swaps occur on Duality instead, after they build their dex and a similar module, and I’m very supportive of that! But this module would put buy pressure on ATOM as soon as it gets implemented without the need to wait. Given that the Hub could very easily switch to Duality for such swaps later on once it has grown, I don’t see the downside of implementing this module until that time.

read this idea

Osmosis is THE DEX currently, obviously. at a point it’s fair to wonder why this restrictive licensing even exists.

anyway

has someone made some projections/expectations/stats about the swap fees revenues this module on the hub could generate for Osmosis?

I don’t perceive any issues in aligning with osmosis initially for a specific duration. In the future, the hub could potentially utilise fee abstraction to facilitate more advantageous terms with a consumer chain.

3 Likes

Credible neutrality never existed, but I think that’s another conversation another time.

I don’t see this as being about being credibly neutral but instead about solving a very real UX issue, without any friction.

1 Like

liquidity lives on a gradient, and for let’s say at least the next year, I believe that there’s going to need to be a blend, and by the way that blend may exist forever.

I also believe that osmosis brings enormous talent and creativity. Furthermore, the hub team brings enormous talent and creativity.

Therefore, it’s my belief that it’s really not that hard to use the reality of the liquidity gradient, in some places swaps are better, due to the presence or lack of liquidity, or the existence were not existence of a pool.

We probably shouldn’t look at this as something that is either osmosis or duality or astroport, forever. We should probably look at this as a really really great way to start dealing with the tough UX issue of ‘oh my God I don’t have XYZ asset to pay the fee.’

Oh that’s really quite simple, osmosis invested in the development of this module.

I do think it’s quite sensible to negotiate.

1 Like

Seems ok in principle to me.

I also don’t have a problem using Osmosis if there is no consumer chain DEX by the time this makes it onto the Hub, but I will say that we should strongly prefer a consumer chain DEX once there is one, even if it is small and has lower volume than Osmosis. Due to the application (using dust for TX fees), slippage will not be as big of a deal, and helping bootstrap a consumer chain DEX will be better for ATOM than getting slightly better deals on tiny TX fees.

7 Likes

does that mean since the hub’s community invested heavily in Notional, Notional should be licensed in a way they work only for the hub?
(kidding. kind of.)

Agree re: vertical pool depth, but I think the concern is more in diversity of assets (i.e., horizontal depth). There will certainly be a fair number of assets supported by Osmosis that won’t be supported by a consumer chain dex in significant depth, especially at the outset of that consumer dex’s lifecycle.

Maybe a mid-long term solution is to have the module allow for both, have a preference for the consumer dex and default to Osmosis for other unsupported assets :man_shrugging:

Though this would have to be something that could be negotiated down the line between the relevant communities.

1 Like

Im struggling to see any benefit to adding this to the hub when the only thing to do on the hub is stake ATOM. You cant stake ATOM without ATOM.

This removes ATOM as the currency you keep your on chain value in, and turns it into to keep on an as needed basis. Transaction fees are minimal across Cosmos. If people cant keep 1 ATOM. NGMI