funded

Cardano in MetaMask

₳32,336.00 Received
₳202,105.00 Requested
Ideascale logo View on ideascale
Solution

We will build a Snap that will enable MetaMask’s 30 million users to add Cardano wallet functionality to their MetaMask wallet, and use Cardano dApps directly with MetaMask (no other wallet needed).

Problem:

MetaMask Snaps enable users to add community-built extensions to the wallet. The main use case is non-EVM chains support for MetaMask. Cardano is missing.

Cardano-in-MetaMask-7bbb14.png

Yes Votes:
₳ 301,304,959
No Votes:
Votes Cast:
892

This proposal was approved and funded by the Cardano Community via Project F11: Cardano Use Cases: Solution Catalyst funding round.

[SOLUTION] Please describe your proposed solution.

What is MetaMask? What are Snaps?

MetaMask is the most-used cryptocurrency wallet in the world. It has a reported 30 million monthly active users, and around 8 million daily active users. MetaMask has native support for all EVM (Ethereum-based) blockchains.

Recently, the MetaMask team released MetaMask Snaps: community-built extensions that add support for non-EVM chains (like Cardano) to MetaMask wallet, and allow MetaMask users to connect to non-EVM dApps using just MetaMask (no need to install any new wallet).

What is Cardano MetaMask Snap?

Cardano MetaMask Snap is the infrastructure used to create a Cardano wallet from a MetaMask wallet identity, but the Snap itself isn’t a full wallet – its functionality will be similar to a hardware wallet, so it will derive keys, sign transactions, and parse information from transactions to show the user information about the transaction they are going to sign.

For full wallet functionality (to show asset balances, construct transactions, etc.) it would be necessary to know the blockchain state and this is not possible in the current Snap version. For full functionality, the Snap needs to be combined with an external tool.

We decided to follow a similar approach as the popular Solana wallet Solflare which built a widget for dApps that enables MetaMask users to use Solana dApps. If you have MetaMask installed, you can see this work on popular Solana dApps such as Jupiter, Solend or Jito. Additionally, you can see the user experience in an enclosed video showcasing the prototype of our NuFi widget in combination with our prototype of the Cardano MetaMask snap. The NuFi widget that will utilize Cardano MetaMask Snap is not part of this Catalyst proposal.

Is this already in development?

Yes, it is. We are already working on a “blind signing” beta version of Cardano Snap. We plan to have it audited and released in January-February 2024.

However, the current solution is not ideal or future proof because, when a user signs a transaction, MetaMask will serve as a ‘blind signer’ and the user won't be presented with transaction details, making it impossible to confirm the contents of the transaction they are signing in MetaMask (the user will be able to do it in the NuFi widget but they have to trust the NuFi widget).

What is this Catalyst proposal for?

This Catalyst proposal is for the implementation of transaction parsing functionalities into Cardano MetaMask Snap, so a user is able to see detailed transaction information in the MetaMask wallet interface and can independently verify that the transaction they are signing is not malicious.

Why is this important?

Once this audited snap is released, it can be forked and easily used by other Cardano wallets or dApps. The user won’t have to trust the wallet or dApp with the details of a transaction, rather the content and details of the transaction will be visible directly in the MetaMask wallet interface.

The Cardano MetaMask Snap will mimic the logic of Ledger and Trezor hardware wallets and support all the transaction types currently present on HW wallets and display at least the same information about the transaction as HW wallets are displaying (with better UI than HW wallets).

Therefore users will be able to see:

  • details about the ADA or tokens they are sending
  • the fee
  • destination address
  • information about staking-related transactions and more

We will include support for:

  • all used Cardano certificates (including voting-related certificates)
  • off-chain message signing
  • multi-sig transactions
  • smart contract transactions

We will not include the support for Stake Pool operation transactions as we don’t expect this to be a real use case for Cardano MetaMask Snap users. But these transactions will still be executable in a blind signing mode.

As the Snap does not have any information about the external world, we will have to hard-code the supported token list and token decimals into the Snap. This is a bit inconvenient because this will have to be updated from time to time but we commit to do this at least quarterly for the following 24 months.

These Snap token list updates are immaterial and do not impact security, therefore they won't require external audits (and shall be audited just by the Consensys team for free). The formula for the content of the hard-coded token list is yet to be determined but it will be probably similar to the hard-coded list for Ledger wallet (Top 100 tokens by market cap).

Using the solution

Initially, the Snap can be utilized with NuFi widget that is currently in development. Dapps that want to support MetaMask users can implement NuFi widget SDK. The implementation will be trivial for any dApp with CIP-30 support.

We expect that in the future other wallets can create their widgets or even dApps can implement their own integrated wallet functionalities to accommodate MetaMask users.

See Cardano MetaMask Snap in action here

You can see the Cardano MetaMask Snap user experience in the video below showcasing the prototype of our NuFi wallet widget in combination with our prototype of the Cardano MetaMask Snap. The NuFi widget that Cardano MetaMask Snap will utilize is not part of this Catalyst proposal.

<https://www.youtube.com/watch?v=GdNXyh33YLs>You can also try our prototype here.

[IMPACT] Please define the positive impact your project will have on the wider Cardano community.

Who will benefit from this solution?

Cardano will be easily accessible to 30 million active MetaMask users. Dapps will be able to provide services to MetaMask users and wallets will be able to create solutions utilizing Cardano MetaMask Snap.

