> For the complete documentation index, see [llms.txt](https://docs.hypertensor.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hypertensor.org/network/subnet-node/updating-node.md).

# Updating Node

Subnet nodes can update most of the parameters of their node on-chain.&#x20;

> For updating the keys of the subnet node, see [Keys](/network/subnet-node/keys.md).

### Subnet Node Delegate Stake Rate

Users can stake to a subnet node and receive a portion of the node's incentives based on its delegate stake rate.&#x20;

This rate can be decreased by 1% per 24 hours, and can be increased with no limitations.

{% hint style="info" %}
1.0 (100%) equals 1e18
{% endhint %}

#### Conversion Example

| Decimal | Percent | Value               |
| ------- | ------- | ------------------- |
| 1.0     | 100%    | 1000000000000000000 |
| 0.5     | 50%     | 500000000000000000  |
| 0.1     | 10%     | 100000000000000000  |
| 0.05    | 5%      | 50000000000000000   |

```rust
pub fn update_delegate_reward_rate(
    origin: OriginFor<T>, 
    subnet_id: u32,
    subnet_node_id: u32,
    new_delegate_reward_rate: u128
)
```

***

### Peer Info

Update the peer info of the subnet node.

#### PeerInfo

```rust
pub struct PeerInfo {
    pub peer_id: PeerId,
    pub multiaddr: Option<BoundedVec<u8, DefaultMaxVectorLength>>,
}
```

```rust
pub fn update_peer_info(
    origin: OriginFor<T>, 
    subnet_id: u32,
    subnet_node_id: u32,
    new_peer_info: PeerInfo,
)
```

***

### Bootnode Info

Update or remove the bootnode peer info of the subnet node.

#### PeerInfo

```rust
pub struct PeerInfo {
    pub peer_id: PeerId,
    pub multiaddr: Option<BoundedVec<u8, DefaultMaxVectorLength>>,
}
```

```rust
pub fn update_bootnode_peer_id(
    origin: OriginFor<T>, 
    subnet_id: u32,
    subnet_node_id: u32,
    new_peer_info: Option<PeerInfo>,
)
```

***

### Client Info

Update or remove the client peer info of the subnet node.

#### PeerInfo

```rust
pub struct PeerInfo {
    pub peer_id: PeerId,
    pub multiaddr: Option<BoundedVec<u8, DefaultMaxVectorLength>>,
}
```

```rust
pub fn update_client_peer_id(
    origin: OriginFor<T>, 
    subnet_id: u32,
    subnet_node_id: u32,
    new_peer_info: Option<PeerInfo>,
)
```

***

### Unique

Update the subnet node's unique parameter

```rust
pub fn update_unique(
    origin: OriginFor<T>, 
    subnet_id: u32,
    subnet_node_id: u32,
    unique: Option<BoundedVec<u8, DefaultMaxVectorLength>>
)
```

***

### Non Unique

Update the subnet node's unique parameter

```rust
pub fn update_non_unique(
    origin: OriginFor<T>, 
    subnet_id: u32,
    subnet_node_id: u32,
    non_unique: Option<BoundedVec<u8, DefaultMaxVectorLength>>>,
)
```

***

### Delegate Account

Update the subnet node's delegate account.

```rust
pub fn update_delegate_account(
    origin: OriginFor<T>,
    subnet_id: u32,
    subnet_node_id: u32,
    delegate_account_id: Option<T::AccountId>,
    delegate_rate: Option<u128>,
)
```
