# Registering

## Fee and Registration Period

Details coming soon!

**The fee is non-refundable.**

## **Length of Registration**

Once a subnet is registered, it begins its **registration period**, which lasts for one week (see [Phases Overview](/network/subnet.md#overview)). Within this time, users can delegate stake to the subnet, users can register & activate subnet nodes under the subnet based on the [initial coldkeys](#initial-coldkeys), and the owner can activate the subnet if the [activation conditions](/network/subnet/activating.md#requirements) are met.

{% hint style="info" %}
While in the registration period, if the owner attempts to activate the subnet and the activation conditions are not met, the call will not fail and will not activate the subnet.
{% endhint %}

***

## Registration Variables

Each registrar must supply a few variables to register (see `RegistrationSubnetData`). These are the variables required to register a subnet.

More variables can be set in the [subnet owner](/network/subnet-owner.md) section.

```rust
pub struct RegistrationSubnetData<AccountId> {
    pub name: Vec<u8>,
    pub repo: Vec<u8>,
    pub description: Vec<u8>,
    pub misc: Vec<u8>,
    pub min_stake: u128,
    pub max_stake: u128,
    pub delegate_stake_percentage: u128,
    pub initial_coldkeys: BTreeMap<AccountId, u32>,
    pub bootnodes: BTreeMap<PeerId, BoundedVec<u8, DefaultMaxVectorLength>>,
}
```

### Name

* The unique name of the subnet.

### Repo

* The unique GitHub or similar link to the source code of the subnet for nodes to run.

### Description

* A description of the subnet.

### Misc

* Miscellaneous information.

### Min Stake

* Minimum required stake balance to register a node.

### Max Stake

* The maximum allowable stake balance for a subnet node.

### Delegate Stake Percentage

* The percentage ratio of emissions given to delegate stakers.

### Initial coldkeys

A list of whitelisted coldkeys and how many nodes each coldkey can register while the subnet is in the registration phase.

* Each subnet should be decentralized and is treated as such. Similar to starting a blockchain, trusted nodes should always be the initial nodes in the system to set the standard of trust. Therefore, the registrar must register with a list of coldkeys that are allowed to register nodes. These nodes are automatically classified as a Validator (See subnet node classifications).
* These coldkeys are removed once a subnet is activated.

**Example Initial Coldkey**

```bash
0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045, 4
```

### Bootnodes

A list of bootnodes that comprises a peer ID and a multiaddress.

**Example Bootnode**

{% code overflow="wrap" %}

```bash
12D3KooWD3eckifWpRn9wQpMG9R9hX3sD158z7EqHWmweQAJU5SA, /ip4/127.0.0.1/tcp/12D3KooWD3eckifWpRn9wQpMG9R9hX3sD158z7EqHWmweQAJU5SA
```

{% endcode %}

***

## Extrinsic

```rust
pub fn register_subnet(
    origin: OriginFor<T>, 
    subnet_data: RegistrationSubnetData<T::AccountId>,
)
```


---

# Agent Instructions: 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.hypertensor.org/network/subnet/registering.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.
