Alloyed Asset: USDT

This proposal is linked to the blog post posted earlier this week. It will be posted onchain after v3 of Transmuter is live and the Alloyed Asset has been created.


This proposal recognizes the first Alloyed Asset, based on the allUSDT Transmuter pool [To be Established], as the canonical version of USDT on Osmosis and transfers the Admin role for the asset to Osmosis governance.

Alloyed Assets comprise multiple underlying bridged assets within a tokenized CosmWasm Transmuter pool type and aim to provide a superior cross-chain experience to users while optimizing the capital efficiency of liquidity required for asset composability and minimizing the risk of exposure to a variety of bridges.

The Composability Problem

Bridge connections each provide a wide range of assets. Some will be unique, but others will result in several varieties of the same asset. This requires maintaining composability pools between each overlapping asset for user liquidity flow to be possible from all entry points. Each requires liquidity and incentives to maintain liquidity before trading volume can occur organically on potentially infrequently used routes.

Osmosis currently has three versions of Tether USD (USDT) in regular use:

  • USDT.axl arrives via the Axelar bridge from Ethereum. This version of USDT was the original canonical version recognized by governance in Proposal 205. It remains in use across other Cosmos chains, and a sizable liquidity pool is incentivized to ensure that liquidity can still be transferred through Osmosis without issue.
  • The currently dominant USDT in use on Osmosis is the Cosmos native version of USDT, issued on Kava EVM, and recognized as the canonical version of USDT on Osmosis in Proposal 574.
  • Wormhole also brings USDT.wh from Ethereum. While Wormhole was recognized as a canonical bridge for Osmosis in Proposal 582, the Cosmo native version of USDT from Kava has remained incentivized. This version currently only exists as a small liquidity pool to prevent users from being stranded on the Osmosis side of the bridge.

With Osmosis’ goal of being the interchain DeFi hub, the ideal user experience is to allow any asset to be deposited by any method while keeping the interface simple for users by abstracting away bridge affixes and making the assets arriving on Osmosis fully composable.

Previous measures to allow this had been put in place in Proposal 444, which enabled the formation of incentivized Composability pools to ensure that users arriving with USDC over the Axelar bridge from Polygon, Avalanche, or Ethereum; or the Gravity Bridge from Ethereum could access the primary USDC liquidity in use in the Cosmos.

This measure could have been more optimal as it required renting liquidity from liquidity providers, and the sustainable liquidity level needed to provide suitably low slippage for these users was not reached. Users were also charged a small swap fee to get the canonical version of the assets. Composability pools have since moved to using Supercharged Liquidity pools, making these more efficient, but they still rely on incentives or altruistic liquidity providers to maintain liquidity for each pairing.

Transmuter Pools

Transmuter pools were introduced in Proposal 600 to allow free trade between two assets. However, these require active management by altruistic participants to ensure that one side does not become exhausted. This pool has primarily been used to simplify the migration between two variant assets when a more native version was available.

Version 2 (V2) of Transmuter was launched in Proposal 659 and introduced the tokenization of these pools, allowing them to be used as representative tokens for the pool’s contents. V2 also introduced multiple protective measures to ensure that the proportion of assets in the pool would not become overly imbalanced and that any security issue with any of the underlying assets did not propagate through to the loss of the other assets in the pool.

Version 3 (V3) of Transmuter is currently undergoing audit and brings with it two new features:
A scaling factor that accounts for when multiple tokens that represent the same pre-bridge token at different levels of accuracy within the alloy is now available. The ability for governance to add and remove tokens from an Alloyed asset without creating a new token and requiring migration is also implemented. This proposal will go on-chain after V3 has been uploaded.

User Flow

The full launch of Alloyed Assets using V3 of the Transmuter Contract will allow users to deposit any constituent of an Alloyed Asset to Osmosis and receive a token backed by their deposit that is usable all throughout the Osmosis ecosystem. This results in a user flow similar to major CEXs, which accept deposits from multiple chains and increase a user’s balance, but with an entirely decentralized, on-chain mechanism.

The intended user flow will be that when depositing or withdrawing to Osmosis, a regular user will only see that they are interacting with USDT and be provided a choice of bridging options to withdraw or deposit via, with the cheapest or more unrestricted one offered first. On initiating a transaction, IBC hooks are used in order to transfer the asset along the selected bridge and join or exit the Transmuter pool.

As this flow will be frontend only, advanced users, or those interacting with frontends that have not integrated the IBC hooks will be able to retain the un-alloyed asset on Osmosis.
From there a swap would route through the Transmuter pool as usual, not stranding these users if they do arrive on Osmosis via a frontend without this full integration.

Tokenization of Transmuter pools as Alloyed Assets

Transmuter pool shares are represented by a minted factory token. This allows them to be used in all Osmosis applications in the same way as any other token.

As native Osmosis tokens, the representative token may be IBC transferred to another chain, allowing these to be used by other interchain DeFi applications if desired.

While this represents a proliferation of standards by creating another derivative of USDT, this deposit and withdrawal flow intends to solve the composability problem on Osmosis.

Other chains may implement a similar system, causing assets to exit the alloy, cross a bridge, and then enter a similar grouping on the destination chain.

They are also able to use Osmosis’ solution by automatically transferring bridged assets to Osmosis, entering the transmuter pool, and returning the alloyed asset, allUSDT, to the originally intended chain. This is similar to the IBC unwinding mechanism that chains currently use when transferring an asset between two chains, neither of which is the original source of the asset.

