completed

Web based transaction editor

$16,000.00 Received
$16,000.00 Requested
Ideascale logo View on ideascale
Community Review Results (1 reviewers)
Addresses Challenge
Feasibility
Auditability
ソリューション

トークンミントのトランザクションをガイド付きUXで作成できるサービス、ウェブベースのトランザクションエディタ

Problem:

Cardano CLIは、大規模で複雑なトランザクションで使用するにはあまりにも煩雑で、技術者ではない人を閉じこめてしまいます。

Yes Votes:
₳ 141,093,638
No Votes:
₳ 2,810,792
Votes Cast:
791

チーム

This proposal was approved and funded by the Cardano Community via Project F7: DApps & Integrations Catalyst funding round.

  • Video cover image

Detailed Plan

** Executive Summary. Why do we need this?

You want to participate in the Cardano revolution, yet to do anything interesting you need to have your own node and work with the cardano-cli. This locks away every non-technical user, and delays the technically skilled because they cannot try their ideas right away, they must go over the setup and synchronize the entire blockchain.

Even when committed to going over all the pain or even if not, using the cardano-cli is too cumbersome, it is not a scalable user interface, it is error-prone and you waste countless hours in the discord or forums asking for help trying to figure out why your token mint or your swap contract does not work.

You need a playground ready to use where you can craft your transaction, especially the complex ones. You need a different user interface. One where you can specify what you want and let the computer figure out which commands it needs to create your transaction. You start using templates and extend them your way.

I want a tool like that. I couldn't find such a tool, thus I started building it myself. A text editable interface as a wallet for Cardano to craft my transactions. It works and already does a lot(have a look at https://github.com/Titan-C/cardano.el),,) yet it is still for the technical user and requires setting up your node. I want to open its possibilities to a larger audience by offering this editor as a web application, letting anyone have access to crafting complex transactions, without even needing to set up a node.

Have look at this short example of what a transaction editor does

<https://youtu.be/ocSzYLmYPMQ>

** Impact & target group

I keep seeing people struggling with the CLI tool, through constant posts on the Cardano discord. Whether you are a developer, a creator launching an NFT collection, or a stake-pool operator you need to craft complex transactions, and the cardano-cli is not easy. We all need help on how to do some tasks with the cli.

User interfaces define the usability of a product. It is not enough to provide a tool that does the job, it must enable the user to do the job. The user and the job to be done define the requirements of the user interface. There is never a UX that fits everybody.

This proposal offers an interface for people that craft complex transactions and don't want the hassle of setting up the cardano-node or the extra transaction editor. It is for those who want to test their ideas immediately without any setup effort.

The declarative interface of this tool lets you focus on understanding the transactions you work on. The tool provides you with context & templates. You stop worrying about the cli and its instructions.

Better tools open more possibilities.

This web editor runs as a service connected to a cardano-node to offer access to the UTxO set and do validation and submission of transactions. It will, however, export for you, the cli instructions as scripts for you to learn, the composed transaction for you to sign offline, and the instructions for you to use the cli to sign locally with your keys, even on your air-gapped system. Transaction signature works offline. Then you can upload your signed transaction to the service to submit it to the blockchain.

** Feasibility(Skill required)

This proposal lags behind my transaction editor in features. It will be a transfer of the working design into a web service. It has a different set of challenges, although it can always receive a YAML file and use the same parser from the transaction editor, the web service for usability reasons also needs dynamic structured forms. Fortunately, that is nowadays a solved Problem in Frontend development and can be easily implemented with React and some plugins.

There is a completely new challenge by exposing the Cardano node at such a low level, thus this web editor will not offer any of the control features of the cli, it will only expose the query connections over the cardano-db-sync and the validation over the submit-api. In the same way, the transactions are not built calling the cardano-cli but are directly serialized using Emurgo's serialization-lib. This last step will create a byproduct library that web-wallet developers can use once they want to incorporate standard transactions in their products.

I will implement the entire service in Clojure + Clojurescript. They offer, in my experience, the most useful Fullstack ecosystem. Clojurescript+Reagent+Reframe let me create the dynamic structured forms, and on the backend, Clojure connects with the PostgreSQL database, and the submit-api again over a REST-API internally.

