3

I am reading the different options for a cardano wallet: https://developers.cardano.org/docs/integrate-cardano/creating-wallet-faucet

Why should I use the cardano-wallet cli or api if all the tutorials like minting an NFT are using the cardano-cli? Are there functionalities that only cardano-wallet can offer? If so which ones.

1

cardano-cli utility

cardano-cli v1.30.1 commands are rather era-based commands. As we all know the Shelley era brought staking for ADA holders. cardano-cli provides a "lower"-level information than "higher"-level cardano-wallet.

If you need a hint on any command or sub-command, feel free to use the help in any situation. For example to find out how to undelegate from staking pool, type:

cardano-cli stake-address deregistration-certificate --help

You'll see four available flags with a strong type of each property:

--stake-verification-key STRING
--stake-verification-key-file FILE
--stake-script-file FILE
--out-file FILE

Here are the list of available commands (that have corresponding sub-commands and flags):

  • address
  • stake-address
  • key
  • transaction
  • node
  • stake-pool
  • query
  • genesis
  • governance
  • text-view
  • byron (Byron era specific commands)
  • help
  • version

Among other things, there's a cardano-node run command for running a node. To run a node, use the following code:

cardano-node run \                    
    --topology ~/cardano/config/mainnet-topology.json \
    --database-path ~/cardano/db/ \
    --socket-path ~/cardano/db/node.socket \
    --host-addr 127.0.0.1 \
    --port 1495 \
    --config ~/cardano/config/mainnet-config.json

cardano-wallet utility

cardano-wallet v2021-09-29 commands are definitely wallet-based commands. To use transaction commands you need both a node and a server running. To generate a private key you need neither running node nor running server (i.e offline and not-synced).

Command Line info says:

The CLI is a proxy to the wallet server, which is required for most commands. Commands are turned into corresponding API calls, and submitted to an up-and-running server. Some commands do not require an active server and can be run offline (e.g. 'recovery-phrase generate').

Here are the list of available commands (that have corresponding sub-commands and flags):

  • serve
  • recovery-phrase
  • key
  • wallet
  • address
  • transaction
  • network
  • stake-pool
  • help
  • version

To run a server, use the following code:

cardano-wallet serve \                        
    --port 8090 \
    --mainnet \
    --database ~/cardano/wallets/db \
    --node-socket $CARDANO_NODE_SOCKET_PATH
1

On the one hand, the cardano-wallet provides high level commands and automations, you can choose a token to send ore choose a specific addresses to use... On the other hand, the cardano-cli provides low level commands, meaning that you have to do everything manually, but at least you know exactly the commands you are performing.

There is nothing you cannot do with cardano-cli that you can do with cardano-wallet.

To start, I recommand you to explore all the commands of cardano-cli to dive a little more into the cardano environment and then go back up to cardano-wallet, once you know the different steps and corresponding commands (for example for your NFT minting).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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