This is the official command line interface for Indy SDK, which provides a distributed-ledger-based foundation for self-sovereign identity. It provides the commands to:
- Manage wallets
- Manage pool configurations
- Manage DIDs
- Sending transactions to distributed ledger
The Indy SDK release process defines the following release channels:
master
- development builds for each push to master branch.rc
- release candidates.stable
- stable releases.
Please refer to our release workflow for more details.
It is recommended to install the Indy-CLI with APT:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys CE7709D068DB5E88
sudo add-apt-repository "deb https://repo.sovrin.org/sdk/deb (xenial|bionic) {release channel}"
sudo apt-get update
sudo apt-get install -y indy-cli
indy-cli
- (xenial|bionic) xenial for 16.04 Ubuntu and bionic for 18.04 Ubuntu.
- {release channel} must be replaced with master, rc or stable to define corresponded release channel.
- Go to https://repo.sovrin.org/windows/indy-cli/{release-channel}.
- Download last version of indy-cli.
- Unzip archives to the directory where you want to save working library.
- After unzip you will get next structure of files:
Your working directory
indy-cli.exe
indy.dll
libeay32md.dll
libsodium.dll
libzmq.dll
ssleay32md.dll
- Add path to the directory to PATH environment variable.
- Run
indy-cli.exe
to start Indy-CLI.
- Go to https://repo.sovrin.org/macos/indy-cli/{release-channel}.
- Download last version of indy-cli.
- Unzip archives to the directory where you want to save working library.
- After unzip you will get next structure of files:
Your working directory
indy-cli
executable file
- Install Libindy
- Download and unzip libindy from https://repo.sovrin.org/macos/libindy/{release-channel}.
- After unzip you will get
lib
folder which contains libindy binary. - Either add directory path to
LIBRARY_PATH
env variable or movelibindy.dylib
to/usr/lib
folder.
- Run
indy-cli
to start Indy-CLI.
- Go to https://repo.sovrin.org/rpm/indy-cli/{release-channel}.
- Download and unzip the last version of library.
- Install with
rpm -i indy-cli-version.rpm
. - Run
indy-cli
to start Indy-CLI.
CLI supports 2 execution modes:
- Interactive. In this mode CLI reads commands from terminal interactively. To start this mode just run
indy-cli
without params. - Batch. In this mode all commands will be read from text file or pipe and executed in series. To start this mode run
indy-cli <path-to-text-file>
. Batch mode supports the same commands as interactive mode. Note that by default if some command finishes with an error batch execution will be interrupted. To prevent this start command with-
. For example,-wallet create test
. In this case the result of this command will be ignored. Comments can also be made by beginning the line with a#
.
The most simple way is just start cli by indy-cli
command and put help
command. Also you can look to
Indy CLI Design doc that contains the list of commands and architecture overview.
- -h and --help - Print usage.
- --logger-config - Init logger according to a config file (default no logger initialized).
- --plugins - Load plugins in Libindy (usage: :,...,:).
- --config - Define config file for CLI initialization. A config file can contain the following fields:
- plugins - a list of plugins to load in Libindy (is equal to usage of "--plugins" option).
- loggerConfig - path to a logger config file (is equal to usage of "--logger-config" option).
- taaAcceptanceMechanism - transaction author agreement acceptance mechanism to be used when sending write transactions to the Ledger.
It is possible to import did's stored in the wallet of deprecated python-based CLI tool. To achieve this user needs to perform the following steps:
- Execute script on machine with installed old python-based CLI.
This script will export DIDs stored in specified wallet into the result file. By default, this file creates in current folder and has the following name:
indy_old_cli_export_dids [-e <env name>] -w <wallet name> [-f <path to the result file>]
<env name>_<wallet name>.exp_wallet
- Install Indy-Cli
- Import generated file into libindy wallet by using Indy CLI
- Run Indy CLI
- Open new target wallet (create if needed) in CLI
- Run
did import <path to the file created on first step>
Indy-CLI depends on term
rust library that has a system dependency on terminfo database.
That is why CLI Debian package additionally installs libncursesw5-dev
library.
More about it read here at Packaging and Distributing
section.