Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
stellar-registry-cli
Command line interface for managing smart contract deployments through the Stellar Registry system. This tool enables publishing, deploying, and installing contracts that have been published to the Stellar Registry.
Installation
Install from cargo:
Or cargo-binstall:
Commands
Publish
Publish a compiled contract to the Stellar Registry:
Options:
--wasm: Path to the compiled WASM file (required)--author (-a): Author address (optional, defaults to the configured source account)--wasm-name: Name for the published contract (optional, extracted from contract metadata if not provided)--binver: Binary version (optional, extracted from contract metadata if not provided)--dry-run: Simulate the publish operation without actually executing it (optional)
Deploy
Deploy a published contract with optional initialization parameters:
Options:
--contract-name: Name to give this contract instance (required)--wasm-name: Name of the published contract to deploy (required)--version: Specific version of the published contract to deploy (optional, defaults to most recent version)CONSTRUCTOR_FUNCTION: Optional constructor function name if contract implements initializationCONSTRUCTOR_ARGS: Optional arguments for the constructor function
Note: Use -- to separate CLI options from constructor function and arguments.
Install
Install a deployed contract as an alias to be used by stellar-cli:
Options:
CONTRACT_NAME: Name of the deployed contract to install (required)
Configuration
stellar-cli provides a way to use a default config for accounts and networks:
The CLI can be configured through environment variables:
STELLAR_REGISTRY_CONTRACT_ID: Override the default registry contract IDSTELLAR_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
- Publish a contract:
- Deploy the published contract with initialization:
- Install the deployed contract:
Then can interact with the contract with stellar-cli:
Transitioning to Mainnet
Before you are ready to publish and deploy your contract on mainnet you need to be confident that it is safe.
Contract Security
Make sure you are following security best practices recommended by the stellar docs.
Security tooling
You can use scout soroban to statically analyze your code for potential security issues.
Contract Auditing
For an additional level of security you can get your contract audited. Stellar has an Audit Bank that will help connect you with experienced audit providers and help cover the costs of the audit. See here if you qualify.
Publishing 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 recommended list of RPC providers here
Then you must add it with the following command:
Then make it your default
or if using a bash like shell to set it for just the current session:
or if while in the current directory:
Publishing and then deploying
Publishing and deploying are exactly the same as other networks, except now you use real lumens!
See Also
- Registry Guide - Detailed guide on using the registry system
- Environment Configuration - Configuration details for different networks