# Vault Factory

## **View Functions**

```
/// @notice the number of ERC721 vaults
uint256 public vaultCount;
```

```
  /// @notice the mapping of vault number to vault contract
  mapping(uint256 => TokenVault) public vaults;
```

```
  /// @notice a settings contract controlled by governance
  address public settings;
```

## **Fractionalizing An NFT**

When calling `mint` you must have `approved` the vault contract&#x20;

```
function mint(string memory _name, string memory _symbol, address _token, uint256 _id, uint256 _supply, uint256 _listPrice, uint256 _fee) external returns(uint256)
```

* **name**: the name of the ERC20 token which will represent the fractional ownership of your locked up NFT
* **symbol**: the token symbol of the ERC20 token
* **token**: the ethereum address of the NFT which you are fractionalizing
* **id**: the unique identifier used for your NFT in its respective smart contract
* **supply**: the desired total supply of the ERC20 token
* **listPrice**: the desired reserve price at the start of the fractional ownership
* **fee**: the curator fee which will be paid to the owner of the fractional asset
