# IBaseVaultFactory

**Inherits:** IBaseVaultDeployer

Interface for the base vault factory

## Functions

### create

Create a new vault with the given parameters

```solidity
function create(
    bytes32 salt,
    string calldata description,
    BaseVaultParameters calldata baseVaultParams,
    address expectedVaultAddress
) external returns (address deployedVault);
```

**Parameters**

| Name                   | Type                  | Description                            |
| ---------------------- | --------------------- | -------------------------------------- |
| `salt`                 | `bytes32`             | The salt value to use for create2      |
| `description`          | `string`              | Vault description                      |
| `baseVaultParams`      | `BaseVaultParameters` | Parameters for vault deployment        |
| `expectedVaultAddress` | `address`             | Expected address of the deployed vault |

**Returns**

| Name            | Type      | Description                   |
| --------------- | --------- | ----------------------------- |
| `deployedVault` | `address` | Address of the deployed vault |

## Events

### VaultCreated

Emitted when the vault is created

```solidity
event VaultCreated(address indexed vault, address indexed owner, address submitHooks, string description);
```

**Parameters**

| Name          | Type      | Description           |
| ------------- | --------- | --------------------- |
| `vault`       | `address` | Vault address         |
| `owner`       | `address` | Initial owner address |
| `submitHooks` | `address` | Submit hooks address  |
| `description` | `string`  | Vault description     |
