not approved impact proposal

C64 Wallet - Extension Tool

$86,000.00 Requested
Ideascale logo View on ideascale
Community Review Results (1 reviewers)
Impact / Alignment
Feasibility
Auditability
Solution

Design and implement a progressive modular extension wallet as a tool that facilitates new use cases to interact with users and the web3.

Problem:

Modular wallet extension that provides a sovereign, customized experience for users and devs by supporting internal original tools and interacting with web3 platforms.

Yes Votes:
₳ 44,072,264
No Votes:
₳ 113,318,524
Votes Cast:
299

Équipe

  • download
  • download
  • download
  • download
  • download

[IMPACT] Please describe your proposed solution.

We’re building a cross-browser Cardano light wallet with a popup format that supports switching networks and unifying all of them within the same tool from the same account. In addition, it allows users to choose their own trusted endpoints and explore different use cases as add-ons.

The light wallet type, the user-friendly 'popup' format, and the quick installation will make it easy for beginning users to adopt the wallet. While the ability to easily add new use cases/plugins, customize endpoints, mint NFTs in-wallet, testnet support and dapps connector integration, combined with the quick and easy UX of a lite-wallet, will attract more advanced users and developers.

<u>Development path</u>

The development started as a cross-desktop wallet[0], and with the imminent arrival of smart contracts, the project evolved towards the creation of a wallet to be used from the browser to facilitate interaction with web3.

With the advent of the Alonzo hardfork, we expanded the vision and capabilities of the wallet, adapting the initial proposal[1] to a modular and progressive wallet where starting from a basic wallet functionality with a friendly extension user experience we built new functionalities such as support for switching between different networks, the first wallet on Cardano to allow for in-wallet NFT minting, the possibility of choosing your trusted endpoints, and enabling users to easily add new use cases in the form of add-ons..

[0] https://github.com/jimcase/C64-Minter

[1] https://cardano.ideascale.com/c/idea/352588

[IMPACT] Please describe how your proposed solution will address the Challenge that you have submitted it in.

Strengths of C64: Expanding what’s possible with a Cardano Lite-Wallet

Wallets are the gateway to the blockchain, anything you want to register on the blockchain needs a wallet, or to be more precise, an interface that allows you to securely perform actions involving your private keys.

Initially, we start by creating a wallet to randomly generate a new private key(seed phrase), or use an existing one instead.

In any case, we can always hold more than one private key in the same app, making C64 multi-account style.

Once we have a private key, we will encrypt it with a spending password and store it securely on the client side. This means that the private key is never exposed to the outside world and if someone accesses your device they will not be able to decrypt the key without your spending password. This allows users to persist their own data and not need to enter the recovery phrase with each new action.

Well, now that we are efficient in managing and storing our key data, let's continue to set up the wallet.

From the private key we can generate the corresponding public key and also generate public addresses that everyone can use to send any asset.

In case we do not have funds yet, we will need someone to send us some assets, for example a few ADA.

To do this, we will share one of the generated public addresses, whichever one the user chooses.

After someone sends Ada to the provided public address and we finally receive the payment, we will see an interface where we will be able to check the activity and transaction history associated to the current wallet.

For each transaction we will see:

  • The total amount of Ada received, the senders and receivers involved, the size of the transaction, the network fee and the hash of the transaction(with external link to carcanoscan).
  • In case tokens are included, a list of tokens received will be displayed.
  • In case matadata is included, the original content will be displayed in .json format.

All the properties above can be copied to the clipboard by clicking on them.

In addition to all transaction activity we will have another Tab to show the assets in hold.

Starting with an horizontal list with a thumbnail and animated display of the NFTs.

In addition to the NFTs, a list of all native tokens will be displayed.

Both NFTs and native tokens can be opened in detail. There we can see more detailed information related to the selected token. We will be able to consult:

- The token name or assetName.

- The type of token. Fungible or non fungible.

- The asset fingerprint.

- The policyId.

- The last time it was minted.

At this point we have already all keys and addresses needed to start performing actions, and an explorer to carry out and visualize them.

Then, we can build and serialize a transaction, where we will dynamically obtain the total cost of the network fee with each change we make in real time.

Among these changes we can have:

- The number of outputs we want to send assets.

- The number of inputs we need to include.

- The total amount of assets for each output.

- The use of certificates, for example, staking certificates.

