Last updated a year ago
The transaction editor has no secure key management and key storage, all keys are on the filesystem. Users improvise safety by working on air-gapped machines.
Enhance the Cardano transaction editor with an interface to hardware devices for key storage and transaction signing.
This is the total amount allocated to Transaction Editor Hardware wallet.
The transaction editor wraps command line utilities like cardano-cli & cardano-addresses and connects via API to cardano-wallet. It provides a powerful user interface to work with complex transactions for Cardano. It has an internal system for address management, but lacks secure key storage. That leads to a workflow inconvenience. Most of the time you want to edit transactions and sign them right away, currently you can't you must transfer them to a secure system to do the signing. Or you transfer from your wallet to a "work" address from which you use funds to run your complex transaction from the editor, and then transfer remaining funds back to your main wallet. Those are major inconveniences in development and use.
Inconveniences lead to bad security practices. Secure storage might not be critical when working on testnets, but if you build unsafe habits from the testnet, it will be dangerous when you enter mainnet work. A hardware device, for key storage drastically mitigates security problems, and the user can enforce good security practices to become a habit while working on testnets, where stakes are low.
The transaction editor opened developers and advanced user a new scalable UX for flexible work. This extension opens them up for good security practices.
The code is always open-source and I always document features and even release video showcase demonstrating workflows. Thus everybody can start with a quick overview, learn usage in depth and even investigate the code to learn about inner workings, and has a reference template.
Russia-Ukraine conflict escalates to Europe. I do plan a relocation to south America, that will delay me for 2-3 months but I can still go on.
I get covid again. It does take me a full month to recover, but then I can go on.
Any of the previous do lead to my death. In that case is a complete loss as I'm the sole developer and there is not yet a big contributor community for someone to jump in and steward the project forward. I consider given the scope of the project and funding amount. It is not worth to plan for it. Someone, someday, independently will spontaneously pick up the project.
Aside from those cases. There are no execution risks. I developer the transaction editor, it is no foreign code base and I already tried using hardware devices.
Vaccumlabs already offers cardano-hw-cli, which is a command line interface to connect with your hardware wallet. That takes the starting execution risk of the project of, as there is already an available solution and I need to just create an interface on top.
The however there is a "delay" on what the cardano-cli can do, its transaction format and which features the hardware wallet has available and then even later on what is implemented on the cardano-hw-cli. It is only recently that token mints and Plutus smart contracts came into the hardware wallets and thus for this project timeline on Fund 9, none of the Babbage Era(Vasil HF) features will be available.
Development has 2 stages:
First: Expected work ~ 1week ~ 40 Hrs
Create a wrapper of the cardano-hw-cli inside the Cardano transaction editor.
Second :: Expected work ~ 2.5 weeks ~ 100 hrs
This must be done twice. Once when user only wants to interface with cardano-address, and where each address is individually managed. Secondly on the cardano-wallet REST API interface. In that case we use the service to manage the entire wallet for us. However, then It needs a translator out of the transactions produced from cardano-wallet into ones that can be used by the cardano-cli and cardano-hw-cli tools. 2 Weeks ~ 80 Hrs
Because of cardano-hw-cli design, each witness runs as a separate instruction. It is annoying but also a simple solution. It would be better to have direct access to the HID, but that would at least mean the user has a running node.js service it can connect and run code live, which is a way bigger endeavor. I would rather prefer Ledger&Trezor provide a Rust library for that communication instead of the current JavaScript libraries. That would simplify and improve interaction with hardware devices over in a desktop application over command line. That is but a broader industry decision and everybody is focus on using JavaScript for its general use in browser based environments.
Included in the working hours is writing the corresponding documentation. Updating the progress feed on the Cardano Forum and releasing showcase videos.
---
Disclaimer on other Proposals and workload.
This is not my only Fund 9 proposal, and is one 2 two projects around the transaction editor. I do keep my projects linked so that my own efforts compound, however it means that although the work hours is a good measure their weekly compounding would take more than 3.5 weeks. I can only plan for target deadlines after voting is done.
For projects funded on previous rounds.
Fund 7 Transaction Editor is now a closed project
Fund 8 Ouroboros-mini query specification is a documentation effort and I will finish it before start of Fund 9. This project additionally includes a simple client implementation used within the Transaction Editor
Fund 7 Web based transaction editor, I miscalculated the design and effort for this project, I will keep working on it well past its funding time and probably well over Fund 9. It has been a great challenge to deal with it and I had to recognize changing its design a few times on the way. It has inspired some features on the Transaction editor desktop application, unveiling the Ouroboros-mini query specification, dealing with cardano-db-sync to process data to deal with Plutus contracts. I don't request further funding for this project, because it is personally not clear to me what it end up looking like. Its closing feature is producing an interactive Coin-Join on Cardano, whether it ends up as the service I intended or an extension for Nami I still don't know. Thus for the opportunity to keep iterating on the design I take it on my personal effort. Every time I do come up with a clearly scoped feature again, it is due to working on this project.
This project has only work compensation as I already own hardware devices from Ledger, and the cardano-hw-cli provides Ledger&Trezor connectors.
A total of 140 work hrs as specified in the previous section are budgeted at an hour rate of 75USD/hrs
I'm the sole contributor. Project coordinator and developer.
Óscar Nájera
https://oscarnajera.com
https://github.com/Titan-C
This project is closed in scope and I'll not return for further funding for it specifically. I can close it successfully. However, I believe Catalyst is a great system to sponsor people to work on community valued tasks. I as developer the more I work on Cardano, the more tools I need for it and the more Ideas I want to work on. Thus I will return to Catalyst to fund new projects or new modules for the Transaction editor. The community vote does help me prioritize what I shall build first and it also lets me meet other people.
My projects progress is clearly auditable by the deliverables stated on the "detailed plan" section above. The software provided in this project is Open Source, GPL-3 licensed and available in the well known code repository GitHub. Although I do tend to develop on private branches, each feature release has a transfer to the public repository. Additionally, release video showcases about this project. You can see a working demo.
I do act with more flexibility on the timeline as I juggle other responsibilities. Yet progress can also be measured on the monthly reports.
Free software is not the license, it is not the code openly available. It is people being empowered to use the tools for their own means of computing. The transaction editor builds on this philosophy, on bringing the highest flexibility to the user. Now with this interface to a hardware devices it brings convenience to security practices.
My success is people embrace this. Regardless of all the convenience it represents for the user to use web-wallet as light clients. The transaction editor works with a full cardano-node promoting decentralization and accountability. It's code being open allows developer to have a reference on how use-cases can be solved. The transaction editor is built on top of worlds longest lived editor Emacs, a solid foundation for software you can rely on and I expect people continue the practice of developing with and for this text editor.
This is an extension of my proposal for a Transaction Editor, although here the focus is to use secure hardware, and the feature is more around the wallet side of it not the transaction crafting. You can read about that project on:
https://cardano.ideascale.com/c/idea/385056
NB: Monthly reporting was deprecated from January 2024 and replaced fully by the Milestones Program framework. Learn more here
I'm the author and developer of the Cardano transaction editor a Catalyst Fund 7 funded and completed project.