A Cardano wallet built for developers and power users.
You'll need to have the following components already available in your system.
The following instructions show how to build and install CShell from source code.
Use git to clone CShell source-code from our Github repository:
git clone https://github.com/txpipe/cshell.gitUse cargo to compile and install the generated binary for your user profile:
cargo install --all-features --path .Once you completed the above steps, you should be able to call CShell directly from the command line:
cshell --help(Coming soon)
CShell can be run as a standalone executable. The Github release page includes the binaries for different OS and architectures. It's a self-contained, single-file binary that can be downloaded directly.
For simplicity, we also provide diferent installers for supported platform to automate the installation process. Regardless of the installer, the outcome should be the same, choose the one that fits your needs.
You can run the following command line script to install CShell on supported systems (Mac / Linux)
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/txpipe/cshell/releases/latest/download/cshell-installer.sh | shYou can use Powershell to install CShell on Windows systems.
powershell -c "irm https://github.com/txpipe/cshell/releases/latest/download/cshell-installer.ps1 | iex"You can use Homebrew to install the latest version of CShell in supported systems (Mac / Linux)
brew install txpipe/tap/cshell| File | Platform |
|---|---|
| cshell-aarch64-apple-darwin.tar.xz | Apple Silicon macOS |
| cshell-x86_64-apple-darwin.tar.xz | Intel macOS |
| cshell-x86_64-pc-windows-msvc.zip | x64 Windows |
| cshell-x86_64-unknown-linux-gnu.tar.xz | x64 Linux |
| cshell-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux |
To run CShell you need, at least, 1 provider and 1 wallet.
To add a wallet, you can do the following:
cargo run -- wallet createThis will prompt you for a a name and a password. Keep in mind that losing the password means loosing the private key, because it is encrypted.
To add a provider, you can do something similar:
cargo run -- provider createThis will prompt you for a name, a kind (only UTxORPC supported), whether it is for mainnet or testnet, a URL and the possibility to add headers.
If you have a Demeter port you would have to set the URL as
https://{host}and on putdmtr-api-key:YOUR_API_KEYon the headers.
To inspect the current wallet's UTxOs in JSON format, run:
cargo run -- wallet utxosUse --output-format to override the default JSON response if you prefer a table view instead.
In the examples folder you can find scripts demonstrating advanced capabilities.
This example shows how to send transactions to multiple recipients in a batch.
Location: examples/batch-transactions/
Usage:
./transfer.sh <sender_wallet> <receiver_wallets_list> <lovelace_amount>Arguments:
sender_wallet: Name of the wallet sending the funds (e.g.,alice)receiver_wallets_list: Comma-separated list of recipient wallet names (e.g.,bob,charlie,mark)lovelace_amount: Amount in lovelaces to send to each recipient (e.g.,1000000)
Example:
./transfer.sh alice bob,charlie,mark 1000000This will send 1,000,000 lovelaces from Alice's wallet to Bob, Charlie, and Mark individually.
This example demonstrates how to schedule recurring transactions using cron expressions.
Location: examples/scheduled-tasks/
Usage:
./transfer.sh <sender_wallet> <receiver_wallet> <lovelace_amount> <cron_string>Arguments:
sender_wallet: Name of the wallet sending the funds (e.g.,alice)receiver_wallet: Name of the recipient wallet (e.g.,bob)lovelace_amount: Amount in lovelaces to send (e.g.,1000000)cron_string: Cron schedule expression in the format'minute hour day month weekday'
Example:
./transfer.sh alice bob 1000000 '0 */2 * * *'This will schedule a transfer of 1,000,000 lovelaces from Alice to Bob every 2 hours.
This example shows how to interact with a protocol that requires several parameters, specifically creating a ship in Asteria.
Location: examples/complex-transaction/
Usage:
./create-ship.sh <player_wallet> <pos_x> <pos_y>Arguments:
player_wallet: Name of the player's wallet (e.g.,alice)pos_x: X coordinate for the ship position (integer)pos_y: Y coordinate for the ship position (integer)
Example:
./create-ship.sh alice 25 25This will create a new ship for Alice at coordinates (25, 25) in Asteria.
Note: you need to use a provider with the Cardano preview testnet in order to submit this transaction