> 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/index-token-manger-guide/creating-a-set.md).

# Creating a Set

## Creating a Set via SetToken contract

Creating a Set is the process by which user deployed a SetToken contract. This is facilitated by the SetTokenCreator contract with a simple **create** interface. The user needs to provide:

* \_components: BEP20 token addresses to include as the initial allocation. The allocations may be rebalanced later via module interactions
* \_units: the notional amount of each component in the starting allocation. **Must be ordered the same as the components array**
* \_modules: array of initial module addresses to initialize on the SetToken
* \_manager: address of the manager of the Set. Only the manager will have access to module interactions
* \_name: name of the Set, limited to 32 characters
* \_symbol: symbol of the Set, limited to 32 characters

The interface for *create* is as follows:

```typescript
function create(
    address[] memory _components,
    int256[] memory _units,
    address[] memory _modules,
    address _manager,
    string memory _name,
    string memory _symbol
)
    external
    returns (address)
```

Before you can start interacting with the modules, you must first call an additional *initialize* function on each modules and provide the required data to enable the modules. See 'Adding a Module' for further details.&#x20;

## Creating a Set via BscScan

Navigate to the SetTokenCreator contract on BNB-Chain

1. Connect your web3 wallet&#x20;
2. Fill in details as explained above
