# Set Token Creator

The Set Token Creator is a smart contract used to deploy new [SetToken](https://docs.indexcoop.com/index-coop-community-handbook/protocol/index-protocol/core-contracts/set-token) contracts. The SetTokenCreator is a Factory contract that is enabled by the [Controller](https://docs.indexcoop.com/index-coop-community-handbook/protocol/index-protocol/core-contracts/controller) to create and register new SetTokens.

## Select Methods

### create()

`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 |
