Community Feedback: Cosmos deposit/withdrawals UX could be improved

On behalf of the PRO Delegators’ community, we’d like to share the feedback we’ve gathered regarding the dYdX chain deposit/withdraw mechanisms within the Cosmos Ecosystem.

Many users have expressed difficulties in onboarding from the Cosmos side compared to the remarkably straightforward process on Ethereum (kudos for that, by the way). The decision to implement sub-accounts in the dYdX chain has indeed brought significant advantages in terms of account abstraction and user experience (UX), allowing Ethereum users to interact with the Cosmos infrastructure seamlessly. This design choice was crucial for smoothly transitioning the existing user base without encountering hurdles.

However, by achieving total abstraction on the user interface, some design choices may feel unnatural for regular Cosmos users, and there’s room for improvement in that regard.


Let’s illustrate with a practical example:
When a user intends to deposit funds into their trading account, they would naturally click the “Deposit” button in the top right corner. This opens a pop-up box offering different deposit sources:

Here’s where confusion arises for a Cosmos user, as they scroll through the list of available EVM chains without finding a way to deposit from Cosmos chains. The same issue applies to withdrawals.

To deposit from Cosmos, users must undergo a more complex process. The typical first step for a trained Cosmos user would be to send USDC to their Keplr’s dYdX chain account. However, upon sending USDC via an IBC transaction, they may find that nothing appears in the dYdX front end, as the UI displays funds on a sub-account abstracted from the EVM address. To deposit, users must then locate their dedicated sub-account’s “dydx1…” address and perform a send transfer.

The primary area of uncertainty for these users is “why do I have to send funds to another wallet?” Those using hardware wallets may feel even more uncomfortable depositing funds outside of their secure enclave.

This confusion stems from the usage of sub-accounts, a feature unfamiliar to most Cosmos users, as dYdX is currently the only chain in the Cosmos utilizing this feature…

Our suggestions:

To streamline the UX for Cosmonauts, we recommend including Cosmos Deposits directly within the “deposit” box alongside other EVM chains. Users would select the chain they want to deposit from, and the frontend would scaffold the transaction, prompting them to connect their Cosmos wallet to complete the transaction. It might also be beneficial to implement a smart tooltip for first-time users, explaining the use of sub-accounts to familiarize them with this feature.

Additionally, we suggest incorporating a similar process for withdrawals, adding Cosmos among the options in the drop-down list. Selecting a Cosmos withdrawal would open the existing transfer function dialog:

Improvements to this dialog could involve automatically fetching the user’s dydx1… address directly from the connected wallet or prompting them to connect it. These are interfaces familiar to Cosmos users.


We believe that considering these small design changes would significantly enhance adoption among native Cosmos users, based on the feedback we’ve received from our community members. We’re also eager to hear if dYdX community members have alternative solutions to suggest, as we aim to collaborate and find the best possible solution together.

Thank you for reading!


Sounds like a very good idea.

UX is something which is generally undervalued imo. When a platform is very intuitive to use… then the chance of becoming a big success is higher. How the Cosmos works is a big plus for projects themselves, but it is difficult for new users. Any method to make it less abstract is way better.

1 Like

love how Pro Delegators take initiatives and provide valuable feedback to improve the protocol, not too many validators do, it’s why I’m staking with you guys


Very good initiative and worth implementing.
Personally, I have to send my funds to my Atom address, convert it to usdc in osmosis dex (because kepler does not recognize the usdc that I can send in dydx) and then send them to my dydx address