Allow Mirror assets to be tradable on Terra Station

Recently, Terrawap was added as an option to the “Swap” page of Terra Station - the initial motivation of this change was 1) give users access to the lowest swap rate possible (Terraswap will be used over layer 1 swaps should it offer superior rates, and 2) make sure swaps converting stablecoin staking rewards to Luna does not result in net supply increase for Luna.

But there is another advantage of integrating with Terraswap: Station users can now gain access to CW-20 asset pairs on Terraswap. For now, that’s MIR and mAssets.

Why not make those available on station as well?

4 Likes

No opposition for this feature ! It mainly removes friction for LUNA stakers using Terra Station, so surely increasing user experience and stickiness. And no negative effect to balance it.

1 Like

This sounds great-making Station more useful is always good.

I’ve asked Sim to implement this- should take a few days.

Great idea - looking forward to it

Let’s go! Makes perfect sense

Notice the swap page now supports mAssets - but they are only tradable against UST.

Really, Terraswap should support a “router” functionality similar to one in uniswap where any asset listed on Terraswap should be swappable for any other asset listed on Terraswap regardless of whether there is a direct pair between the two.

AS-IS

There exists Luna <> UST, UST <> mTSLA and UST <>mAAPL pairs.

Luna <> mTSLA and mAPPL <> mTSLA are not swappable on Terraswap.

TO-BE

There exists Luna <> UST, UST <> mTSLA and UST <>mAAPL pairs.

Luna <> mTSLA and mAPPL <> mTSLA ARE swappable on Terraswap.

For all swap requests, the router contract searches for the cheapest swap path between the origin asset and the destination asset to execute the trade.

This change would require an update to the Terraswap codebase.

1 Like

It seems like this scheme could be done without necessarily requiring a change to Terraswap codebase – you could figure out the swap-path on the client side and create a transaction that chains multiple MsgExecuteMsg swap invocations in a single transaction.