stellar-registry-cli 0.0.3

Stellar CLI plugin for publishing and deploying contracts
Documentation

stellar-registry-cli

Command line interface for managing smart contract deployments through the Stellar Registry system. This tool enables deploying and installing contracts that have been published to the Stellar Registry.

Installation

Install directly from the repository:

cargo install --git https://github.com/ahalabs/scaffold-stellar stellar-registry-cli

Commands

Deploy

Deploy a published contract with optional initialization parameters:

stellar registry deploy \
  --network <NETWORK_NAME> \
  --contract-name <NAME> \
  --wasm-name <NAME> \
  -- \
  [CONSTRUCTOR_ARGS...]

Options:

  • --contract-name: Name to give this contract instance
  • --wasm-name: Name of the published contract to deploy
  • CONSTRUCTOR_ARGS: Optional arguments if contract implements __constructor to deploy and initialize the contract

Install

Install a deployed as an alias to be used by stellar-cli:

stellar registry install <CONTRACT_NAME>

Options:

  • CONTRACT_NAME: Name of the deployed contract to install

Configuration

stellar-cli provides a way to use a default config for accounts and networks:

stellar keys use alice
stellar network use testnet

The CLI can be configured through environment variables:

  • STELLAR_REGISTRY_CONTRACT_ID: Override the default registry contract ID
  • STELLAR_NETWORK: Network to use (e.g., "testnet", "mainnet")
  • STELLAR_RPC_URL: Custom RPC endpoint (default: https://soroban-testnet.stellar.org:443)
  • STELLAR_NETWORK_PASSPHRASE: Network passphrase (default: Test SDF Network ; September 2015)
  • STELLAR_ACCOUNT: Source account to use

These variables can also be in a .env file in the current working directory.

Example Usage

  1. Deploy a token contract:
stellar registry deploy \
  --contract-name my-token \
  --wasm-name token \
  initialize \
  --name "My Token" \
  --symbol "MTK" \
  --decimals 7
  1. Install the deployed contract:
stellar registry install my-token

Then can interact with it the contract with stellar-cli:

stellar contract invoke --id my-token -- --help

Transitioning to Mainnet

Once you are satisfied with your contract you can publish and deploy on Mainnet.

The first step is adding Mainnet to your stellar-cli. See the reccommend list of RPC provides here

Then you must add it with the following command:

stellar network add mainnet --network-passphrase "Public Global Stellar Network ; September 2015" --rpc-url <FROM_LIST>

Then make it your default

stellar network use mainnet

or if using a bash like shell to set it for just the current session:

export STELLAR_NETWORK=mainnet

or if while in the current directory:

echo STELLAR_NETWORK=mainnet >> .env

Publishing and then deploying

Publishing and deploying are exactly the same!

See Also