over budget

C64 Extension Wallet

$32,940.00 Requested
Ideascale logo View on ideascale
Community Review Results (1 reviewers)
Addresses Challenge
Feasibility
Auditability
Solution

Design and implement a progressive modular extension wallet that facilitates the addition of new use cases in the form of plugins.

Problem:

Wallet extension that provides a sovereign, customized experience for users and devs by supporting P2P, NFT, Identity, Voting as plugins.

Yes Votes:
₳ 48,628,483
No Votes:
₳ 7,924,576
Votes Cast:
193

Équipe

  • Video cover image

[IMPACT]

Development of a community cross-browser 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, being able to choose your own trusted endpoints.

The light wallet type, the user-friendly 'popup' format, and the quick installation will make it easy for users to adopt the wallet.

The capacity to easily add new use cases/plugins and the ability to customize endpoints will attract more experienced users.

The testnet support and dapps connector integration will appeal for developers. Improving the user experience, gains versatility and, besides being able to mine NFTs, we can add new capabilities by adapting to the advances and new functionalities brought by the Alonzo era and future ones.

BLOCKING PROBLEM AND EVIDENCES:

There are not blocking problems or evidences, since Cardano protocol already provides all features detailed in this proposal.

Future features(not covered in this proposal, tentative for next funds):

- Restore accounts from Yoroi and Daedalus.

- Consolidate funds in the same account.

- Integrate Dapp Connector for smart contracts interaction. CIP030.

- Adahandle spacename.

- Trezor, Ledger support.

- Plugins repository(audited).

- More use cases as plugins (Identity PGP/Atala Prism, Voting, Native Tokens Minter).

- Staking portafolios.

- Code audit.

Demos:

https://drive.google.com/file/d/1nSniQCGOOVCJoJnb1f2JwLe9V34_MACS/view?usp=sharing

- Build and submit transactions.

- Custom endpoints.

- Setup cache with indexedDb and upload and process digital assets.

<https://drive.google.com/file/d/1pceSeW9xbghKMtJLGA8AQPdB0mkCFGgK/view?usp=sharing>

- Metadata support for transactions.

- Frontend: NFT minting + native tokens.

https://drive.google.com/file/d/1D7Cmt2b2fDTS8d_oqr6alW95tiVBbL7z/view?usp=sharing

- Sending native tokens.

- Signing transactions using metadata.

There are not blocking problems or evidences, since Cardano protocol already provides all features detailed in this proposal.

[FEASIBILITY]

The extension wallet is the MVP and core of the project, we want to offer an intuitive extension wallet experience to interact all capabilities in the Cardano ecosystem.

Initially, we will analyze and explore existing tools and libraries, then choose the ones that best suit our needs, for the wallet side.

The wallet development will be led by a full stack developer, who will provide public progress reports.

This developer will be in charge of implementing frontend views, crypto libraries, types, data persistence, language management, among others, see bellow tentative timeline.

By achieving the proposed objectives, we will be able to offer a light wallet with full capabilities to everyone as browser extension.

- Create/restore accounts.

- Send payments, use metadata.

- Hold assets, native tokens, NFTs.

- Mint NFTs, native tokens.

- Get rewards while staking.

<u>Tentative timeline</u>

phase 0 / 2 months - Base Wallet & Web development:

A. Start developing the light wallet as a browser extension.

1. Adapt Auro Wallet(Mina Protocol). Migrate Javascript to Typescript.

2. In-memory state for backend side.

3. Redux for state management in frontend views.

4. Cross-browser support. Chrome, Brave, Edge and Firefox(tentative).

5. LocalStorage for wallet configuration.

6. IndexedDb for data persistence and cache.

7. Multi-lingual support.

8. Switch-network support for mainnet and testnet from the same account.

9. Default and customized endpoints for each network, avoiding server saturation.

10. PIN code security layer.

B. Start landing pages and social media profiles.

1. Reactjs for landing page.

2. Multi-lingual support.

