IOHK releases Icarus to the Cardano blockchain community

IOHK releases Icarus to the Cardano blockchain community

Input Output, an engineering company behind Cardano that builds cryptocurrencies and blockchains for academic institutions, government entities, and corporations today announced the release of Icarus, a reference implementation for a lightweight wallet.

Icarus was born out of a series of proof of concepts which began back in March of this year. A small section of the IOHK engineering team was interested to find out if they could demonstrate that it would be possible to create a lightweight Cardano wallet with all the features of Daedalus but that was easy to use and fast to set up.

Starting from the beginning of March, the IOHK team wanted to see if, within a month, it could build a skeleton Chrome extension application and verify that Cardano cryptography could be run in the browser using WebAssembly compiled from Rust. (The Rust library of Cardano primitives has been developed by Vincent Hanquez and Nicolas di Prima, IOHK Specialised Cryptographic Engineers. It has already been used for the paper wallet certificate feature in Daedalus and will evolve into Project Prometheus – which IOHK will be releasing more information on in due course.) To build this Chrome extension, the team would need to successfully demonstrate it could import and track a wallet balance. they have to do all this without sacrificing the IOHK engineering principles of quality and security.

The demo at the end of March went well and produced a functional prototype that could be developed. Once each demo had been given, the wider IOHK engineering team had a chance to review, critique and provide feedback about the design decisions the Icarus project team was taking, which proved invaluable to the process. After proof of concept 1, it was believed that good progress was being made and another month’s effort from the team would be worthwhile.

Proof of concept 2 was delivered in mid-April. The Rust engineers had spent the intervening time extending the Rust library to support the Cardano primitives for the creation, signing, and broadcast of transactions, and providing an API so that these could be run in the browser. On the application side, we wanted to see if we could reuse the UX/UI components of Daedalus to provide a smooth user experience. Fortunately, the IOHK Daedalus development team maintained a high-quality, portable UI framework for React, called React-Polymorph, which was found to be easily portable to the Chrome extension.

Proof of concept 3 in late May involved making Icarus fully interoperable with the Daedalus wallet. The team worked to develop a new Hierarchical Deterministic (HD) address scheme that Daedalus will use in the future and will ensure ongoing compatibility.

Brian McKenna, IOHK Project Manager continued:

“One important feature we built at this point was to allow the user to enter their Daedalus wallet recovery phrase in Icarus, and for their Ada in Daedalus to be transferred to the Icarus wallet. In effect, this allows users to retrieve their Ada without using the Daedalus wallet. We also optimized wallet restoration times. Finally, after only three months and three demo’s we had a fully functional prototype lightweight Cardano wallet!”

Now, before the team could ensure this was a reference implementation it could release to the community, they wanted to ensure that it performed at scale. This, along with some code clean-up, was the main task of the final proof of concept 4 in early June. To finalize, the IOHK team called upon the experience of Philipp Kant, in IOHK benchmarking, and Neil Davies, leading networking, and successfully conducted a series of rigorous stress and failover tests on the architecture.

The code base has been quality assured by Allied Testing, a leading quality assurance and testing company. We also engaged Kudelski Security, a cybersecurity consultancy, to perform a full security audit of the code – their report will be published soon.

The Rust library that was used to bring the Cardano cryptography into the browser has spawned another IOHK project, Project Prometheus. IOHK will be releasing more information on this in due course. Prometheus will maintain the open source spirit of Icarus and further extend the toolbox of Rust modules. The project will be made available to the open source community to easily build high-quality applications using Cardano.

The first iteration of Prometheus will be a full command line interface wallet, which the community can expect to see in September.

Share your thoughts, add a comment!

You must be logged in in order to place a comment.

Article comments

Loading...
No comments yet, be the first to comment this article