Meroctl
Meroctl is a command-line tool that enables you to interact with your Calimero node directly from the shell.
Installation
You can choose to install meroctl
using either the installation script or
Homebrew.
- Homebrew
- Installation Script
If you use Homebrew, you can install meroctl
directly with the following
steps:
Steps​
-
Add the Calimero Homebrew tap:
brew tap calimero-network/homebrew-tap
-
Install
merod
:brew install meroctl
-
Verify the installation:
meroctl --version
If the version number appears, the installation was successful.
The installation script supports multiple terminal environments and will automatically configure your PATH based on your shell.
Steps​
-
Open your terminal and run:
curl -sSf https://raw.githubusercontent.com/calimero-network/core/master/scripts/install-meroctl.sh | bash
-
Source the updated PATH:
source <your-shell-config-file>
Replace
<your-shell-config-file>
with.bashrc
,.zshrc
, or the relevant configuration file for your shell. -
Verify the installation:
meroctl --version
If the version number appears, the installation was successful.
Notes for Shell Environments​
The script automatically updates your PATH based on your shell configuration:
- Bash: Updates
.bashrc
. - Zsh: Updates
.zshrc
. - Fish: Modifies
~/.config/fish/config.fish
. - Csh/Tcsh: Updates
.cshrc
.
To apply the changes immediately, use the source
command as described in step
2 above.
Usage​
meroctl [OPTIONS] --node-name <NAME> <COMMAND>
Commands:​
app
Command for managing applicationscontext
Command for managing contextsidentity
Command for managing applicationsproxy
Command for managing proxy contractcall
Executing read and write RPC callspeers
Show a number of connected peersbootstrap
Setup two nodes inside the same contexthelp
Print this message or the help of the given subcommand(s)
Run help to get more information about the available options and commands.
meroctl --help
Options:​
--home <PATH>
Directory for config and data-n
,--node-name <NAME>
Name of node-h
,--help
Print help-output-format <FORMAT>
[default: plain-text] [possible values: json, plain-text]-V
,--version
Print version
Default location of the config and data directory is ~/.calimero
. You can
change the location by using the --home
option.
All of the communication with your node through the meroctl CLI is protected by your nodes private key.
Examples:​
Command | Description |
---|---|
meroctl --node-name <NAME> app <COMMAND> | Command for managing applications |
meroctl --node-name <NAME> context <COMMAND> | Command for managing contexts |
meroctl --node-name <NAME> identity <COMMAND> | Command for managing identities |
meroctl --node-name <NAME> proxy <COMMAND> | Command for managing proxy contract |
meroctl --node-name <NAME> call [OPTIONS] --as <EXECUTOR> <CONTEXT_ID> <METHOD> | Executing read and write RPC calls |
Manage Applications​
meroctl --node-name <NAME> app <COMMAND>
Commands:
get
Fetch application detailsinstall
Install an applicationlist
List installed applications
Manage Contexts​
meroctl --node-name <NAME> context <COMMAND>
Commands:
-
list
List all contexts -
create
Create a new context -
join
Join an application context -
invite
Create invitation to a context for a invitee -
get
Fetch details about the contextget
subcommands-
info
Get context information -
client-keys
Get client keys -
storage
Get storage information -
identities (-owned)
Get all identities in the context. Use--owned
to get only owned identitiesmeroctl --node-name <NAME> context get <contextId> <SUBCOMMAND>
-
-
delete
Delete an context -
watch
Watch events from a context -
update
Update app in context -
peers
Show a number of connected peers
Manage Identities​
meroctl --node-name <NAME> identity <COMMAND>
Commands:
generate
Generate public/private key pair used for context identity
Command for managing proxy contract​
meroctl --node-name <NAME> proxy <COMMAND>
Commands:
get
Fetch details about the proxy contract
Show a number of connected peers​
meroctl --node-name <NAME> peers
Executing read and write RPC calls​
meroctl --node-name <NAME> call [OPTIONS] --as <EXECUTOR> <CONTEXT_ID> <METHOD>
Arguments:
<CONTEXT_ID>
ContextId of the context<METHOD>
Method to fetch details
Options:
--args <ARGS>
JSON arguments to pass to the method--as <EXECUTOR>
Public key of the executor--id <ID>
Id of the RPC execute call [default: dontcare]
Setup two nodes inside the same context​
meroctl --node-name <NAME> bootstrap <COMMAND> --merod-path <MEROD_PATH> --protocol <PROTOCOL> --app-path [APP_PATH]
Command initializes and run node1
and node2
in the same context.
Arguments:
<MEROD_PATH>
Full path to merod binary.<PROTOCOL>
One of supported protocols for context creation. (e.g. near, starknet, icp)<APP_PATH>
Path to the app wasm file. If not specified, the default core-template-app will be used
Commands:
start
: Start bootstrap process