Creating a Set

Creating a Set:

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: ERC20 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:

function create(
address[] memory _components,
int256[] memory _units,
address[] memory _modules,
address _manager,
string memory _name,
string memory _symbol
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 guide on Adding a Module for further details.


The TokenSets UI now supports creation of new Sets. This can be used to help decide your initial allocations based on a starting Set price you provide