Vingt.io is building on top of Set protocol to create baskets of tokens (The first one being BSK — Basket Token) that give users different levels of exposure to underlying assets for BEP-20 tokens.
This protocol can let someone else manage your tokens for you without stealing all your funds. Of course there is some level of trust involved that the manager generally acts in the best interest of every Set participant, but since he receives fees from participants and has no direct monetary gain, the risk is minimized.
By using set protocol, Vingt.io is enabling passive managements for BEP-20 tokens on BNB Chain. A given set is managed by one or multiple managers that can employ different strategies based on the functionality added to this set. The system is designed in a modular way allowing you to choose which functionality in the form of modules to add to a set. In the future all of the governance inside Set Protocol will be fully decentralized.
This article discusses some of the most relevant components of the underlying protocol
This contract that allows privileged modules to make modifications to its positions and invoke function calls from the SetToken.
You would create a new SetToken with the SetTokenCreator factory. You can call create and pass
A concept of virtual and real quantities exist for efficient updating. It’s essentially just a multiplier that exists inside the SetToken. A real unit value is calculated as realUnit = positionUnit * positionMultiplier. This would allow updating the multiplier to change the real values of each component very efficiently.
Resources are contracts that provide data, functionality, or permissions that can be drawn upon from.
Those include most notably the controller, registry and price oracle.
The controller is the master manager contract and can be used to
The owner of the controller will is currently a multi-sig contract, and would eventually be a DAO for decentralized governance of the protocol.
The Integration Registry is used to manage external integrations, like support for external DEXs and aggregators.
Governance can use this to:
The Price Oracle returns a price for a given token pair. The price is retrieved either directly from an oracle, calculated using common asset pairs, or retrieved from external data.
The governance is allowed to
Modules can be added to a SetToken and enable extra functionality. These modules are optional additions to a SetToken and can be added or removed from a set by the manager.
A few modules are listed below.
The Basic Issuance module allows users to mint (issue) and redeem a SetToken. The basic flow for this module is:
For each component inside the _setToken, do
Lastly mint _quantity SetToken tokens to the passed _to address.
The respective redeem function works similarly the other way around and burns the SetTokens again.
The Trade module adds powerful trading functionality to a Set. However you will have to write your own integration for whichever market you want to trade on or you can use the existing Kyber integration.
The trade function can be called to execute a trade for a given SetToken. You will essentially sell the given sendToken in the sendQuantity for the receiveToken. Obviously the token you want to sell must actually exist in the SetToken in sufficient quantity.
Only the token manager may call the trade function.
For writing your own DEX integration, we can have a look at KyberExchangeAtapter.
One interesting feature of sets is rebalancing. Usually with any assets you have the ratio of exposure you get from them can change dramatically over time given the price changes. Just imagine you have three tokens of projects you really like. Let’s call them X, Y and Z. You think all projects at the time of investing are valued at equally good prices, so you choose an even split of 33%.
Now you create a TokenSet with
Now after a few months, X went up 10x, while Y stayed the same and Z actually went down by 50%. Your ratio now would be
But you might still think all projects are still equally promising. Or you just want a more diversified exposure. In this case, it would be useful to have a mechanism automatically rebalance it to the original ratio.
Initially Set Protocol proposed an auction mechanism to rebalance token which was later considered to be a poor choice during rebalancing and would have resulted is loss of value during this process.
Currently SingleIndexModule is being used for rebalancing functionality. It doesn’t start auctions, but uses the defined DEX’s to initiate a rebalancing.
Please contact us for any questions or queries, and we shall endeavour to respond within 24 hours.