> For the complete documentation index, see [llms.txt](https://vingt-io.gitbook.io/vingt.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://vingt-io.gitbook.io/vingt.io/technical-guide/visp-technical-foundation/contract-functions/settokencreator.md).

# SetTokenCreator

SetTokenCreator is a smart contract used to deploy new SetToken contracts. The SetTokenCreator is a Factory contract that is enabled by the controller to create and register new SetTokens.

### Select Methods <a href="#select-methods" id="select-methods"></a>

#### create() <a href="#create" id="create"></a>

`function create(address[] memory _components, int256[] memory _units, address[] memory _modules, address _manager, string memory _name, string memory _symbol) external returns (address)`Creates a SetToken smart contract and registers the SetToken with the controller. The SetTokens are composed of positions that are instantiated as DEFAULT (positionState = 0) state.

| Parameter Name | Type       | Description                                                               |
| -------------- | ---------- | ------------------------------------------------------------------------- |
| \_components   | address\[] | List of addresses of components for initial positions                     |
| \_units        | uint256\[] | List of units. Each unit is the # of components per 10^18 of a SetToken   |
| \_modules      | address\[] | List of modules to enable. All modules must be approved by the Controller |
| \_manager      | address    | Address of the manager                                                    |
| \_name         | string     | Name of the SetToken                                                      |
| \_symbol       | string     | Symbol of the SetToken                                                    |

| Return Name     | Type    | Description                           |
| --------------- | ------- | ------------------------------------- |
| setTokenAddress | address | Address of the newly created SetToken |
