# Registry

#### **`newVaultRelease`**

Checks the id of vault release and the api versions, after which adds the vault to all the vault releases.

```
function newVaultRelease(address vault) external onlyOwner
```

**Parameters:**

| Name  | Type    | Description                     |
| ----- | ------- | ------------------------------- |
| vault | address | Address of a new vault released |

**Events emitted:**

* NewVaultRelease

#### **`_newProxyVault`**

Checks the vault release target, deploys vault release proxy (owned by proxy admin) and initializes vault.

```
function _newProxyVault(address token, address governance, uint256 targetDecimals, uint256 vault_release_target) internal returns (address)
```

**Parameters:**

| Name                   | Type    | Description                                |
| ---------------------- | ------- | ------------------------------------------ |
| token                  | address | Token address of a new vault               |
| governance             | address | Governance address                         |
| targetDecimals         | uint256 | Target decimals for a new vault            |
| vault\_release\_target | uint256 | Target address for deploying vault’s proxy |

**Return value:**

| Type    | Description           |
| ------- | --------------------- |
| address | Vault’s proxy address |

#### **`_registerVault`**

Checks the vault id and the api version, after which adds new vault and its token to all the vaults and registers the token if not already registered.

```
function _registerVault(address token, address vault) internal
```

**Parameters:**

| Name  | Type    | Description                |
| ----- | ------- | -------------------------- |
| token | address | Token address of the vault |
| vault | address | Vault’s address            |

**Events emitted:**

* NewVault

#### **`newVault`**

Creates new proxy vault with all the necessary data and registers that new vault and its token.

```
function newVault(address token, uint256 targetDecimals, uint256 vaultReleaseDelta) external onlyOwner returns (address)
```

**Parameters:**

| Name              | Type    | Description                                     |
| ----------------- | ------- | ----------------------------------------------- |
| token             | address | Token address of the new vault                  |
| targetDecimals    | uint256 | Target decimals value                           |
| vaultReleaseDelta | uint256 | Value used for calculating vault release target |

**Return value:**

| Type    | Description         |
| ------- | ------------------- |
| address | New vault’s address |

#### **`newExperimentalVault`**

Creates new proxy vault with all the necessary data.

```
function newExperimentalVault(address token, address governance, uint256 targetDecimals, uint256 vaultReleaseDelta) external returns (address)
```

**Parameters:**

| Name              | Type    | Description                                     |
| ----------------- | ------- | ----------------------------------------------- |
| token             | address | Token’s address of the vault                    |
| governance        | address | Vault’s governance address                      |
| targetDecimals    | uint256 | Target decimals value                           |
| vaultReleaseDelta | uint256 | Value used for calculating vault release target |

**Return value:**

| Type    | Description               |
| ------- | ------------------------- |
| address | New proxy vault’s address |

**Events emitted:**

* NewExperimentalVault

#### **`endorseVault`**

Checks the vault governance and vault api version, after which it registers the vault.

```
function endorseVault(address vault, uint256 vaultReleaseDelta) external onlyOwner
```

**Parameters:**

| Name              | Type    | Description                                     |
| ----------------- | ------- | ----------------------------------------------- |
| vault             | address | Vault’s address                                 |
| vaultReleaseDelta | address | Value used for calculating vault release target |

#### **`tagVault`**

Adds tag to specified vault.

```
function tagVault(address vault, string memory tag) external
```

**Parameters:**

| Name  | Type            | Description     |
| ----- | --------------- | --------------- |
| vault | address         | Vault’s address |
| tag   | "string" memory | Vault’s tag     |

**Events emitted:**

* VaultTagged


---

# 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.octusbridge.io/integrate/octus-bridge-contracts/ethereum/registry.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.
