{
  "description": "Build and deploy Soroban smart contracts with the Stellar CLI. Other subcommands (keys, tx, invoke, network) are not covered; signing options other than the source account are left out.",
  "name": "stellar",
  "subcommands": [
    {
      "name": "contract",
      "subcommands": [
        {
          "name": "build",
          "description": "Build every cdylib crate in the Cargo manifest for the wasm32 target.",
          "options": [
            {
              "names": [
                "--manifest-path"
              ],
              "description": "Cargo.toml path",
              "args": {
                "name": "manifest_path",
                "isOptional": false,
                "template": "filepaths"
              }
            },
            {
              "names": [
                "--package"
              ],
              "description": "Package",
              "args": {
                "name": "package",
                "isOptional": false
              }
            },
            {
              "names": [
                "--profile"
              ],
              "description": "Cargo profile",
              "args": {
                "name": "profile",
                "isOptional": false
              }
            },
            {
              "names": [
                "--out-dir"
              ],
              "description": "Copy wasm files to",
              "args": {
                "name": "out_dir",
                "isOptional": false,
                "template": "folders"
              }
            },
            {
              "names": [
                "--features"
              ],
              "description": "Features",
              "args": {
                "name": "features",
                "isOptional": false
              }
            },
            {
              "names": [
                "--all-features"
              ],
              "description": "All features"
            },
            {
              "names": [
                "--locked"
              ],
              "description": "Locked Cargo.lock"
            },
            {
              "names": [
                "--print-commands-only"
              ],
              "description": "Print commands only"
            }
          ]
        },
        {
          "name": "deploy",
          "description": "Deploy a wasm contract to a network. Sends a signed transaction using the source account.",
          "options": [
            {
              "names": [
                "--wasm"
              ],
              "description": "WASM file",
              "args": {
                "name": "wasm",
                "isOptional": false,
                "template": "filepaths"
              }
            },
            {
              "names": [
                "--wasm-hash"
              ],
              "description": "Installed WASM hash",
              "args": {
                "name": "wasm_hash",
                "isOptional": false
              }
            },
            {
              "names": [
                "--source-account",
                "-s"
              ],
              "description": "An identity name or public key. Do not paste a secret key here; it would land in shell history.",
              "args": {
                "name": "source_account",
                "description": "An identity name or public key. Do not paste a secret key here; it would land in shell history.",
                "isOptional": false
              }
            },
            {
              "names": [
                "--network",
                "-n"
              ],
              "description": "Network",
              "args": {
                "name": "network",
                "isOptional": false,
                "suggestions": [
                  {
                    "name": "testnet",
                    "description": "Testnet"
                  },
                  {
                    "name": "mainnet",
                    "description": "Mainnet"
                  }
                ]
              }
            },
            {
              "names": [
                "--alias"
              ],
              "description": "Overwrites an existing alias without asking.",
              "args": {
                "name": "alias",
                "description": "Overwrites an existing alias without asking.",
                "isOptional": false
              },
              "isDangerous": true
            },
            {
              "names": [
                "--rpc-url"
              ],
              "description": "RPC URL",
              "args": {
                "name": "rpc_url",
                "isOptional": false
              }
            },
            {
              "names": [
                "--network-passphrase"
              ],
              "description": "Network passphrase",
              "args": {
                "name": "network_passphrase",
                "isOptional": false
              }
            },
            {
              "names": [
                "--build-only"
              ],
              "description": "Build transaction only"
            },
            {
              "names": [
                "--ignore-checks",
                "-i"
              ],
              "description": "Ignore safety checks"
            }
          ]
        }
      ]
    }
  ]
}