Metrics to measure the impact of this proposal:

Within 12 months of the release of this product:

  • 50% of Top 10 Cardano dApps by TVL and Top 10 Cardano dApps by users will have MetaMask integration through NuFi widget or another widget solution utilizing Cardano MetaMask Snap codebase.
  • 40.000 unique users of Cardano MetaMask snap (we can track this only in NuFi widget, therefore if another widget solution is out there using our Cardano Metamask Snap we need to rely on the other party sharing the data)
  • At least one other widget, wallet or direct dApp integration solution utilizing the codebase of our Cardano MetaMask Snap

We will be sharing the progress on our social media.

[CAPABILITY & FEASIBILITY] What is your capability to deliver your project with high levels of trust and accountability? How do you intend to validate if your approach is feasible?

How do you intend to validate if your approach is feasible?

We put money where our mouth is. We are developing Beta version of the Snap with blind signing at our own costs and this Catalyst project will proceed only if the Beta version will be audited and approved.

What is your capability to deliver your project with high levels of trust and accountability?

The NuFi wallet team has a long track record of delivering high-quality development work:

  • Created NuFi wallet (a Cardano-first Web3 wallet with support for 6 chains)
  • Created AdaLite wallet (the first-ever light wallet on the Cardano blockchain)
  • Team members were developing Cardano firmware for Ledger and Trezor hardware wallets in the past

Completed a Project Catalyst Fund9 proposal which added Ethereum and Milkomeda C1 support to NuFi wallet to aid in ‘The Great migration from Ethereum to Cardano’

[Project Milestones] What are the key milestones you need to achieve in order to complete your project successfully?

Development progress - 1 months

We will show significant progress in development in MetaMask snap. We will be able to demonstrate and prototype the basic functionality of at least 3 work-packages from Milestone 2

Deliverables: Github repository with commits, 3 prototyped functionalities (as described in Milestone 2)

Acceptance criteria: recorded video of at least 3 Cardano Snap functionalities (as described in Milestone 2)

>Development complete - 1 months

We will complete the development part of the project

Deliverables: Complete codebase of Cardano Metamask Snap with all functionalities presented in scope.

Cardano interop library integration

Decoding and parsing

Change outputs

CertificatesTx metadata

Message signing

Native assets

Desing and implement UI

Acceptance criteria: recorded video of Cardano Snap working in MetaMask Flask (development version) presenting all major functionalities

>Audit - 1 month

External auditor will execute the audit of the code and we will fix any findings.

Deliverables: Audit from MetaMask accredited auditor firm.

PR implementing all audit findings.

Acceptance criteria: Audit report

List of PRs fixing audit findings

>Product Release and Marketing - 1 month

We release the product to public and market it (mainly) among dApps

Deliverables: Integration documentation.

Released in MetaMask Snap store.

Execution of communication plan.

Acceptance criteria: Document the progress and deliverables of whole project in Catalyst closeout video.

Provide report on executed communication plan (or mention in closeout video)

Links to Integration documentation

>Catalyst closeout video + project closing

[RESOURCES] Who is in the project team and what are their roles?

Michal Petro - Project Lead

https://www.linkedin.com/in/michalpetro/

Lubos Svolik - Project Manager

https://www.linkedin.com/in/lubossvolik/

Rafael Korbaš - CTO

https://www.linkedin.com/in/rafael-korba%C5%A1-4b2a31b7/

Richard Izip - FE Lead, UX/UI design

https://www.linkedin.com/in/richard-izip-253622112/

Kamil Džurman - Full-Stack Developer

https://www.linkedin.com/in/kamil-d%C5%BEurman-0b18b6149/

Andrej Želonka - FE Developer, UX/UI design

https://www.linkedin.com/in/andrej-%C5%BEelonka-0563681a9/

Gabriel Kerekeš - Full-Stack Developer

<https://www.linkedin.com/in/gabriel-kerekes/>

Peter Benc - Full-Stack Developer

https://www.linkedin.com/in/peter-benc-290b76142/

Ben Goldie - Community Manager

https://www.linkedin.com/in/goldieben/

[BUDGET & COSTS] Please provide a cost breakdown of the proposed work and resources.

Details:

https://docs.google.com/spreadsheets/d/1aEQvk_6P72d6K6u7yG4FEJRwk9oVk7yNE_xOZiHDzv4

Milestone 1 - 50,526 ADA

Milestone 2 - 75,790 ADA

Milestone 3 - 52,631 ADA

Milestone 4 - 23,157 ADA

Final Milestone

[VALUE FOR MONEY] How does the cost of the project represent value for money for the Cardano ecosystem?

In terms of why this proposal is value for money for Cardano’s ecosystem, we believe that the one-time cost of building this solution will be offset by the increased adoption of Cardano dApps through decreased barrier of entry for EVM users. MetaMask users can be frequently targeted by marketing campaigns of Cardano dApps but the necessity to download and create a new wallet may block them from trying it.

Once released, this solution will be open-sourced and can be utilized by other builders in the community without the need to develop and audit a their own Snap for Cardano.

Comments

Monthly Reports

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3m 24s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4m 3s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3m 48s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2m 16s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3m 14s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3m 19s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4m 59s
    Darlington Kofa
0:00
/
~0:00