- The inclusion and editing of plain text as metadata following the CIP-20[0]- Metadata as a list of strings.

To get an estimated dynamic fee, we will use a mirror transaction as a draft, where we will be simulating the transaction until we get the final result.

This is where a critical component comes into play when dealing with and building transactions. This is called the CoinSelection algorithm, which calculates and manages the UTXO needed to perform and cover the costs of a given transaction in the most efficient way possible, while avoiding the generation of dust.

There are several ways to perform this task, as detailed in CIP-2[1], where the following approaches stand out:

- Largest first. Here, the largest UTxO entry is always selected first.

- Random-Improve. Divided into two phases, UTxOs are randomly selected until the costs are efficiently covered, given a constant, e.g., that the selected UTxOs cover 2x the total assets to be sent.

Now that we can have transactions, we can perform all kinds of actions. For example,

In addition to sending common transactions we can participate in the staking mechanism and earn rewards delegating through a specific Staking Pool.

To look for the sustainability of the project, the delegation will be linked to the Ada Booster stake pool until a maximum of stake is reached. This maximum value will be determined during the development phase.

Lets go further with the transactions. We can create native tokens with a simple transaction, no smart contracts needed.

The wallet will provide a tool to mint native tokens(gaining sovereign). In particular, it will be possible to create NFTs without the need of third party tools or websites, all from your wallet.

In addition, thanks to a previous proposal from fund5, we can mint NFTs 100% on-chain without the need for services such as IPFS, guaranteeing lifetime accessibility. Is there anything so important that deserves so much? Community will decide.

To get up to date data directly from the blockchain we need to request it from the endpoints.

From the wallet we can add our own endpoints or from any other trusted source.

In this way, we are totally sovereign of where our information goes at all times.

In addition, we can mitigate bottlenecks when the network is saturated by not using a public service.

We can continue expanding the possibilities of the wallet's internal functionalities. But we will not stay only in our world, from C64 we will be able to interact with any web3 platform to provide relevant information and new utilities.

For example, we could provide a financial analysis website our transaction history so that they can calculate a profit report on it. We can think in many other use cases where imagination has no limits.

The solution detailed above covers everything we will need to complete the final MVP. This does not end here, it is a matter of making incremental progress in conjunction with Catalyst funding rounds or other suitable means of funding.

We will continue to work on the roadmap of the project to ensure its long-term sustainability in the best possible way.

An important point of sustainability will be to increase the traction of the community and to work on marketing and branding to differentiate the C64 Wallet from competing Cardano lite-wallets.

This, coupled with the interoperability with other wallets in the ecosystem, will promote adoption.

<u>Insights for Future Development</u>

This NFT minting tool was our first example of the capabilities;, we can take advantage of more feature of Cardano native assets to develop more innovative features in the future..

Other tools and features not covered in this proposal but considered in future updates:

- Minting of native tokens.

- Transactions with multiple outputs.

- Multi-sig accounts[2].

- Encryption of any common data.

- Compatibility with all wallets, eg. Daedalus and Yoroi.

- Integration of third party tools such as: Adahandle[3], ArgusNFT[4] and other projects.

- Integration and support with hardware wallets.

- Milkomeda integration.

- Integrate Identity systems like third party Atala Prism projects.

[0]https://cips.cardano.org/cips/cip20/

[1]https://cips.cardano.org/cips/cip2/

[2]https://cips.cardano.org/cips/cip1854/

[3]https://adahandle.com/

[4]https://argusnft.com/

[5]https://www.milkomeda.com/

[IMPACT] What are the main risks that could prevent you from delivering the project successfully and please explain how you will mitigate each risk?

<u>Technical Risks </u>

There aren't technical blocking problems or evidences, since Cardano protocol already provides all features detailed in this proposal for a browser wallet.

<u>Team Risks </u>

There are always risks to working on projects where multiple people need to contribute for a successful outcome. However, our team has worked well together many months already on this project, and are committed to the vision of building a Cardano lite wallet with innovative and useful functionality, so we don’t see our team as a factor that risks the completion of the project..

[FEASIBILITY] Please provide a detailed plan, including timeline and key milestones for delivering your proposal.

The development of the wallet started in May 2021.

Part of the requirements and functionalities are already implemented, while the rest and the final version depend on the funds requested in this proposal.

Below we can check the detailed roadmap by month:

<u>June 2021</u>