Security

The Transmuter pool has built-in rate limitation settings, which can prevent the ratio of tokens from changing excessively in a set period. These rate limits minimize any issue with one constituent from draining the liquidity of the paired assets in the alloy.

There are two types of limiters in place.

  • Change Limiter determines the maximum percentage of an asset permitted to enter the pools based on the moving average of the asset’s relative weighting over a specified period.
  • Static Limiter determines the maximum percentage of the pool allowed to be a specific asset, preventing extreme imbalance from occurring and minimizing the exposure of the Alloyed Asset to a particular constituent.

Example: The allUSDT pool is composed of 50% USDT.Bridge1 and 50% USDT.Bridge2.

USDT.Bridge1 is compromised, and the respective token supply on Osmosis suddenly increases.

The allUSDT pool has a Change Limiter in place of 10%/Day, 30%/Week, and a Static Limiter in place of 0.6.

On Day 1, the Change Limiter is hit, freezing the imbalance at 0.55 USDT.Bridge1 and 0.45 USDT.Bridge2.

On Day 2, the Change Limiter would trigger at 0.605. However, the Static Limiter caps the imbalance at 0.6, effectively freezing the pool even if the Moderator or Admin has not yet acted.

These limiters limit the amount of compromised USDT.Bridge1 that can be disposed of on Osmosis, allowing the cause of the issue and a path to resolution to become more apparent through recovering or resupplying the underlying funds.

Admin Role

The Admin Role can perform the following tasks:

Delegate Set Active Status This allows the Admin to delegate a Moderator address to disable the underlying Transmuter pool of the Alloyed Asset temporarily in an emergency. Disabling will freeze the pool’s contents, as no internal messages can be run apart from enabling the Active Status again. This delegation allows either the wider Osmosis DAO or a large subDAO to handle Metadata and Limiter settings while retaining rapid response by a smaller subDAO in an emergency.

Set Alloyed Metadata This allows the on-chain metadata for how the Alloyed Asset is displayed to be adjusted, such as the displayed denomination, description, and symbol.

Manage Limiters This allows the limiters above to be created, removed, or modified. These must be set appropriately so that normal trading is not impacted and a security issue in any of the constituent assets is minimized.

Add New Assets Added in V3; this allows the admin to add a new constituent asset to a pool, which can then be used as an underlying token for the Alloyed Asset. Further administrative action can then be taken to add any limiters. This allows the Alloyed Asset to grow as more bridges become available without fragmenting liquidity by having multiple Alloyed Assets for the same token in circulation.

This proposal claims the Admin role for the [USDT Alloyed Asset](TO BE ESTABLISHED) for Osmosis Governance.

Moderator Role

Set Active Status

In an emergency, the Moderator can temporarily disable the underlying pool of the Alloyed Asset. This allows time for any information about an incident to become available and a path forward to be decided without exposing the Alloyed Asset to losses beyond those incurred by the backing at the time of the freeze.

Mark Corrupted Assets

By marking an asset as corrupted, the Moderator signals that it should be removed from the Alloyed Asset. No new deposits will be allowed, but withdrawals are allowed. This will allow the Alloyed Asset to restore its peg, particularly when paired with any intervention approved by governance, such as Insurance, which can deposit an uncorrupted asset and withdraw the corrupted component

The Moderator for the USDT pool is:

To be established as a 3 of 5 subDAO, composed of rapid responders, validators and/or bridge providers.

Specification of allUSDT

Admin: Osmosis DAO

Moderator: To Be Established

Denomination: allUSDT

Description: uallusdt

Symbol: allUSDT

Assets: USDT.axl, kava.USDT, USDT.wh

Normalization Factors: 1,1,1

Static Rate Limits: None at launch to enable bootstrapping, to be activated by governance proposal once liquidity is established.

Change Rate Limits: None at launch to enable bootstrapping, to be activated by governance proposal once liquidity is established.

Canonical Status

Canonical status sets the following agreement:

Default Asset List – assets will be affixed and unmarked in the app.osmosis.zone default asset list, e.g., USDT, with all other bridges’ assets being USDT.bridge1, USDT.bridge2, etc. Osmosis DAO requests that allied/friendly frontends do the same, though any frontend is free to make its own decisions.

Osmosis Incentives – Osmosis DAO commits to prioritizing the canonical bridge assets, incentivizing them earlier and more heavily than the comparable assets of non-canonical bridges. In general, canonical pools should earn substantially more incentives than their counterpart pools.

This proposal would create new Volume Splitting Groups based on those currently in use with kava.USDT swapped out for allUSDT and signal incentives to move to these groupings at the next proposal that adjusts incentives.

8 Likes

Hype level on this, over 9000

1 Like

Another huge win for usability and beginner-friendliness. Right now this is great, but as new sources from various chains arrives this will be indispensable

1 Like

I have nothing to say about this other than

yes, emphatically yes

I’ve said this on other places, but this is the phase of the Transmuter contract I have been looking forwards to for a long long time.

Having different versions of the same asset is confusing for the average person, having 1 alloyed type is better. Especially if automatically all assets are alloyed ones, except when someone really really wants to have a specific one. But the default should be that everyone gets the alloyed version.

And the fact that these can also be IBC’d out towards other chains makes it even more useful. Standardized assets throughout the ecosystem is a massive win.