> ## Documentation Index
> Fetch the complete documentation index at: https://docs.initia.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Learn how to install and get started with the initiad command-line interface for interacting with Initia L1

The [initiad CLI](https://github.com/initia-labs/initia) is a command-line
interface for interacting with the Initia L1. This tool provides comprehensive
functionality for developers and users to manage accounts, query blockchain
data, submit transactions, and perform other operations.

## Overview

With initiad, you can:

* **Account Management**: Create, import, and manage blockchain accounts
* **Transaction Operations**: Send transactions, delegate tokens, and interact
  with smart contracts
* **Data Queries**: Query blockchain state, account balances, and transaction
  history
* **Validator Operations**: Create validators, delegate stakes, and manage
  governance proposals
* **Network Interaction**: Connect to different networks (mainnet, testnet,
  local)

<Info>
  initiad is built using the Cosmos SDK and provides a familiar interface for
  users of other Cosmos-based chains.
</Info>

## Prerequisites

Before installing initiad, ensure you have the following requirements:

* **Go**: Version 1.21 or higher
* **Git**: For cloning the repository
* **Make**: For building the binary

<Tip>
  You can verify your Go installation by running `go version` in your terminal.
</Tip>

## Installation

<Steps>
  <Step title="Clone the Repository">
    First, clone the initiad repository from GitHub:

    ```bash theme={null}
    git clone https://github.com/initia-labs/initia.git
    cd initia
    ```
  </Step>

  <Step title="Get Version and Checkout">
    Fetch the current network version and checkout the corresponding tag. Select the network that matches your intended use case:

    <CodeGroup>
      <CodeBlock filename="Mainnet" language="bash">
        # Get the current mainnet version and checkout

        export VERSION=$(curl -s https://rest.initia.xyz/cosmos/base/tendermint/v1beta1/node_info | jq -r '.application_version.version' | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+')
                    echo "Checking out version: $VERSION"
        git checkout \$VERSION
      </CodeBlock>

      <CodeBlock filename="Testnet" language="bash">
        # Get the current testnet version and checkout

        export VERSION=$(curl -s https://rest.testnet.initia.xyz/cosmos/base/tendermint/v1beta1/node_info | jq -r '.application_version.version' | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+')
                    echo "Checking out version: $VERSION"
        git checkout \$VERSION
      </CodeBlock>

      <CodeBlock filename="Manual" language="bash">
        # Manually set a specific version and checkout

        export VERSION=v0.5.7
        echo "Checking out version: $VERSION"
                    git checkout $VERSION
      </CodeBlock>
    </CodeGroup>

    <Warning>
      Always use a specific version tag rather than the main branch for production
      environments to ensure stability.
    </Warning>

    <Note>
      Mainnet and testnet may run different versions, so select the appropriate network endpoint.
    </Note>
  </Step>

  <Step title="Build and Install">
    Compile and install the initiad binary:

    ```bash theme={null}
    make install
    ```

    This will build the binary and install it to your `$GOPATH/bin` directory.
  </Step>
</Steps>

## Verification

After installation, verify that initiad is correctly installed and accessible:

### Check CLI Version

```bash theme={null}
initiad version
# Output: v0.5.7
```

### Verify Installation Path

```bash theme={null}
which initiad
# Output: /Users/username/go/bin/initiad (or your $GOPATH/bin path)
```

### Check Available Commands

```bash theme={null}
initiad --help
```

## Network Configuration

By default, initiad connects to the Initia mainnet. You can configure it to
connect to different networks:

<CodeGroup>
  <CodeBlock filename="Mainnet" language="bash">
    initiad config chain-id initia-1
    initiad config node [https://rpc.initia.xyz:443](https://rpc.initia.xyz:443)
  </CodeBlock>

  <CodeBlock filename="Testnet" language="bash">
    initiad config chain-id initiation-1
    initiad config node [https://rpc.testnet.initia.xyz:443](https://rpc.testnet.initia.xyz:443)
  </CodeBlock>

  <CodeBlock filename="Local Node" language="bash">
    initiad config chain-id local-initia
    initiad config node tcp\://localhost:26657
  </CodeBlock>
</CodeGroup>

## Next Steps

Now that you have initiad installed and configured, you can:

<CardGroup cols={2}>
  <Card title="Create Your First Account" href="/developers/developer-guides/tools/clis/initiad-cli/accounts">
    Set up accounts for sending transactions and managing assets
  </Card>

  <Card title="Query Blockchain Data" href="/developers/developer-guides/tools/clis/initiad-cli/querying-data">
    Learn how to query balances, transactions, and network information
  </Card>

  <Card title="Send Transactions" href="/developers/developer-guides/tools/clis/initiad-cli/transactions">
    Execute transactions, transfers, and smart contract interactions
  </Card>
</CardGroup>
