Inspiration

I’ve always believed that improving the efficiency of the financial industry is where cryptocurrency will have the most impactful change. However, the challenges individuals face in managing their digital assets, particularly regarding private key management is still a big issue.

What it does

This Recovery Wallet serves as a safety net against inaccessible digital assets on the Stellar network. It enables users to securely manage their assets while ensuring that, even in the event of losing their private keys, a recovery process is available. Reducing the fear of loss of assets should help to increase the likelihood that users will choose to transact on the Stellar blockchain. The wallet enables straightforward token transactions while also implementing a recovery mechanism, through a multi-signature process involving pre-set recovery addresses.

How I built it

I used the Soroban SDK to develop the Rust smart contract. I built out a basic implementation of the contract initially, and through thorough testing, I refined the contract to ensure that everything was working correctly.

Challenges I ran into

This is the first time I’ve ever written Rust, and my first time developing in the Stellar ecosystem; I learned quite a few new skills whilst developing this project! Testing and syntax proved challenging initially, but I made good use of the Soroban Examples on Github which were particularly helpful.

Accomplishments that I'm proud of

Successfully implementing a functional recovery process that doesn’t compromise on security, with good test coverage (and solo developing a project with a brand-new tech stack).

What I learned

Through the project, I gained deeper insights into smart contract development on Stellar using Soroban, including managing state, handling potential error scenarios, and ensuring that the contract behaved predictably and securely in various usage scenarios.

What's next for Recovery Wallet

Moving forward, I aim to add a user interface for a smoother user experience, explore fuzz testing, and increase support for more complex transactions (as opposed to just depositing and withdrawing tokens).

Built With

Share this project:

Updates