---
sidebar_position: 2
description: Ignite Network commands for coordinators.
---

# Coordinator Guide

Coordinators organize and launch new chains on Ignite Chain.

---

## Publish a chain

The first step in the process of a chain launch is for the coordinator to publish the intention of launching a chain.
The `publish` command publishes the intention of launching a chain on Ignite from a project git repository.

```shell
ignite n chain publish https://github.com/ignite/example
```

**Output**

```
✔ Source code fetched
✔ Blockchain set up
✔ Chain's binary built
✔ Blockchain initialized
✔ Genesis initialized
✔ Network published
⋆ Launch ID: 3
```

`LaunchID` identifies the published blockchain on Ignite blockchain.

### Specify a initial genesis

During coordination, new genesis accounts and genesis validators are added into the chain genesis.
The initial genesis where these accounts are added is by default the default genesis generated by the chain binary.

The coordinator can specify a custom initial genesis for the chain launch with the `--genesis` flag. This custom initial genesis can contain additional default genesis accounts and custom params for the chain modules.

A URL must be provided for the `--genesis` flag. This can either directly point to a JSON genesis file or a tarball containing a genesis file.

```shell
ignite n chain publish https://github.com/ignite/example --genesis https://example.com/genesis.tar.gz
```

## Approve validator requests

When coordinating for a chain launch, validators send requests. These represent requests to be part of the genesis as a validator for the chain.

The coordinator can list these requests:

```
ignite n request list 3
```

> **NOTE:** here "3" is specifying the `LaunchID`.

**Output**

```
Id 	Status 		Type 			Content
1 	APPROVED 	Add Genesis Account 	spn1daefnhnupn85e8vv0yc5epmnkcr5epkqncn2le, 100000000stake
2 	APPROVED 	Add Genesis Validator 	e3d3ca59d8214206839985712282967aaeddfb01@84.118.211.157:26656, spn1daefnhnupn85e8vv0yc5epmnkcr5epkqncn2le, 95000000stake
3 	PENDING 	Add Genesis Account 	spn1daefnhnupn85e8vv0yc5epmnkcr5epkqncn2le, 95000000stake
4 	PENDING 	Add Genesis Validator 	b10f3857133907a14dca5541a14df9e8e3389875@84.118.211.157:26656, spn1daefnhnupn85e8vv0yc5epmnkcr5epkqncn2le, 95000000stake
```

The coordinator can either approve or reject these requests.

To approve the requests:

```
ignite n request approve 3 3,4
```

> **NOTE:** when selecting a list of requests, both syntaxes can be used: `1,2,3,4` and `1-3,4`.

**Output**

```
✔ Source code fetched
✔ Blockchain set up
✔ Requests format verified
✔ Blockchain initialized
✔ Genesis initialized
✔ Genesis built
✔ The network can be started
✔ Request(s) #3, #4 verified
✔ Request(s) #3, #4 approved
```

Ignite CLI automatically verifies that the requests can be applied for the genesis, the approved requests don't generate an invalid genesis.

To reject the requests:

```
ignite n request reject 3 3,4
```

**Output**

```
✔ Request(s) #3, #4 rejected
```

---

## Initiate the launch of a chain

When enough validators are approved for the genesis and the coordinator deems the chain ready to be launched, the coordinator can initiate the launch of the chain.

This action will finalize the genesis of chain, meaning that no new requests can be approved for the chain.

This action also sets the launch time (or genesis time) for the chain, the time when the blockchain network will go live.

```
ignite n chain launch 3
```

**Output**

```
✔ Chain 3 will be launched on 2022-10-01 09:00:00.000000 +0200 CEST
```

This example output shows the launch time of the chain on the network.

### Set a custom launch time

By default, the launch time will be set to the earliest date possible. In practice, the validators should have time to prepare their node for the network launch. If a validator fails to be online, they can get jailed for inactivity in the validator set.

The coordinator can specify a custom time with the `--launch-time` flag.

```
ignite n chain launch --launch-time 2022-01-01T00:00:00Z
```