Setup repository and dev environment.

PoC for browser extension app.

Fork Auro Wallet (Mina protocol)[0].

Start progressive migration from Javascript to Typescript.

Setup cardano-serialization-lib library.

<u>July 2021</u>

Use local storage for configuration data.

Setup local IndexedDb database.

Persist the current state in memory.

Design schemas for db tables.

Create and restore accounts.

Deploy Graphql endpoints and fetch from the wallet.

Design and implement custom endpoints mechanism.

Work on frontend views.

Provide backup for the seed phrase.

<u>August 2021</u>

Build queries methods for IndexedDb database.

Build Graphql queries for staking relevant data.

Work on frontend views.

Design and build the transaction history view.

Build Graphql queries for transactions relevant data.

Process and persist txs data and activity.

<u>September 2021</u>

Build Graphql queries for current balance.

Trigger wallet updates.

Drag and update.

Fix bugs on frontend views.

Multi-language support.

<u>October 2021</u>

Delete account.

Design UI/UX for addons.

Work on the Send component.

Design and implement UI/UX for assets.

PoC Building a transaction.

Design CoinSelection algorithm v0.

Transaction validation.

<u>November 2021</u>

Design UI/UX for NFT Minter tool.

Fix bugs on frontend views.

<u>December 2021</u>

Build NFT Minter transactions v0.

Design UI/UX for minting cart.

Transaction validation.

Submit transaction on Send view

Work on frontend views.

<u>January 2022</u>

Integrate IPFS service.

Design UI/UX for NFTs explorer.

Work on frontend views.

Work with media files.

Start building the NFT minting transaction.

Add signing method for NFTs.

Design and implement a full on-chain NFT mechanism.

Add wallet extension to browser stores.

<u>February 2022 </u>

Deploy Graphql endpoints tutorial[1].

Logo Design.

Setup landing page and deploy on IPFS.

Setup and manage social media profiles.

Setup legal company.

From February until July 2022, our team members have supported the technical development of Thrift Wallet[2], a cross-mobile Cardano wallet from Ariob incubator[3].

The C64 wallet has yet to complete the development of certain needs, which are detailed below by month:

<u>September 2022 </u>

Migrate from Graphql to Blockfrost API(soon as open source).

Update cardano libs to support Vasil Hard Fork.

Fix frontend bugs.

Migrate single address to multiple addresses account model.

<u>October 2022</u>

Hire branding company.

Build an identity for the C64 brand.

Get stake pool relevant data.

Work on frontend views.

Build delegation transaction.

<u>November 2022</u>

Check and collect delegation rewards

Design UI/UX for web3 connector.

Work on web3 Connector standard - CIP30[4]. API injector v0.

Work on frontend views.

<u>December 2022</u>

Design CoinSelection algorithm v1.

Work on web3 Connector standard - CIP30. API injector v1.

Fix frontend bugs.

Website interaction End2End.

<u>January 2023</u>

Explore new functionalities and third party services.

Partner with projects from Cardano ecosystem to help onboarding new users.

Work on project sustainability plans.

Explore potential core team members.

Fix frontend bugs.

<u>February 2023</u>

Define next steps in taking the wallet to market

[0]https://github.com/aurowallet/auro-wallet-browser-extension

[1]https://docs.c64.app/endpoints

[2]https://cardano.ideascale.com/c/idea/398652

[3]https://ariob.io/

[4]https://cips.cardano.org/cips/cip30/

[FEASIBILITY] Please provide a detailed budget breakdown.

Full Stack Engineer: $56k

Cloud costs: $3600

UX/UI: $6000

Graphic design and branding: $2400

Training: $900

Project Management: $6k

Social Media Marketing: $3600

Incentivized Campaigns: $900

Documentation: $1800

Writing and publication of at least 2 articles: $800

Translations: $ 800

Licenses: $3200

<u>Total $86000</u>

[FEASIBILITY] Please provide details of the people who will work on the project.

<u>About C64</u>

The C64 project started in April 2021 with a fund5 proposal[0] for a purpose-built desktop wallet to mint signed NFTs, stored 100% on the blockchain. Allowing anyone to create, verify and link identities to digital assets, such as works of the artists.

C64.APP

The team:

Caso as Project Lead. Full-Stack Developer. Cardano Ambassador. Stake Pool Operator [BOOST]. https://www.linkedin.com/in/jaime-caso