** Auditability

The rate of work is a part-time occupation. Weekly sprints of 3 workdays(Fri, Sat, Sun) (I do work part-time in my main occupation). This spaced work is very beneficial, as it gives time for the community of users to test the tool and deliver feedback. It also helps me as a developer to gather ideas over the week, while thinking about other tasks. This influences thought, rest, and openness.

Every week, the sprint starts on Fridays with community feedback review and planning of tasks. The development follows until the end of Saturday. Sunday is reviews and reports day. Completed features are documented in a newsletter form and posted on the Cardano forum. These features are documented as part of the Handbook of the tool. A demo video is recorded, edited, and posted online(on YouTube). Yes, a full day of work is dedicated to communication. New Features are important, but getting them into the hands of users is what counts. People, even technical ones, read more tutorials and documentation than the actual source code.

All work is available on GitHub licensed GPL3. All communication takes place openly on the Cardano forum.

** KPI

- Users can craft complex transactions without ever needing to install a cardano-node

- Highly dense and example-rich documentation is available.

- Users can create their NFTs, write the metadata, and directly set up their distribution.

- Tutorial on how to craft a Coin-Join is available. That means multiple people can agree on creating a simultaneous transaction where all of them pay at the same time and by that increase anonymity of transactions.
- Tutorial on Key management and signing is available. This way people can craft transactions on the editor and then sign them on their local computer(air-gapped one even better). Then upload them back with this service.

** Success Growth

- 3 Months: Service is running on Mainnet and has been used to mint new assets
- 6 Months: Cardano docs includes this service as a get started tool
- 12 Months: Service has 10K monthly active users. It is a form of a technical wallet. People mint their tokens here. It is a hub for Coin-Joins. People feel empowered to use Cardano to their needs instead of being bounded by just having a wallet that has standard interaction mode.

** Timeline

Everyone has a plan until they get punched in the face – Mike Tyson.

I propose a 10 Week action plan, on dedicated focus for this service.

Most software development is unpredictable and has little to do with the task at hand. It always requires investigating and solving problems related to dependencies. It all takes an unpredictable amount of time. Despite that, this is the best realizable timeline.

- Weekend-01: (Alpha dump) Launch the service. On Testnet, with direct connection to cli. Transaction editor will be for the moment only a text area for YAML. It will use the parser & logic already developed on my transaction editor from cardano.el

- Weekend-02-04: Bug fixing, review over-usage metrics. Analyze & mitigate how much this open exposure of the cli & cardano-node. Collect user feedback.

- Weekend-05-06: By this time based on feedback. Set on design for dynamic Forms or provide the full editor experience using slatejs

- Weekend-07-08: Continuous release & bugfix for web service.

- Weekend-09: Setup new service host for mainnet

- Weekend-10: Wrap up, clean up, deal with outstanding bugs, make a stable release.

** Budget

2000 USD Cloud Infrastructure 12 months. Includes Continuous Integration & build servers. VPS to run cardano-nodes on mainnet, public testnet, and the databases as I will not go over Blockfrost-API.

The rest of the budget is for work compensation at an average rate of 60USD/hr. On the various tasks of Software design and implementation, documentation writing, tutorial video recording & editing, project stewardship, and other communication. Currently I'm a sole developer.

** My experience

- Plutus pioneer first cohort, "Completed/Survived/Graduated". Awarded NFT 117 of class photo, Titan-C

- Second Place on the Plutus Pioneer Capstone Challenge on the Cardano Summit 2021 for this same tool

*** Contributions to cardano

- cardano.el :: <https://github.com/Titan-C/cardano.el>

This is the inspiration for this service

My pull request and issues to IOHK repos.

- <https://github.com/input-output-hk/cardano-node/pull/3082>

- <https://github.com/input-output-hk/Alonzo-testnet/issues/54>

That is part of parallel work done while developing the transaction editor.

*** Most successful Open-Source project

- Sphinx-Gallery :: <https://sphinx-gallery.github.io/stable/index.html>

Grew this project to become the standard documentation tool for Scientific Python projects.

This project is my hallmark of how dense example-based documentation fosters the use of a tool.

*** Other

Currently employed to develop for checkmk. <https://github.com/tribe29/checkmk>

Work ranging from tools to analyze monitoring data, to the user interface. Always with a direct dialog with customers.

I hold a Ph.D. in Theoretical Physics developing simulations for correlated electrons systems.

Everything summarizes into: I'm a tool builder. I build the tools I need to get the job done.

コミュニティ・アドバイザー・レビュー (1)

Comments

Monthly Reports

Not for the moment I'm still building the host & codebase for the service.

Disbursed to Date
$16,000
Status
Still in progress
Completion Target
7/19/2022
Comments 0

Login or Register to leave a comment!

It would be really useful from the cardano-db-sync QA, which according to the release notes needs to do a full database sync before release to report their resource utilization measurements, time to sync, hardware specs and server configurations. It is rather complicated for people trying to work with it to have that little documentation and outdated readme files.

Disbursed to Date
$16,000
Status
Still in progress
Completion Target
7/20/2022
Comments 0

Login or Register to leave a comment!

I'm still figuring out how to open it as a service, I wanted this tool to be an open interface to the cardano-cli. Yet I realize that such vision is not applicable for an online tool, I can't have such interface with the host operating system. This tool must evolve to provide a wallet integration. For such a lot of infrastructure changes. That is part of the experiment.

Disbursed to Date
$16,000
Status
Still in progress
Completion Target
7/20/2022
Comments 0

Login or Register to leave a comment!

As I stated on my previous report. The original ideal of providing a web interface for the cardano-cli seems to be flawed. It opens the system to much security issues. Certainly a better way is to build around the cardano-serialization-lib and to create transactions directly in the browser. That implies a complete redesign of the work, which is fine. I have worked mostly on reading how online wallets are working. The most inconvenient design problem is that wallets are designed for convenience, the editor is designed for flexibility, keeping flexibility high has a larger operational cost. I'm working on pivoting this work, certainly constraining the outcome as many things have changed on the way

Disbursed to Date
$16,000
Status
Still in progress
Completion Target
8/26/2022
Attachment(s)
Comments 0

Login or Register to leave a comment!

This project has been quite a challenge, yet now I enjoy more time resources to complete it, also the tools on the cardano ecosystem are improving and I have the opportunity to use that infrastructure.

Disbursed to Date
$16,000
Status
Still in progress
Completion Target
3. In the next 6 months
Attachment(s)
Comments 0

Login or Register to leave a comment!

This month I finally released the minimal viable application and it is usable by anyone with an internet connection and a web wallet. This project suffered many times delay because of infrastructure, of how I wanted to expose the Cardano node to the general user. That was not possible ensuring the security of my Servers and to provide the user with a fast application. After I pivoted to the idea to assume the user has a web-wallet and that my service only provides the transaction editor on top of the user wallet I could finally focus on releasing a standalone application. You can try it here https://arsmagna.xyz/apps/web-tx-editor/

I also wrote a lengthy blogpost explaining my latest decisions on how to steward this project forward. Since then the application has received 2 minor updates around management of network (mainnet,testnet) and error validation for the min value for a transaction output. You can read that post here: https://arsmagna.xyz/post/20220912-web-tx-editor/

Disbursed to Date
$16,000
Status
Still in progress
Completion Target
2. In the next 3 months
Comments 0

Login or Register to leave a comment!

The application now supports direct in wallet token minting/burning with CIP-25 token metadata. The latest blog post around this feature is https://arsmagna.xyz/post/20221104-web-tx-editor/ I additionally recorded a full demo https://www.youtube.com/watch?v=ienVqXtNFEI

Disbursed to Date
$16,000
Status
Still in progress
Completion Target
2. In the next 3 months
Comments 0

Login or Register to leave a comment!

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3分 24秒
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4分 3秒
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3分 48秒
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2分 16秒
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3分 14秒
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3分 19秒
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4分 59秒
    Darlington Kofa
0:00
/
~0:00