3. Server configuration and web deployment. IPFS.

4. Setup domain/web certificate.

5. Twitter account.

phase 1 / 2 months - Basic Features - Modular Architecture and Alonzo support:

A. Continue developing the light wallet.

1.1 Creation, restoration, modification and deletion accounts.

1.2 Send (+metadata), receive and show transactions (+metadata).

1.3 Delegate and get rewards.

1.4 Design and implement a modular architecture as plugins based.

1.4.1 Integrate the first plugin: C64 Minter(signed & 100% on-chain), already funded from the previous proposal, fund5[0].

B. Native tokens support.

1. Send, receive and show tokens. Integrate Alonzo Rust SDK.

phase 2 / 1 months- Working Product:

A. Continue developing the light wallet.

1. Setup Dandelion default endpoints, for testnet and mainnet support.

2. Server requirements:

Testnet: 4vCPU 8Gb 20Gb.

Mainnet: 24vCPU 24GB 42Gb.

B. Community:

1. Start 'on-chain NFT' incentivized challenge.

C. Sustainability:

1. Sustainability plan for development and maintenance of the wallet. As an addition and alternative to the Catalyst program.

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

Detailed estimated costs by hour

*The following costs are based in hours, as a way to normalize the value.

<u>Project: C64 Extension Wallet</u>

Frontend components:

- Landing page. 22h.

- React extension integration using Typescript. Cross browser. 180h

Yoroi serialization lib:

- Transaction builds with scripts using Cardano-serialization-lib. 130h.

- General testing. 40h.

Project Management:

- Explore new tools from the blockchain ecosystem that match C64 Wallet needs. 8h

- Community interaction and reports, catalyst progress updates. 12h

- Manage and lead development in wallet tasks. 20h

Total hours: 412h

Total engineering: 28840 USD

Licenses & 1 year subscriptions: 900 USD

Infrastructure costs and maintenance for 1 year: 3200 USD

-> Total: 32940 USD

The first month of development will be partially financed with the 58% of the funds obtained in the previous fund5[0] proposal (merging and optimizing costs).

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

<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 art with 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>

[AUDITABILITY]

KPIs:

- Complete data encryption and persistence.

- Creation/updating/deleting accounts.

- End2End 'Send' simple transaction(Just ada).

- Show transaction details(confirmed and pending).

- End2End 'Send' transaction with metadata. CIP-020[0].

- End2End 'Send' transaction with native tokens.

- End2End 'Send' signed transaction.

- End2End 'Create NFT' with IPFS. CIP-025[1].

- End2End 'Create NFT' on-chain.

- End2End 'Create NFT' on-chain & signed.

- Delegate from account.

- Participation metrics in the incentivized NFT challenge.

- Number of NFTs minted by C64 Wallet.

- Number of downloads.

- Deploy landing page in IPFS.

[0] https://github.com/cardano-foundation/CIPs/tree/master/CIP-0020

[1] https://github.com/cardano-foundation/CIPs/tree/master/CIP-0025

Tracking of project progress and KPIs will be publicly reported every two weeks to Catalyst organizers and the rest of the community through our social media channels.

Video demos will be publicly shared to show KPIs achievements.

The proposal is considered completed when all KPIs have been satisfactorily completed, before the time frame of 6 months and the wallet is available for download in the detailed web browsers.

The development started as a cross-desktop wallet[0], 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 websites.

In this way, the wallet improves the user experience, gains versatility and, besides being able to mine NFTs, we can add new capabilities by adapting to the advances and new functionalities brought by the Alonzo era and future ones.

<u>From Minter to Modular Wallet</u>

Thus, we decided to go a step further and expand the vision and capabilities of the wallet, adapting the initial proposal[1] to a modular wallet, where, starting from a basic wallet functionality with a friendly extension user experience, we will establish new functionalities such as support for switching between different networks, the possibility of choosing your trusted endpoints, and being able to add specific use cases in the form of addons, being the 'C64 Minter' the first to be included.

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

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

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