1

I'm creating an application and was trying to figure out whether to use cardano-wallet or cardano-cli for my product. I like the fact cardano-wallet has endpoints & is very easy to setup, although cardano-cli seems like it'll be great. My product will allow lots of users to create wallets & send & receive but I was hesitant to use cardano-wallet becuase someone once told me cardano-wallet is better for single users that want to manipulate their wallets, not for large enterprise applications.

Can someone with more experience chime in?

2 Answers 2

2

cardano-wallet is a framework built for high level control over cardano-cli, and (or some version of it) is the backend for wallet software like Daedalus, Yoroi, Eternl, etc. High level features include: automatic coin/UTXO selection, quick transaction workflow, easy wallet/key derivation, and most importantly, prepackaged endpoints to a running node.

cardano-cli provides a low level command interface with the node, which affords high modularity and customizability for enterprise applications.

So... which you decide to use depends on the nature and scale of your app. Perhaps a bit of both? :)

1
  • Thank you for this well detailed comment, I will probably be using both in the future, I didn't know that cardano-wallet interfaces with cardano-cli fully.
    – CoderMan
    Apr 15, 2022 at 3:23
1

I would add a fence-sitting "it depends on your use case" and what your time line is.

The cli can be utilized to build Txs without secret information. Given that light wallets following CIP 30 disclose all available UTXOs and other necessary info (not wallet secrets obvs) to build Txs on the users behalf. Light wallets generally allow users to sign a Tx, even though they cannot build them. So if you want to deliver a usable product tomorrow, this is at least feasible.

The wallet, and to some extent the cli, have been designed for personal use in the sense that they need access to sensitive information. The wallet only operates with secret keys. To use the cardano wallet, either you force users to host their own wallet in their own instance, or you run instances and they use your platform. The former is a technical barrier, and the latter undermines blockchain. How well does it scale to have hosted cardano-wallet as a service? No clue. Its trivially parallelized so its probably fine but i'm sure its not optimized for that use case.

(This has now been fixed but) For the cli, it used to require secret keys to build transactions here. Just reflective of this not being the focus of the design.

Other options: cardano-serialization-lib to build Txs in browser. There are a bunch of other nascent projects trying bridge this gap between "Technically feasible" and "Actually usable"

2
  • I see with cardano-cli in order to build a transaction I need a --signing-key-file once you sign the transaction as well, when creating wallets you need to store the --payment-verification-key-file & --signing-key-file. How can I avoid storing these on my cardano-node if I want to just use the cardano-cli for my service? Can I allow the user to keep these keys on their device & then sing them on the client side? Also would I be able to use cardano-addresses to create recovery keys for these wallets created with cardano-cli?
    – CoderMan
    Apr 15, 2022 at 17:11
  • 1
    My knowledge is now dated, but when I was trying to do this the logic was to build on your machine with cli, and sign on their machine. Nami (and others) have the capability of signing and submitting external Txs. They cannot however build or even verify.
    – waalge
    Apr 16, 2022 at 10:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.