MetaMask support

Currently Vega requires users to use Vegaā€™s native wallet - either via download to local device or in future via Vega browser wallet. However, Vega currently does not support Metamask.

However, Metamask currently owns majority share of all on-chain users. Also larger wallets who trade onchain via MPC software like Fireblocks, Copper do this via metamask extension. So, in order for Vega to compete for sizable market share of on-chain trading, supporting existing user base and traders via wallets they use currently is probably very key.

Otherwise, there will remain an initial switching (cost) to using Vega for some users. Moreover, MPC users (like institutions on Fireblocks) wonā€™t be able to access Vega at all because Vega wallet doesnā€™t support them - this cohort faces even more hurdles to switching wallets than retail metamask users.

These all currently represent hurdles for Vega adoption at scale. Vega should want to compete for large market share of onchain trading and so supporting metamask is a key issue.

DYDX V4 testnet launched publicly today, and it seems theyā€™ve build native support for Metamask as a Cosmos chain. So this integration does seem technically possible.

Adding this to forum for community to discussā€¦

4 Likes

Hi @Phoenix thanks for your thoughtful comment. All very good points - itā€™s certainly [still!] the case that Ethereum and Metamask rule the installed base of wallets and overall amount of assets.

Very happy we got it right with the bridge focus in Vega being on a great bridge/deposit experience from Ethereum for ERC20s. Also totally agree that getting Metamask support would be super helpful in terms of the existing installed base of wallets out there.

With the caveat that the V4 testnet is very newā€¦

dYdX V4 asks you to sign a couple of messages (not transactions!) using an Ethereum (Goerli testnet) wallet in e.g. Metamask. It uses this to ā€œlog you inā€. The thing they are definitely not doing here is using Metamask as a normal Cosmos wallet.

We think it is doing something like signing a message and using that as a seed to generate the dYdX/Cosmos keypair within the dapp itself. Then the dapp is signing your transactions for you. This means a malicious dapp that you sign with gets your private key and all your funds.

There are some other downsides. Your balances and transactions on dYdX will not show up in Metamask unless Metamask build some custom integrations.

I think that people who trade a lot will probably prefer a dedicated wallet extension at least until more complete support exists in Metamask, but itā€™s absolutely true that some MPC wallets will be stuck with Eth signing as the only option and users who have Metamask could have a much easier onboarding to try Vega out if it was supported, which are big reasons to consider doing something like this for Vega.

If youā€™re doing any size Iā€™d still totally recommend using a much more secure ā€œrealā€ wallet, honestly. the insecurity of it terrifies me!

Despite the downsides it gives them two big benefits:

  1. Metamask (and most/all other Eth wallet) support without a custom integration or waiting for Snaps to hit the production release of Metamask.

  2. Not having to approve transactions every time for order submission and management.

FYI dYdX are not the first to do something like this. Itā€™s become something of a pattern (Hyperliquid do something very similar, for example) and variants on this, including a more secure temporary session key that doesnā€™t give the less secure context the ability to transfer or withdraw your funds, are something weā€™ve looked at too.

We are certainly looking at whether to add something like this to enable people to Vega out more easily, despite the security concerns. (In fact you could even do it without needing Metamask - just make a wallet in the browser from a random seed ā€” though the Metamask signing gives you recoverability which is nice I guess).

Whether we do try out something like this is to early to say, but either way weā€™ll be looking very closely at adoption and feedback when the browser wallet launches as well as how much work it would be, and will see about when/if we might be able to squeeze in something like this.

[Edited to update with latest from our teamā€™s investigations]

Thanks for super detailed response @barney!

It seems like the dydx approach still enable users to deposit directly from metamask and use the exchange without having to assume responsibility for managing additional private key.

This is where I think most of the friction is for adopting a new wallet - esp for MPC users, who really canā€™t do this as it requires entirely new configuration of their already-established signature scheme.

The DYDX approach is essentially like depositing into a CEX but without ability to withdraw to any other wallet except for address that initially made deposit.

Given the timeline on snaps availability to enable full control, and the barriers that adopting net new private key / wallet combo that Vega wallet (browser or local download) still represent to current metamask and MPC user base, perhaps an iterative approach (starting with DYDX approach) could be considered by Vega devs ?

Totally see that current roadmap is flush with great upcoming features. Curious how these are being prioritized - any insight you can offer? e.g. is scale of distribution being incorporated into expected impact these developments will have?

Also surprised to hear your feedback re: dydx security implications. Lot of their users are MPC based, no?

{editing to keep up with prior edits per your mention above :slight_smile: }

True but also lets not forget that many of the really big traders are using algos etc. and they canā€™t use these Metamask or browser wallet tricks. They are going to want RPC API support for their MPC wallets and/or HSM (Hardware Security Module) support in the command line wallet.

Metamask isnā€™t a panacea for serious traders. Itā€™s probably more of friction reducer for new user onboarding.

ah ok yeah that makes lot of sense, thanks for clarifying

1 Like

Interesting, if thatā€™s the case that you can only withdraw to where you deposited from on dYdX? I hadnā€™t seen that.

Itā€™s being considered right now. No promises, but is an option :wink:

believe thatā€™s the case for v3 in so much as withdraw requires ETH l1 signature, so is controlled by that wallet still

Yeah, their Ethereum wallets are MPC based but if they use those nice secure Ethereum wallets to gnerate a private key inside the browser then that private key can be acquired by anyone who can get them to sign the same message from another dapp.

That is, the dYdX (Cosmos) wallet will not benefit from MPC.

1 Like

We see our goal at this point as making the maximum number of potential use cases of the Vega software possible (sorted by popularity of those use cases) in the shortest time period.

Some of the priorities are technical but enable cool things, for example Ethereum oracle bridge will let you propose markets using any data on Ethereum as the oracle, which means itā€™ll be trivial to create markets for almost anything.

Others are more product features/new products, like: most people who trade derivs in crypto like perps, so lets build perps.

And others are UX focused such as browser wallet and this Metamask stuff if it happens.

But we take on board user feedback like this, user research, team availability and skills, dependencies, etc. when deciding and re-evaluate and move things around regularly to try and always be writing code that is going to be useful to people.

Vega without the community that runs the network, stakes and votes, proposes the markets, supplies the liquidity, and uses the protocol would just be a GitHub repo, so weā€™re always listening!

1 Like

Interesting to see if V4 lets you sign a withdrawal to any Eth address. No technical reason it couldnā€™t but I know nothing about their bridging solution.

2 Likes

love it - thanks so much for this!

3 Likes

would just like to update this thread given new release today from Leap - seems like plug and play metamask solution.

curious if this reduces amount of work previously required / how much eng resources adding this would require?

do we have any data to share about adoption of vega wallet?

ik plenty of dev work going into that - curious if any early data to show itā€™s going to be good ROI?

b./c one thing I think reasonable concern is the UX for using vega is much more cumbersome if forcing users to also adopt brand new wallet - user has to create new wallet and manage new keys, transfer assets from old wallet to new wallet, then begin using. instead of just log in with the existing wallet, deposit tokens, start tradingā€¦

also lot of users who use MPC wallet w/ metamask extension canā€™t buy and stake vega token right now unless they adopt whole new wallet, which most wontā€¦

Thatā€™s a good suggestion and is currently on the roadmap :eyes:

more info soon :smiley:

so awesome! thanks for following up @Daig :slight_smile: