# Boost

veSEILOR holders receive a varied percentage of yield boost depending on the lock-up length.

## Config

```rust
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct BoostConfig {
    pub gov: Addr,
    pub ve_seilor_lock_settings: Vec<VeSeilorLockSetting>,
}

#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct VeSeilorLockSetting {
    pub duration: Uint128,
    pub mining_boost: Uint128,
}
```

<table><thead><tr><th width="225">Key</th><th width="233">Type</th><th>Description</th></tr></thead><tbody><tr><td>gov</td><td>Addr</td><td>The address of the governance contract</td></tr><tr><td>ve_seilor_lock_settings</td><td>Vec&#x3C;VeSeilorLockSetting></td><td>List of VeSeilorLockSetting</td></tr><tr><td></td><td></td><td></td></tr></tbody></table>

<table><thead><tr><th width="187">Key</th><th width="196">Type</th><th>Description</th></tr></thead><tbody><tr><td>duration</td><td>Uint128</td><td></td></tr><tr><td>mining_boost</td><td>Uint128</td><td></td></tr><tr><td></td><td></td><td></td></tr></tbody></table>

## InitMsg

```rust
#[cw_serde]
pub struct InstantiateMsg {
    pub gov: Option<Addr>,
    pub ve_seilor_lock_settings: Vec<VeSeilorLockSetting>,
}
```

```json
{
  "gov": "addr",
  "ve_seilor_lock_settings": [
    {
      "duration": "1000000000000000000",
      "mining_boost": "1000000000000000000"
    }
  ]
}
```

<table><thead><tr><th width="187">Key</th><th width="196">Type</th><th>Description</th></tr></thead><tbody><tr><td>duration</td><td>String</td><td>The duration of the lock</td></tr><tr><td>mining_boost</td><td>String</td><td>The boost percentage</td></tr><tr><td></td><td></td><td></td></tr></tbody></table>

## ExecuteMsg

### AddLockSetting&#x20;

```rust
#[cw_serde]
pub enum ExecuteMsg {
    AddLockSetting {
        duration: Uint128,
        mining_boost: Uint128,
    },
}
```

```json
{
  "add_lock_setting": {
    "duration": "1000000000000000000",
    "mining_boost": "1000000000000000000"
  }
}
```

<table><thead><tr><th width="172">Key</th><th width="211">Type</th><th>Description</th></tr></thead><tbody><tr><td>duration</td><td>String</td><td>The duration of the lock</td></tr><tr><td>mining_boost</td><td>String</td><td>The boost percentage</td></tr><tr><td></td><td></td><td></td></tr></tbody></table>

### ChangeGov

```rust
#[cw_serde]
pub enum ExecuteMsg {
    ChangeGov {
        gov: Addr,
    },
}
```

```json
{
  "change_gov": {
    "gov": "addr"
  }
}
```

<table><thead><tr><th width="190">Key</th><th width="185">Type</th><th>Description</th></tr></thead><tbody><tr><td>gov</td><td>String</td><td>The address of the governance contract</td></tr><tr><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr></tbody></table>

### SetLockStatus

```rust
#[cw_serde]
pub enum ExecuteMsg {
    SetLockStatus {
        index: u32,
    },
}
```

```json
{
  "set_lock_status": {
    "index": 0
  }
}
```

<table><thead><tr><th width="189">Key</th><th width="193">Type</th><th>Description</th></tr></thead><tbody><tr><td>index</td><td>number</td><td>The index of the lock setting to update</td></tr><tr><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr></tbody></table>

## QueryMsg

### GetUnlockTime

```rust
#[cw_serde]
#[derive(QueryResponses)]
pub enum QueryMsg {
    #[returns(GetUnlockTimeResponse)]
    GetUnlockTime {
        user: Addr,
    },
}
```

```json
{
  "get_unlock_time": {
    "user": "addr"
  }
}
```

<table><thead><tr><th width="198">Key</th><th width="183">Type</th><th>Description</th></tr></thead><tbody><tr><td>user</td><td>String</td><td>The address of the user</td></tr><tr><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr></tbody></table>

### GetUnlockTimeResponse&#x20;

```rust
#[cw_serde]
pub struct GetUnlockTimeResponse {
    pub unlock_time: Uint128,
}
```

```json
{
  "unlock_time": "1000000000000000000"
}
```

<table><thead><tr><th width="198">Key</th><th width="202">Type</th><th>Description</th></tr></thead><tbody><tr><td>unlock_time</td><td>String</td><td>The unlock time of user</td></tr><tr><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr></tbody></table>

### GetUserLockStatus&#x20;

```rust
#[cw_serde]
#[derive(QueryResponses)]
pub enum QueryMsg {
    #[returns(LockStatusResponse)]
    GetUserLockStatus {
        user: Addr,
    },
}
```

```json
{
  "get_user_lock_status": {
    "user": "addr"
  }
}
```

<table><thead><tr><th width="202">Key</th><th width="154">Type</th><th>Decription</th></tr></thead><tbody><tr><td>user</td><td>String</td><td>The address of the user</td></tr><tr><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr></tbody></table>

### LockStatusResponse

```rust
#[cw_serde]
pub struct LockStatusResponse {
    pub unlock_time: Uint128,
    pub duration: Uint128,
    pub mining_boost: Uint128,
}
```

```json
{
  "unlock_time": "1000000000000000000",
  "duration": "1000000000000000000",
  "mining_boost": "1000000000000000000"
}
```

<table><thead><tr><th width="218">Key</th><th width="162">Type</th><th>Description</th></tr></thead><tbody><tr><td>unlock_time</td><td>string</td><td>The unlock time of user</td></tr><tr><td>duration</td><td>string</td><td>The duration of the lock</td></tr><tr><td>mining_boost</td><td>string</td><td>The boost percentage</td></tr></tbody></table>

### GetUserBoost

```rust
#[cw_serde]
#[derive(QueryResponses)]
pub enum QueryMsg {
    #[returns(GetUserBoostResponse)]
    GetUserBoost {
        user: Addr,
        user_updated_at: Uint128,
        finish_at: Uint128,
    },
}
```

```json
{
  "get_user_boost": {
    "user": "sei1...",
    "user_updated_at": "1000000000000000000",
    "finish_at": "1000000000000000000"
  }
}
```

<table><thead><tr><th width="201">Key</th><th width="163">Type</th><th>Description</th></tr></thead><tbody><tr><td>user</td><td>string</td><td>The address of the user</td></tr><tr><td>user_updated_at</td><td>string</td><td>The last updated time of user</td></tr><tr><td>finish_at</td><td>string</td><td>The finish time of user</td></tr></tbody></table>

### GetUserBoostResponse

```rust
#[cw_serde]
pub struct GetUserBoostResponse {
    pub user_boost: Uint128,
}
```

```json
{
  "user_boost": "1000000000000000000"
}
```

<table><thead><tr><th width="207">Key</th><th width="200">Type</th><th>Description</th></tr></thead><tbody><tr><td>user_boost</td><td>string</td><td>The boost percentage</td></tr><tr><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr></tbody></table>

### GetBoostConfig

```rust
#[cw_serde]
#[derive(QueryResponses)]
pub enum QueryMsg {
    #[returns(GetBoostConfigResponse)]
    GetBoostConfig {},
}
```

```json
{
  "get_boost_config": {}
}
```

### GetBoostConfigResponse

```rust
#[cw_serde]
pub struct GetBoostConfigResponse {
    pub gov: Addr,
    pub ve_seilor_lock_settings: Vec<VeSeilorLockSetting>,
}
```

```json
{
  "gov": "addr",
  "ve_seilor_lock_settings": [
    {
      "duration": "1000000000000000000",
      "mining_boost": "1000000000000000000"
    }
  ]
}
```

<table><thead><tr><th width="221">Key</th><th width="207">Type</th><th>Description</th></tr></thead><tbody><tr><td>gov</td><td>string</td><td>The address of the governance contract</td></tr><tr><td>ve_seilor_lock_settings</td><td>array</td><td>The array of the lock settings</td></tr><tr><td></td><td></td><td></td></tr></tbody></table>
