> For the complete documentation index, see [llms.txt](https://docs.baas.sh/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.baas.sh/baas-cli/quickstart.md).

# Quickstart

This guide takes you from zero to a deployed, registered contract. It should take just a few minutes.

{% hint style="info" %}
You'll need **Node.js ≥ 20**, **Foundry**, and a **BaaS account with a project** (created in the BaaS Dashboard). See the [Introduction](/baas-cli/cli.md) for the full prerequisites.
{% endhint %}

{% stepper %}
{% step %}

### Install the CLI

{% tabs %}
{% tab title="Quick install" %}

```bash
curl -fsSL https://raw.githubusercontent.com/BaaS-sh/baas-cli/main/install.sh | bash
```

Installs Foundry (if missing) and `@baas/cli` globally. Requires **Node.js ≥ 20**. Supported on macOS, Linux, and Windows via [WSL](https://learn.microsoft.com/windows/wsl/install).
{% endtab %}

{% tab title="Manual (npm)" %}

```bash
npm install -g @baas/cli
```

Requires **Node.js ≥ 20** and [Foundry](https://getfoundry.sh) installed separately (`forge` in your `PATH`).
{% endtab %}
{% endtabs %}

To upgrade or uninstall later, see [Configuration](/baas-cli/reference/configuration.md#updating-and-removing-the-cli).
{% endstep %}

{% step %}

### Log in

```bash
baas login
# Opening your browser to log in to BaaS...
# ✔ Logged in as you@example.com
```

Opens your browser to authenticate. Your tokens are saved locally and refreshed automatically, so you won't need to log in again.
{% endstep %}

{% step %}

### Select a project

```bash
baas projects:list      # see your projects
baas use my-project-id  # set the active one
```

The active project is required before you deploy.
{% endstep %}

{% step %}

### Deploy a contract

```bash
baas deploy
```

An interactive wizard walks you through picking a contract, a relayer, and any constructor arguments, then compiles, deploys, and registers it with BaaS.

{% hint style="info" %}
Deploying requires a **relayer** (it signs server-side, so no private key on your machine). Create one in the **BaaS Console** first, otherwise `baas deploy` has no relayer to use. See [Deploy a contract](/baas-cli/deploy.md).
{% endhint %}
{% endstep %}
{% endstepper %}

{% hint style="success" %}
That's it. `baas deploy` compiles your contract (`forge build`), deploys it through the relayer, waits for on-chain confirmation, and registers it with BaaS, all in one command.
{% endhint %}

## Next steps

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Deploy a contract</strong></td><td>Relayers, the wizard, the one-liner, and all the flags.</td><td><a href="/pages/8fc0uI44WiEWN4LzABvg">/pages/8fc0uI44WiEWN4LzABvg</a></td></tr><tr><td><strong>Command reference</strong></td><td>Every command and flag in one place.</td><td><a href="/pages/pqsULe0JbTEIm5I7WlHh">/pages/pqsULe0JbTEIm5I7WlHh</a></td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.baas.sh/baas-cli/quickstart.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