Roberto Morano as Advisor and Collaborator. ex-Emurgo DevOps lead. Gimbalabs co-founder. Stake Pool Operator [PEACE] Dandelion operator/lead.

<https://www.linkedin.com/in/rcmorano>

Vicente as Advisor ex-Emurgo Yoroi-mobile, R&D Engineer.

<https://www.linkedin.com/in/vicente-almonacid>

[0] https://cardano.ideascale.com/c/idea/352588

[FEASIBILITY] If you are funded, will you return to Catalyst in a later round for further funding? Please explain why / why not.

Yes, the idea is to make the development sustainable with future rounds of financing, as well as finding other complementary forms of financing.

[AUDITABILITY] Please describe what you will measure to track your project's progress, and how will you measure these?

The progress of the development so far can be seen in the results obtained since June 2021 as shown in FEASIBILITY section.

The rest of the features can be tracked through the new Trello board.

C64 Wallet - Trello Board

The remaining work done per month will be:

<u>October 2022 </u>

Full endpoints queries based on Blockfrost API.

Work with the last version of cardano libraries.

Been fully compatible with Daedalus and Yoroi.

<u>November 2022</u>

Attempt to contact and partner with at least 1 branding company that potentially fits our needs.

Hire the selected branding company.

Get the first branding guide and graphics.

Process and show the data needed for staking.

End2end delegation transaction.

<u>December 2022</u>

Check and collect delegation rewards.

Have a view for web3 connection.

Web3 methods implemented 1/2.

<u>January 2022</u>

Web3 methods 2/2.

Frontend bugs fixed.

New CoinSelection version v1.

Web interaction tested with at least one platform.

<u>February 2023</u>

Find at least 2 potential upgrades and at least 1 external service.

Partner with at least 1 project from Cardano community.

Design 2 ways to boost project sustainability.

Find at least 2 candidates for core team members.

<u>March 2023</u>

A roadmap with next steps.

Get feedback from the community from a minimum 20 users.

Have written a new Catalyst proposal for the current fund.

[AUDITABILITY] What does success for this project look like?

How to measure success:

  • Number of project explorers where C64 is listed.

  • Number of downloads(new users) from browser stores.

  • Number of new users and social interactions. Increasing engagement in social networks since the launch of the new version of C64.

  • Number of web3 platforms that support the C64 connector.

  • Number of third party projects integrated into C64 Wallet.

  • Number of transactions with metadata.

  • Number of NFTs minted.

    [AUDITABILITY] Please provide information on whether this proposal is a continuation of a previously funded project in Catalyst or an entirely new one.

The project started with a previous proposal in Fund5[0], with the purpose to build a desktop wallet to mint signed NFTs, stored 100% on the blockchain. Allowing anyone to create, verify and link identities to digital assets, such as works of the artists.

The project has evolved into a more complete and versatile project in a browser extension format.

[0] https://cardano.ideascale.com/c/idea/352588

Sustainable Development Goals (SDG) Rating

<u>SDG Goals</u>

8 - Promote sustained, inclusive and sustainable economic growth, full and productive employment and decent work for all

9 - Build resilient infrastructure, promote inclusive and sustainable industrialization and foster innovation

10 - Reduce inequality within and among countries

<u>SDG Subgoals</u>

8.10 - Strengthen the capacity of domestic financial institutions to encourage and expand access to banking, insurance and financial services for all

8.2 - Achieve higher levels of economic productivity through diversification, technological upgrading and innovation, including through a focus on high-value added and labour-intensive sectors

9.1 - Develop quality, reliable, sustainable and resilient infrastructure, including regional and transborder infrastructure, to support economic development and human well-being, with a focus on affordable and equitable access for all

9.3 - Increase the access of small-scale industrial and other enterprises, in particular in developing countries, to financial services, including affordable credit, and their integration into value chains and markets

9.b - Support domestic technology development, research and innovation in developing countries, including by ensuring a conducive policy environment for, inter alia, industrial diversification and value addition to commodities

9.c - Significantly increase access to information and communications technology and strive to provide universal and affordable access to the Internet in least developed countries by 2020

Avis des conseillers communautaires (1)

Comments

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

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

    Authored by: Darlington Kofa

    4 min 3 s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3 min 48 s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2 min 16 s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3 min 14 s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3 min 19 s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

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