Stellar CLI Manual
This document contains the help content for the stellar
command-line program.
stellar
Work seamlessly with Stellar accounts, contracts, and assets from the command line.
- Generate and manage keys and accounts
- Build, deploy, and interact with contracts
- Deploy asset contracts
- Stream events
- Start local testnets
- Decode, encode XDR
- More!
For additional information see:
- Stellar Docs: https://developers.stellar.org
- Smart Contract Docs: https://developers.stellar.org/docs/build/smart-contracts/overview
- CLI Docs: https://developers.stellar.org/docs/tools/developer-tools/cli/stellar-cli
To get started generate a new identity:
stellar keys generate alice
Use keys with the --source
flag in other commands.
Commands that work with contracts are organized under the contract
subcommand. List them:
stellar contract --help
Use contracts like a CLI:
stellar contract invoke --id CCR6QKTWZQYW6YUJ7UP7XXZRLWQPFRV6SWBLQS4ZQOSAF4BOUD77OTE2 --source alice --network testnet -- --help
Anything after the --
double dash (the "slop") is parsed as arguments to the contract-specific CLI, generated on-the-fly from the contract schema. For the hello world example, with a function called hello
that takes one string argument to
, here's how you invoke it:
stellar contract invoke --id CCR6QKTWZQYW6YUJ7UP7XXZRLWQPFRV6SWBLQS4ZQOSAF4BOUD77OTE2 --source alice --network testnet -- hello --to world
Usage: stellar [OPTIONS] <COMMAND>
Subcommands:
contract
— Tools for smart contract developersevents
— Watch the network for contract eventsenv
— Prints the current environment variables or defaults to the stdout, in a format that can be used as .env file. Environment variables have precedency over defaultskeys
— Create and manage identities including keys and addressesnetwork
— Configure connection to networkscontainer
— Start local networks in containerssnapshot
— Download a snapshot of a ledger from an archivetx
— Sign, Simulate, and Send transactionsxdr
— Decode and encode XDRcompletion
— Print shell completion code for the specified shellcache
— Cache for transactions and contract specsversion
— Print version information
Options:
--global
— Use global config--config-dir <CONFIG_DIR>
— Location of config directory, default is "."-f
,--filter-logs <FILTER_LOGS>
— Filter logs output. To turn onstellar_cli::log::footprint=debug
or off=off
. Can also use env varRUST_LOG
-q
,--quiet
— Do not write logs to stderr includingINFO
-v
,--verbose
— Log DEBUG events--very-verbose
— Log DEBUG and TRACE events--list
— List installed plugins. E.g.stellar-hello
--no-cache
— Do not cache your simulations and transactions
stellar contract
Tools for smart contract developers
Usage: stellar contract <COMMAND>
Subcommands:
asset
— Utilities to deploy a Stellar Asset Contract or get its idalias
— Utilities to manage contract aliasesbindings
— Generate code client bindings for a contractbuild
— Build a contract from sourceextend
— Extend the time to live ledger of a contract-data ledger entrydeploy
— Deploy a wasm contractfetch
— Fetch a contract's Wasm binaryid
— Generate the contract id for a given contract or assetinfo
— Access info about contractsinit
— Initialize a Soroban contract projectinspect
— (Deprecated in favor ofcontract info
subcommands) Inspect a WASM file listing contract functions, meta, etcinstall
— Install a WASM file to the ledger without creating a contract instanceinvoke
— Invoke a contract functionoptimize
— Optimize a WASM fileread
— Print the current value of a contract-data ledger entryrestore
— Restore an evicted value for a contract-data legder entry
stellar contract asset
Utilities to deploy a Stellar Asset Contract or get its id
Usage: stellar contract asset <COMMAND>
Subcommands:
id
— Get Id of builtin Soroban Asset Contract. Deprecated, usestellar contract id asset
insteaddeploy
— Deploy builtin Soroban Asset Contract
stellar contract asset id
Get Id of builtin Soroban Asset Contract. Deprecated, use stellar contract id asset
instead
Usage: stellar contract asset id [OPTIONS] --asset <ASSET>
Options:
--asset <ASSET>
— ID of the Stellar classic asset to wrap, e.g. "USDC:G...5"--rpc-url <RPC_URL>
— RPC server endpoint--rpc-header <RPC_HEADERS>
— RPC Header(s) to include in requests to the RPC provider--network-passphrase <NETWORK_PASSPHRASE>
— Network passphrase to sign the transaction sent to the rpc server--network <NETWORK>
— Name of network to use from config--global
— Use global config--config-dir <CONFIG_DIR>
— Location of config directory, default is "."
stellar contract asset deploy
Deploy builtin Soroban Asset Contract
Usage: stellar contract asset deploy [OPTIONS] --asset <ASSET> --source-account <SOURCE_ACCOUNT>
Options:
-
--asset <ASSET>
— ID of the Stellar classic asset to wrap, e.g. "USDC:G...5" -
--rpc-url <RPC_URL>
— RPC server endpoint -
--rpc-header <RPC_HEADERS>
— RPC Header(s) to include in requests to the RPC provider -
--network-passphrase <NETWORK_PASSPHRASE>
— Network passphrase to sign the transaction sent to the rpc server -
--network <NETWORK>
— Name of network to use from config -
--source-account <SOURCE_ACCOUNT>
— Account that where transaction originates from. Aliassource
. Can be an identity (--source alice), a public key (--source GDKW...), a muxed account (--source MDA…), a secret key (--source SC36…), or a seed phrase (--source "kite urban…"). If--build-only
or--sim-only
flags were NOT provided, this key will also be used to sign the final transaction. In that case, trying to sign with public key will fail -
--hd-path <HD_PATH>
— If using a seed phrase, which hierarchical deterministic path to use, e.g.m/44'/148'/{hd_path}
. Example:--hd-path 1
. Default:0
-
--global
— Use global config -
--config-dir <CONFIG_DIR>
— Location of config directory, default is "." -
--fee <FEE>
— fee amount for transaction, in stroops. 1 stroop = 0.0000001 xlmDefault value:
100
-
--cost
— Output the cost execution to stderr -
--instructions <INSTRUCTIONS>
— Number of instructions to simulate -
--build-only
— Build the transaction and only write the base64 xdr to stdout -
--sim-only
— (Deprecated) simulate the transaction and only write the base64 xdr to stdout
stellar contract alias
Utilities to manage contract aliases
Usage: stellar contract alias <COMMAND>
Subcommands:
remove
— Remove contract aliasadd
— Add contract aliasshow
— Show the contract id associated with a given aliasls
— List all aliases
stellar contract alias remove
Remove contract alias
Usage: stellar contract alias remove [OPTIONS] <ALIAS>
Arguments:
<ALIAS>
— The contract alias that will be removed
Options:
--global
— Use global config--config-dir <CONFIG_DIR>
— Location of config directory, default is "."--rpc-url <RPC_URL>
— RPC server endpoint--rpc-header <RPC_HEADERS>
— RPC Header(s) to include in requests to the RPC provider--network-passphrase <NETWORK_PASSPHRASE>
— Network passphrase to sign the transaction sent to the rpc server--network <NETWORK>
— Name of network to use from config
stellar contract alias add
Add contract alias
Usage: stellar contract alias add [OPTIONS] --id <CONTRACT_ID> <ALIAS>
Arguments:
<ALIAS>
— The contract alias that will be used
Options:
--global
— Use global config--config-dir <CONFIG_DIR>
— Location of config directory, default is "."--rpc-url <RPC_URL>
— RPC server endpoint--rpc-header <RPC_HEADERS>
— RPC Header(s) to include in requests to the RPC provider--network-passphrase <NETWORK_PASSPHRASE>
— Network passphrase to sign the transaction sent to the rpc server--network <NETWORK>
— Name of network to use from config--overwrite
— Overwrite the contract alias if it already exists--id <CONTRACT_ID>
— The contract id that will be associated with the alias
stellar contract alias show
Show the contract id associated with a given alias
Usage: stellar contract alias show [OPTIONS] <ALIAS>
Arguments:
<ALIAS>
— The contract alias that will be displayed
Options:
--global
— Use global config--config-dir <CONFIG_DIR>
— Location of config directory, default is "."--rpc-url <RPC_URL>
— RPC server endpoint--rpc-header <RPC_HEADERS>
— RPC Header(s) to include in requests to the RPC provider--network-passphrase <NETWORK_PASSPHRASE>
— Network passphrase to sign the transaction sent to the rpc server--network <NETWORK>
— Name of network to use from config
stellar contract alias ls
List all aliases
Usage: stellar contract alias ls [OPTIONS]
Options:
--global
— Use global config--config-dir <CONFIG_DIR>
— Location of config directory, default is "."
stellar contract bindings
Generate code client bindings for a contract
Usage: stellar contract bindings <COMMAND>
Subcommands:
json
— Generate Json Bindingsrust
— Generate Rust bindingstypescript
— Generate a TypeScript / JavaScript package
stellar contract bindings json
Generate Json Bindings
Usage: stellar contract bindings json --wasm <WASM>
Options:
--wasm <WASM>
— Path to wasm binary
stellar contract bindings rust
Generate Rust bindings
Usage: stellar contract bindings rust --wasm <WASM>
Options:
--wasm <WASM>
— Path to wasm binary
stellar contract bindings typescript
Generate a TypeScript / JavaScript package
Usage: stellar contract bindings typescript [OPTIONS] --output-dir <OUTPUT_DIR> --contract-id <CONTRACT_ID>
Options:
--wasm <WASM>
— Path to optional wasm binary--output-dir <OUTPUT_DIR>
— Where to place generated project--overwrite
— Whether to overwrite output directory if it already exists--contract-id <CONTRACT_ID>
— The contract ID/address on the network--global
— Use global config--config-dir <CONFIG_DIR>
— Location of config directory, default is "."--rpc-url <RPC_URL>
— RPC server endpoint--rpc-header <RPC_HEADERS>
— RPC Header(s) to include in requests to the RPC provider--network-passphrase <NETWORK_PASSPHRASE>
— Network passphrase to sign the transaction sent to the rpc server--network <NETWORK>
— Name of network to use from config
stellar contract build
Build a contract from source
Builds all crates that are referenced by the cargo manifest (Cargo.toml) that have cdylib as their crate-type. Crates are built for the wasm32 target. Unless configured otherwise, crates are built with their default features and with their release profile.
In workspaces builds all crates unless a package name is specified, or the command is executed from the sub-directory of a workspace crate.
To view the commands that will be executed, without executing them, use the --print-commands-only option.
Usage: stellar contract build [OPTIONS]
Options:
-
--manifest-path <MANIFEST_PATH>
— Path to Cargo.toml -
--package <PACKAGE>
— Package to buildIf omitted, all packages that build for crate-type cdylib are built.
-
--profile <PROFILE>
— Build with the specified profileDefault value:
release
-
--features <FEATURES>
— Build with the list of features activated, space or comma separated -
--all-features
— Build with the all features activated -
--no-default-features
— Build with the default feature not activated -
--out-dir <OUT_DIR>
— Directory to copy wasm files toIf provided, wasm files can be found in the cargo target directory, and the specified directory.
If ommitted, wasm files are written only to the cargo target directory.
-
--print-commands-only
— Print commands to build without executing them -
--meta <META>
— Add key-value to contract meta (adds the meta to thecontractmetav0
custom section)
stellar contract extend
Extend the time to live ledger of a contract-data ledger entry.
If no keys are specified the contract itself is extended.
Usage: stellar contract extend [OPTIONS] --ledgers-to-extend <LEDGERS_TO_EXTEND> --source-account <SOURCE_ACCOUNT>
Options:
-
--ledgers-to-extend <LEDGERS_TO_EXTEND>
— Number of ledgers to extend the entries -
--ttl-ledger-only
— Only print the new Time To Live ledger -
--id <CONTRACT_ID>
— Contract ID to which owns the data entries. If no keys provided the Contract's instance will be extended -
--key <KEY>
— Storage key (symbols only) -
--key-xdr <KEY_XDR>
— Storage key (base64-encoded XDR) -
--wasm <WASM>
— Path to Wasm file of contract code to extend -
--wasm-hash <WASM_HASH>
— Path to Wasm file of contract code to extend -
--durability <DURABILITY>
— Storage entry durabilityDefault value:
persistent
Possible values:
persistent
: Persistenttemporary
: Temporary
-
--rpc-url <RPC_URL>
— RPC server endpoint -
--rpc-header <RPC_HEADERS>
— RPC Header(s) to include in requests to the RPC provider -
--network-passphrase <NETWORK_PASSPHRASE>
— Network passphrase to sign the transaction sent to the rpc server -
--network <NETWORK>
— Name of network to use from config -
--source-account <SOURCE_ACCOUNT>
— Account that where transaction originates from. Aliassource
. Can be an identity (--source alice), a public key (--source GDKW...), a muxed account (--source MDA…), a secret key (--source SC36…), or a seed phrase (--source "kite urban…"). If--build-only
or--sim-only
flags were NOT provided, this key will also be used to sign the final transaction. In that case, trying to sign with public key will fail -
--hd-path <HD_PATH>
— If using a seed phrase, which hierarchical deterministic path to use, e.g.m/44'/148'/{hd_path}
. Example:--hd-path 1
. Default:0
-
--global
— Use global config -
--config-dir <CONFIG_DIR>
— Location of config directory, default is "." -
--fee <FEE>
— fee amount for transaction, in stroops. 1 stroop = 0.0000001 xlmDefault value:
100
-
--cost
— Output the cost execution to stderr -
--instructions <INSTRUCTIONS>
— Number of instructions to simulate -
--build-only
— Build the transaction and only write the base64 xdr to stdout -
--sim-only
— (Deprecated) simulate the transaction and only write the base64 xdr to stdout
stellar contract deploy
Deploy a wasm contract
Usage: stellar contract deploy [OPTIONS] --source-account <SOURCE_ACCOUNT> <--wasm <WASM>|--wasm-hash <WASM_HASH>> [-- <CONTRACT_CONSTRUCTOR_ARGS>...]
Arguments:
<CONTRACT_CONSTRUCTOR_ARGS>
— If provided, will be passed to the contract's__constructor
function with provided arguments for that function as--arg-name value
Options:
-
--wasm <WASM>
— WASM file to deploy -
--wasm-hash <WASM_HASH>
— Hash of the already installed/deployed WASM file -
--salt <SALT>
— Custom salt 32-byte salt for the token id -
--rpc-url <RPC_URL>
— RPC server endpoint -
--rpc-header <RPC_HEADERS>
— RPC Header(s) to include in requests to the RPC provider -
--network-passphrase <NETWORK_PASSPHRASE>
— Network passphrase to sign the transaction sent to the rpc server -
--network <NETWORK>
— Name of network to use from config -
--source-account <SOURCE_ACCOUNT>
— Account that where transaction originates from. Aliassource
. Can be an identity (--source alice), a public key (--source GDKW...), a muxed account (--source MDA…), a secret key (--source SC36…), or a seed phrase (--source "kite urban…"). If--build-only
or--sim-only
flags were NOT provided, this key will also be used to sign the final transaction. In that case, trying to sign with public key will fail -
--hd-path <HD_PATH>
— If using a seed phrase, which hierarchical deterministic path to use, e.g.m/44'/148'/{hd_path}
. Example:--hd-path 1
. Default:0
-
--global
— Use global config -
--config-dir <CONFIG_DIR>
— Location of config directory, default is "." -
--fee <FEE>
— fee amount for transaction, in stroops. 1 stroop = 0.0000001 xlmDefault value:
100
-
--cost
— Output the cost execution to stderr -
--instructions <INSTRUCTIONS>
— Number of instructions to simulate -
--build-only
— Build the transaction and only write the base64 xdr to stdout -
--sim-only
— (Deprecated) simulate the transaction and only write the base64 xdr to stdout -
-i
,--ignore-checks
— Whether to ignore safety checks when deploying contractsDefault value:
false
-
--alias <ALIAS>
— The alias that will be used to save the contract's id. Whenever used,--alias
will always overwrite the existing contract id configuration without asking for confirmation
stellar contract fetch
Fetch a contract's Wasm binary
Usage: stellar contract fetch [OPTIONS] --id <CONTRACT_ID>
Options:
--id <CONTRACT_ID>
— Contract ID to fetch-o
,--out-file <OUT_FILE>
— Where to write output otherwise stdout is used--global
— Use global config--config-dir <CONFIG_DIR>
— Location of config directory, default is "."--rpc-url <RPC_URL>
— RPC server endpoint--rpc-header <RPC_HEADERS>
— RPC Header(s) to include in requests to the RPC provider--network-passphrase <NETWORK_PASSPHRASE>
— Network passphrase to sign the transaction sent to the rpc server--network <NETWORK>
— Name of network to use from config
stellar contract id
Generate the contract id for a given contract or asset
Usage: stellar contract id <COMMAND>
Subcommands:
asset
— Deploy builtin Soroban Asset Contractwasm
— Deploy normal Wasm Contract
stellar contract id asset
Deploy builtin Soroban Asset Contract
Usage: stellar contract id asset [OPTIONS] --asset <ASSET>
Options:
--asset <ASSET>
— ID of the Stellar classic asset to wrap, e.g. "USDC:G...5"--rpc-url <RPC_URL>
— RPC server endpoint--rpc-header <RPC_HEADERS>
— RPC Header(s) to include in requests to the RPC provider--network-passphrase <NETWORK_PASSPHRASE>
— Network passphrase to sign the transaction sent to the rpc server--network <NETWORK>
— Name of network to use from config--global
— Use global config--config-dir <CONFIG_DIR>
— Location of config directory, default is "."
stellar contract id wasm
Deploy normal Wasm Contract
Usage: stellar contract id wasm [OPTIONS] --salt <SALT> --source-account <SOURCE_ACCOUNT>
Options:
--salt <SALT>
— ID of the Soroban contract--rpc-url <RPC_URL>
— RPC server endpoint--rpc-header <RPC_HEADERS>
— RPC Header(s) to include in requests to the RPC provider--network-passphrase <NETWORK_PASSPHRASE>
— Network passphrase to sign the transaction sent to the rpc server--network <NETWORK>
— Name of network to use from config--source-account <SOURCE_ACCOUNT>
— Account that where transaction originates from. Aliassource
. Can be an identity (--source alice), a public key (--source GDKW...), a muxed account (--source MDA…), a secret key (--source SC36…), or a seed phrase (--source "kite urban…"). If--build-only
or--sim-only
flags were NOT provided, this key will also be used to sign the final transaction. In that case, trying to sign with public key will fail--hd-path <HD_PATH>
— If using a seed phrase, which hierarchical deterministic path to use, e.g.m/44'/148'/{hd_path}
. Example:--hd-path 1
. Default:0
--global
— Use global config--config-dir <CONFIG_DIR>
— Location of config directory, default is "."
stellar contract info
Access info about contracts
Usage: stellar contract info <COMMAND>
Subcommands:
interface
— Output the interface of a contractmeta
— Output the metadata stored in a contractenv-meta
— Output the env required metadata stored in a contract
stellar contract info interface
Output the interface of a contract.
A contract's interface describes the functions, parameters, and types that the contract makes accessible to be called.
The data outputted by this command is a stream of SCSpecEntry
XDR values. See the type definitions in stellar-xdr. See also XDR data format.
Outputs no data when no data is present in the contract.
Usage: stellar contract info interface [OPTIONS] <--wasm <WASM>|--wasm-hash <WASM_HASH>|--id <CONTRACT_ID>>
Options:
-
--wasm <WASM>
— Wasm file to extract the data from -
--wasm-hash <WASM_HASH>
— Wasm hash to get the data for -
--id <CONTRACT_ID>
— Contract id or contract alias to get the data for -
--rpc-url <RPC_URL>
— RPC server endpoint -
--rpc-header <RPC_HEADERS>
— RPC Header(s) to include in requests to the RPC provider -
--network-passphrase <NETWORK_PASSPHRASE>
— Network passphrase to sign the transaction sent to the rpc server -
--network <NETWORK>
— Name of network to use from config -
--global
— Use global config -
--config-dir <CONFIG_DIR>
— Location of config directory, default is "." -
--output <OUTPUT>
— Format of the outputDefault value:
rust
Possible values:
rust
: Rust code output of the contract interfacexdr-base64
: XDR output of the info entryjson
: JSON output of the info entry (one line, not formatted)json-formatted
: Formatted (multiline) JSON output of the info entry
stellar contract info meta
Output the metadata stored in a contract.
A contract's meta is a series of key-value pairs that the contract developer can set with any values to provided metadata about the contract. The meta also contains some information like the version of Rust SDK, and Rust compiler version.
The data outputted by this command is a stream of SCMetaEntry
XDR values. See the type definitions in stellar-xdr. See also XDR data format.
Outputs no data when no data is present in the contract.
Usage: stellar contract info meta [OPTIONS] <--wasm <WASM>|--wasm-hash <WASM_HASH>|--id <CONTRACT_ID>>
Options:
-
--wasm <WASM>
— Wasm file to extract the data from -
--wasm-hash <WASM_HASH>
— Wasm hash to get the data for -
--id <CONTRACT_ID>
— Contract id or contract alias to get the data for -
--rpc-url <RPC_URL>
— RPC server endpoint -
--rpc-header <RPC_HEADERS>
— RPC Header(s) to include in requests to the RPC provider -
--network-passphrase <NETWORK_PASSPHRASE>
— Network passphrase to sign the transaction sent to the rpc server -
--network <NETWORK>
— Name of network to use from config -
--global
— Use global config -
--config-dir <CONFIG_DIR>
— Location of config directory, default is "." -
--output <OUTPUT>
— Format of the outputDefault value:
text
Possible values:
text
: Text output of the meta info entryxdr-base64
: XDR output of the info entryjson
: JSON output of the info entry (one line, not formatted)json-formatted
: Formatted (multiline) JSON output of the info entry
stellar contract info env-meta
Output the env required metadata stored in a contract.
Env-meta is information stored in all contracts, in the contractenvmetav0
WASM custom section, about the environment that the contract was built for. Env-meta allows the Soroban Env to know whether the contract is compatibility with the network in its current configuration.
The data outputted by this command is a stream of SCEnvMetaEntry
XDR values. See the type definitions in stellar-xdr. See also XDR data format.
Outputs no data when no data is present in the contract.
Usage: stellar contract info env-meta [OPTIONS] <--wasm <WASM>|--wasm-hash <WASM_HASH>|--id <CONTRACT_ID>>
Options:
-
--wasm <WASM>
— Wasm file to extract the data from -
--wasm-hash <WASM_HASH>
— Wasm hash to get the data for -
--id <CONTRACT_ID>
— Contract id or contract alias to get the data for -
--rpc-url <RPC_URL>
— RPC server endpoint -
--rpc-header <RPC_HEADERS>
— RPC Header(s) to include in requests to the RPC provider -
--network-passphrase <NETWORK_PASSPHRASE>
— Network passphrase to sign the transaction sent to the rpc server -
--network <NETWORK>
— Name of network to use from config -
--global
— Use global config -
--config-dir <CONFIG_DIR>
— Location of config directory, default is "." -
--output <OUTPUT>
— Format of the outputDefault value:
text
Possible values:
text
: Text output of the meta info entryxdr-base64
: XDR output of the info entryjson
: JSON output of the info entry (one line, not formatted)json-formatted
: Formatted (multiline) JSON output of the info entry
stellar contract init
Initialize a Soroban contract project.
This command will create a Cargo workspace project and add a sample Stellar contract. The name of the contract can be specified by --name
. It can be run multiple times with different names in order to generate multiple contracts, and files won't be overwritten unless --overwrite
is passed.
Usage: stellar contract init [OPTIONS] <PROJECT_PATH>
Arguments:
<PROJECT_PATH>
Options:
-
--name <NAME>
— An optional flag to specify a new contract's name.Default value:
hello-world
-
--overwrite
— Overwrite all existing files.
stellar contract inspect
(Deprecated in favor of contract info
subcommands) Inspect a WASM file listing contract functions, meta, etc
Usage: stellar contract inspect [OPTIONS] --wasm <WASM>
Options:
-
--wasm <WASM>
— Path to wasm binary -
--output <OUTPUT>
— Output just XDR in base64Default value:
docs
Possible values:
xdr-base64
: XDR of array of contract spec entriesxdr-base64-array
: Array of xdr of contract spec entriesdocs
: Pretty print of contract spec entries
-
--global
— Use global config -
--config-dir <CONFIG_DIR>
— Location of config directory, default is "."
stellar contract install
Install a WASM file to the ledger without creating a contract instance
Usage: stellar contract install [OPTIONS] --source-account <SOURCE_ACCOUNT> --wasm <WASM>
Options:
-
--rpc-url <RPC_URL>
— RPC server endpoint -
--rpc-header <RPC_HEADERS>
— RPC Header(s) to include in requests to the RPC provider -
--network-passphrase <NETWORK_PASSPHRASE>
— Network passphrase to sign the transaction sent to the rpc server -
--network <NETWORK>
— Name of network to use from config -
--source-account <SOURCE_ACCOUNT>
— Account that where transaction originates from. Aliassource
. Can be an identity (--source alice), a public key (--source GDKW...), a muxed account (--source MDA…), a secret key (--source SC36…), or a seed phrase (--source "kite urban…"). If--build-only
or--sim-only
flags were NOT provided, this key will also be used to sign the final transaction. In that case, trying to sign with public key will fail -
--hd-path <HD_PATH>
— If using a seed phrase, which hierarchical deterministic path to use, e.g.m/44'/148'/{hd_path}
. Example:--hd-path 1
. Default:0
-
--global
— Use global config -
--config-dir <CONFIG_DIR>
— Location of config directory, default is "." -
--fee <FEE>
— fee amount for transaction, in stroops. 1 stroop = 0.0000001 xlmDefault value:
100
-
--cost
— Output the cost execution to stderr -
--instructions <INSTRUCTIONS>
— Number of instructions to simulate -
--build-only
— Build the transaction and only write the base64 xdr to stdout -
--sim-only
— (Deprecated) simulate the transaction and only write the base64 xdr to stdout -
--wasm <WASM>
— Path to wasm binary -
-i
,--ignore-checks
— Whether to ignore safety checks when deploying contractsDefault value:
false
stellar contract invoke
Invoke a contract function
Generates an "implicit CLI" for the specified contract on-the-fly using the contract's schema, which gets embedded into every Soroban contract. The "slop" in this command, everything after the --
, gets passed to this implicit CLI. Get in-depth help for a given contract:
stellar contract invoke ... -- --help
Usage: stellar contract invoke [OPTIONS] --id <CONTRACT_ID> --source-account <SOURCE_ACCOUNT> [-- <CONTRACT_FN_AND_ARGS>...]
Arguments:
<CONTRACT_FN_AND_ARGS>
— Function name as subcommand, then arguments for that function as--arg-name value
Options:
-
--id <CONTRACT_ID>
— Contract ID to invoke -
--is-view
— View the result simulating and do not sign and submit transaction. Deprecated use--send=no
-
--rpc-url <RPC_URL>
— RPC server endpoint -
--rpc-header <RPC_HEADERS>
— RPC Header(s) to include in requests to the RPC provider -
--network-passphrase <NETWORK_PASSPHRASE>
— Network passphrase to sign the transaction sent to the rpc server -
--network <NETWORK>
— Name of network to use from config -
--source-account <SOURCE_ACCOUNT>
— Account that where transaction originates from. Aliassource
. Can be an identity (--source alice), a public key (--source GDKW...), a muxed account (--source MDA…), a secret key (--source SC36…), or a seed phrase (--source "kite urban…"). If--build-only
or--sim-only
flags were NOT provided, this key will also be used to sign the final transaction. In that case, trying to sign with public key will fail -
--hd-path <HD_PATH>
— If using a seed phrase, which hierarchical deterministic path to use, e.g.m/44'/148'/{hd_path}
. Example:--hd-path 1
. Default:0
-
--global
— Use global config -
--config-dir <CONFIG_DIR>
— Location of config directory, default is "." -
--fee <FEE>
— fee amount for transaction, in stroops. 1 stroop = 0.0000001 xlmDefault value:
100
-
--cost
— Output the cost execution to stderr -
--instructions <INSTRUCTIONS>
— Number of instructions to simulate -
--build-only
— Build the transaction and only write the base64 xdr to stdout -
--sim-only
— (Deprecated) simulate the transaction and only write the base64 xdr to stdout -
--send <SEND>
— Whether or not to send a transactionDefault value:
default
Possible values:
default
: Send transaction if simulation indicates there are ledger writes, published events, or auth required, otherwise return simulation resultno
: Do not send transaction, return simulation resultyes
: Always send transaction
stellar contract optimize
Optimize a WASM file
Usage: stellar contract optimize [OPTIONS] --wasm <WASM>
Options:
--wasm <WASM>
— Path to wasm binary--wasm-out <WASM_OUT>
— Path to write the optimized WASM file to (defaults to same location as --wasm with .optimized.wasm suffix)
stellar contract read
Print the current value of a contract-data ledger entry
Usage: stellar contract read [OPTIONS]
Options:
-
--output <OUTPUT>
— Type of output to generateDefault value:
string
Possible values:
string
: Stringjson
: Jsonxdr
: XDR
-
--id <CONTRACT_ID>
— Contract ID to which owns the data entries. If no keys provided the Contract's instance will be extended -
--key <KEY>
— Storage key (symbols only) -
--key-xdr <KEY_XDR>
— Storage key (base64-encoded XDR) -
--wasm <WASM>
— Path to Wasm file of contract code to extend -
--wasm-hash <WASM_HASH>
— Path to Wasm file of contract code to extend -
--durability <DURABILITY>
— Storage entry durabilityDefault value:
persistent
Possible values:
persistent
: Persistenttemporary
: Temporary
-
--rpc-url <RPC_URL>
— RPC server endpoint -
--rpc-header <RPC_HEADERS>
— RPC Header(s) to include in requests to the RPC provider -
--network-passphrase <NETWORK_PASSPHRASE>
— Network passphrase to sign the transaction sent to the rpc server -
--network <NETWORK>
— Name of network to use from config -
--global
— Use global config -
--config-dir <CONFIG_DIR>
— Location of config directory, default is "."
stellar contract restore
Restore an evicted value for a contract-data legder entry.
If no keys are specificed the contract itself is restored.
Usage: stellar contract restore [OPTIONS] --source-account <SOURCE_ACCOUNT>
Options:
-
--id <CONTRACT_ID>
— Contract ID to which owns the data entries. If no keys provided the Contract's instance will be extended -
--key <KEY>
— Storage key (symbols only) -
--key-xdr <KEY_XDR>
— Storage key (base64-encoded XDR) -
--wasm <WASM>
— Path to Wasm file of contract code to extend -
--wasm-hash <WASM_HASH>
— Path to Wasm file of contract code to extend -
--durability <DURABILITY>
— Storage entry durabilityDefault value:
persistent
Possible values:
persistent
: Persistenttemporary
: Temporary
-
--ledgers-to-extend <LEDGERS_TO_EXTEND>
— Number of ledgers to extend the entry -
--ttl-ledger-only
— Only print the new Time To Live ledger -
--rpc-url <RPC_URL>
— RPC server endpoint -
--rpc-header <RPC_HEADERS>
— RPC Header(s) to include in requests to the RPC provider -
--network-passphrase <NETWORK_PASSPHRASE>
— Network passphrase to sign the transaction sent to the rpc server -
--network <NETWORK>
— Name of network to use from config -
--source-account <SOURCE_ACCOUNT>
— Account that where transaction originates from. Aliassource
. Can be an identity (--source alice), a public key (--source GDKW...), a muxed account (--source MDA…), a secret key (--source SC36…), or a seed phrase (--source "kite urban…"). If--build-only
or--sim-only
flags were NOT provided, this key will also be used to sign the final transaction. In that case, trying to sign with public key will fail -
--hd-path <HD_PATH>
— If using a seed phrase, which hierarchical deterministic path to use, e.g.m/44'/148'/{hd_path}
. Example:--hd-path 1
. Default:0
-
--global
— Use global config -
--config-dir <CONFIG_DIR>
— Location of config directory, default is "." -
--fee <FEE>
— fee amount for transaction, in stroops. 1 stroop = 0.0000001 xlmDefault value:
100
-
--cost
— Output the cost execution to stderr -
--instructions <INSTRUCTIONS>
— Number of instructions to simulate -
--build-only
— Build the transaction and only write the base64 xdr to stdout -
--sim-only
— (Deprecated) simulate the transaction and only write the base64 xdr to stdout
stellar events
Watch the network for contract events
Usage: stellar events [OPTIONS]
Options:
-
--start-ledger <START_LEDGER>
— The first ledger sequence number in the range to pull events https://developers.stellar.org/docs/learn/encyclopedia/network-configuration/ledger-headers#ledger-sequence -
--cursor <CURSOR>
— The cursor corresponding to the start of the event range -
--output <OUTPUT>
— Output formatting options for event streamDefault value:
pretty
Possible values:
pretty
: Colorful, human-oriented console outputplain
: Human-oriented console output without colorsjson
: JSON formatted console output
-
-c
,--count <COUNT>
— The maximum number of events to display (defer to the server-defined limit)Default value:
10
-
--id <CONTRACT_IDS>
— A set of (up to 5) contract IDs to filter events on. This parameter can be passed multiple times, e.g.--id C123.. --id C456..
, or passed with multiple parameters, e.g.--id C123 C456
.Though the specification supports multiple filter objects (i.e. combinations of type, IDs, and topics), only one set can be specified on the command-line today, though that set can have multiple IDs/topics.
-
--topic <TOPIC_FILTERS>
— A set of (up to 4) topic filters to filter event topics on. A single topic filter can contain 1-4 different segment filters, separated by commas, with an asterisk (*
character) indicating a wildcard segment.Example: topic filter with two segments:
--topic "AAAABQAAAAdDT1VOVEVSAA==,*"
Example: two topic filters with one and two segments each:
--topic "AAAABQAAAAdDT1VOVEVSAA==" --topic '*,*'
Note that all of these topic filters are combined with the contract IDs into a single filter (i.e. combination of type, IDs, and topics).
-
--type <EVENT_TYPE>
— Specifies which type of contract events to displayDefault value:
all
Possible values:
all
,contract
,system
-
--global
— Use global config -
--config-dir <CONFIG_DIR>
— Location of config directory, default is "." -
--rpc-url <RPC_URL>
— RPC server endpoint -
--rpc-header <RPC_HEADERS>
— RPC Header(s) to include in requests to the RPC provider -
--network-passphrase <NETWORK_PASSPHRASE>
— Network passphrase to sign the transaction sent to the rpc server -
--network <NETWORK>
— Name of network to use from config
stellar env
Prints the current environment variables or defaults to the stdout, in a format that can be used as .env file. Environment variables have precedency over defaults
Usage: stellar env [OPTIONS]
Options:
--global
— Use global config--config-dir <CONFIG_DIR>
— Location of config directory, default is "."
stellar keys
Create and manage identities including keys and addresses
Usage: stellar keys <COMMAND>
Subcommands:
add
— Add a new identity (keypair, ledger, macOS keychain)address
— Given an identity return its address (public key)fund
— Fund an identity on a test networkgenerate
— Generate a new identity with a seed phrase, currently 12 wordsls
— List identitiesrm
— Remove an identityshow
— Given an identity return its private keyuse
— Set the default identity that will be used on all commands. This allows you to skip--source-account
or setting a environment variable, while reusing this value in all commands that require it
stellar keys add
Add a new identity (keypair, ledger, macOS keychain)
Usage: stellar keys add [OPTIONS] <NAME>
Arguments:
<NAME>
— Name of identity
Options:
--secret-key
— Add usingsecret_key
Can provide withSOROBAN_SECRET_KEY
--seed-phrase
— Add using 12 word seed phrase to generatesecret_key
--global
— Use global config--config-dir <CONFIG_DIR>
— Location of config directory, default is "."
stellar keys address
Given an identity return its address (public key)
Usage: stellar keys address [OPTIONS] <NAME>
Arguments:
<NAME>
— Name of identity to lookup, default test identity used if not provided
Options:
--hd-path <HD_PATH>
— If identity is a seed phrase use this hd path, default is 0--global
— Use global config--config-dir <CONFIG_DIR>
— Location of config directory, default is "."
stellar keys fund
Fund an identity on a test network
Usage: stellar keys fund [OPTIONS] <NAME>
Arguments:
<NAME>
— Name of identity to lookup, default test identity used if not provided
Options:
--rpc-url <RPC_URL>
— RPC server endpoint--rpc-header <RPC_HEADERS>
— RPC Header(s) to include in requests to the RPC provider--network-passphrase <NETWORK_PASSPHRASE>
— Network passphrase to sign the transaction sent to the rpc server--network <NETWORK>
— Name of network to use from config--hd-path <HD_PATH>
— If identity is a seed phrase use this hd path, default is 0--global
— Use global config--config-dir <CONFIG_DIR>
— Location of config directory, default is "."
stellar keys generate
Generate a new identity with a seed phrase, currently 12 words
Usage: stellar keys generate [OPTIONS] <NAME>
Arguments:
<NAME>
— Name of identity
Options:
-
--no-fund
— Do not fund address -
--seed <SEED>
— Optional seed to use when generating seed phrase. Random otherwise -
-s
,--as-secret
— Output the generated identity as a secret key -
--global
— Use global config -
--config-dir <CONFIG_DIR>
— Location of config directory, default is "." -
--hd-path <HD_PATH>
— When generating a secret key, whichhd_path
should be used from the originalseed_phrase
-
-d
,--default-seed
— Generate the default seed phrase. Useful for testing. Equivalent to --seed 0000000000000000 -
--rpc-url <RPC_URL>
— RPC server endpoint -
--rpc-header <RPC_HEADERS>
— RPC Header(s) to include in requests to the RPC provider -
--network-passphrase <NETWORK_PASSPHRASE>
— Network passphrase to sign the transaction sent to the rpc server -
--network <NETWORK>
— Name of network to use from config -
--fund
— Fund generated key pairDefault value:
false
-
--overwrite
— Overwrite existing identity if it already exists
stellar keys ls
List identities
Usage: stellar keys ls [OPTIONS]
Options:
--global
— Use global config--config-dir <CONFIG_DIR>
— Location of config directory, default is "."-l
,--long
stellar keys rm
Remove an identity
Usage: stellar keys rm [OPTIONS] <NAME>
Arguments:
<NAME>
— Identity to remove
Options:
--global
— Use global config--config-dir <CONFIG_DIR>
— Location of config directory, default is "."
stellar keys show
Given an identity return its private key
Usage: stellar keys show [OPTIONS] <NAME>
Arguments:
<NAME>
— Name of identity to lookup, default is test identity
Options:
--hd-path <HD_PATH>
— If identity is a seed phrase use this hd path, default is 0--global
— Use global config--config-dir <CONFIG_DIR>
— Location of config directory, default is "."
stellar keys use
Set the default identity that will be used on all commands. This allows you to skip --source-account
or setting a environment variable, while reusing this value in all commands that require it
Usage: stellar keys use [OPTIONS] <NAME>
Arguments:
<NAME>
— Set the default network name
Options:
--global
— Use global config--config-dir <CONFIG_DIR>
— Location of config directory, default is "."
stellar network
Configure connection to networks
Usage: stellar network <COMMAND>
Subcommands:
add
— Add a new networkrm
— Remove a networkls
— List networksstart
— ⚠️ Deprecated: usestellar container start
insteadstop
— ⚠️ Deprecated: usestellar container stop
insteaduse
— Set the default network that will be used on all commands. This allows you to skip--network
or setting a environment variable, while reusing this value in all commands that require itcontainer
— ⚠️ Deprecated: usestellar container
instead
stellar network add
Add a new network
Usage: stellar network add [OPTIONS] --rpc-url <RPC_URL> --network-passphrase <NETWORK_PASSPHRASE> <NAME>
Arguments:
<NAME>
— Name of network
Options:
--rpc-url <RPC_URL>
— RPC server endpoint--rpc-header <RPC_HEADERS>
— Optional header (e.g. API Key) to include in requests to the RPC--network-passphrase <NETWORK_PASSPHRASE>
— Network passphrase to sign the transaction sent to the rpc server--global
— Use global config--config-dir <CONFIG_DIR>
— Location of config directory, default is "."
stellar network rm
Remove a network
Usage: stellar network rm [OPTIONS] <NAME>
Arguments:
<NAME>
— Network to remove
Options:
--global
— Use global config--config-dir <CONFIG_DIR>
— Location of config directory, default is "."
stellar network ls
List networks
Usage: stellar network ls [OPTIONS]
Options:
--global
— Use global config--config-dir <CONFIG_DIR>
— Location of config directory, default is "."-l
,--long
— Get more info about the networks
stellar network start
⚠️ Deprecated: use stellar container start
instead
Start network
Start a container running a Stellar node, RPC, API, and friendbot (faucet).
stellar network start NETWORK [OPTIONS]
By default, when starting a testnet container, without any optional arguments, it will run the equivalent of the following docker command:
docker run --rm -p 8000:8000 --name stellar stellar/quickstart:testing --testnet --enable rpc,horizon
Usage: stellar network start [OPTIONS] <NETWORK>
Arguments:
-
<NETWORK>
— Network to startPossible values:
local
,testnet
,futurenet
,pubnet
Options:
-
-d
,--docker-host <DOCKER_HOST>
— Optional argument to override the default docker host. This is useful when you are using a non-standard docker host path for your Docker-compatible container runtime, e.g. Docker Desktop defaults to $HOME/.docker/run/docker.sock instead of /var/run/docker.sock -
--name <NAME>
— Optional argument to specify the container name -
-l
,--limits <LIMITS>
— Optional argument to specify the limits for the local network only -
-p
,--ports-mapping <PORTS_MAPPING>
— Argument to specify theHOST_PORT:CONTAINER_PORT
mappingDefault value:
8000:8000
-
-t
,--image-tag-override <IMAGE_TAG_OVERRIDE>
— Optional argument to override the default docker image tag for the given network -
--protocol-version <PROTOCOL_VERSION>
— Optional argument to specify the protocol version for the local network only
stellar network stop
⚠️ Deprecated: use stellar container stop
instead
Stop a network started with network start
. For example, if you ran stellar network start local
, you can use stellar network stop local
to stop it.
Usage: stellar network stop [OPTIONS] <NAME>
Arguments:
<NAME>
— Container to stop
Options:
-d
,--docker-host <DOCKER_HOST>
— Optional argument to override the default docker host. This is useful when you are using a non-standard docker host path for your Docker-compatible container runtime, e.g. Docker Desktop defaults to $HOME/.docker/run/docker.sock instead of /var/run/docker.sock
stellar network use
Set the default network that will be used on all commands. This allows you to skip --network
or setting a environment variable, while reusing this value in all commands that require it
Usage: stellar network use [OPTIONS] <NAME>
Arguments:
<NAME>
— Set the default network name
Options:
--global
— Use global config--config-dir <CONFIG_DIR>
— Location of config directory, default is "."
stellar network container
⚠️ Deprecated: use stellar container
instead
Commands to start, stop and get logs for a quickstart container
Usage: stellar network container <COMMAND>
Subcommands:
logs
— Get logs from a running network containerstart
— Start a container running a Stellar node, RPC, API, and friendbot (faucet)stop
— Stop a network container started withstellar container start
stellar network container logs
Get logs from a running network container
Usage: stellar network container logs [OPTIONS] <NAME>
Arguments:
<NAME>
— Container to get logs from
Options:
-d
,--docker-host <DOCKER_HOST>
— Optional argument to override the default docker host. This is useful when you are using a non-standard docker host path for your Docker-compatible container runtime, e.g. Docker Desktop defaults to $HOME/.docker/run/docker.sock instead of /var/run/docker.sock
stellar network container start
Start a container running a Stellar node, RPC, API, and friendbot (faucet).
stellar container start NETWORK [OPTIONS]
By default, when starting a testnet container, without any optional arguments, it will run the equivalent of the following docker command:
docker run --rm -p 8000:8000 --name stellar stellar/quickstart:testing --testnet --enable rpc,horizon
Usage: stellar network container start [OPTIONS] <NETWORK>
Arguments:
-
<NETWORK>
— Network to startPossible values:
local
,testnet
,futurenet
,pubnet
Options:
-
-d
,--docker-host <DOCKER_HOST>
— Optional argument to override the default docker host. This is useful when you are using a non-standard docker host path for your Docker-compatible container runtime, e.g. Docker Desktop defaults to $HOME/.docker/run/docker.sock instead of /var/run/docker.sock -
--name <NAME>
— Optional argument to specify the container name -
-l
,--limits <LIMITS>
— Optional argument to specify the limits for the local network only -
-p
,--ports-mapping <PORTS_MAPPING>
— Argument to specify theHOST_PORT:CONTAINER_PORT
mappingDefault value:
8000:8000
-
-t
,--image-tag-override <IMAGE_TAG_OVERRIDE>
— Optional argument to override the default docker image tag for the given network -
--protocol-version <PROTOCOL_VERSION>
— Optional argument to specify the protocol version for the local network only
stellar network container stop
Stop a network container started with stellar container start
Usage: stellar network container stop [OPTIONS] <NAME>
Arguments:
<NAME>
— Container to stop