VISP
VISP is a web3 asset management platform by Vingt.io that provides financial infrastructure tooling for BNB Chain.
VISP protocol acts as a platform for entrepreneurs to create their own Indices and Trackers in a decentralized permission less manner. These customizable Token Sets of fully collateralized crypto-assets, represent on-chain tokens on BNB-Chain. These Token Sets engage with different categories of protocols and follows the manager's specific strategy, allowing investors to replicate an identical strategy easily by minting or purchasing the Set.
The underlying VISP protocol consists of multiple smart contract suite, supporting external integrations with decentralized exchanges, platforms, automated market makers and asset protocols. More advanced strategies, such as yield farming, perpetual swaps, and margin trading, will be supported at a later stage.
Investors
Investors allocate capital and receive the Set tokens that represent their share of the structured product. Investors retain full custody of assets because funds are secured by the Set Token contract, and are inaccessible to asset managers.
Managers
Managers maintain and rebalance structured products to satisfy their asset management strategies. Managers can offer their products to many different customer profiles: whether they curate products as investment opportunities for individual or institutional investors, or they curate products to service DAO treasuries. Managers can use streaming fees or performance fees to monetize their products to achieve profitability as their products grow.
Developers
Developers build the next generation of applications using Set Protocol as their base layer to achieve their financial objectives faster. Whether you are looking to develop an algorithmically rebalanced cryptocurrency index or a delta-neutral investment portfolio that caters to a narrow customer base.
VISP would allow developers to create the next generation of financial products in DeFi on BNB Chain. These developers would create their own community and contribute to VISP and Vingt.io ecosystem.
VISP would be using the following System Architecture of Set Protocol V2.

TokenSets
TokenSets is a UI that enables interactions with the Set Protocol system via Web3. With it, anyone can get started creating Set strategies and interacting with their Sets. There are also consumer flows for your strategy customers to issue your Strategy. As features are developed, audited and deployed, the team will be adding them to TokenSets.
Capability | VISP | TokenSets | Network |
---|
Capability Creating a Set | VISP Yes | TokenSets Yes | Network BNB Chain |
Capability Issuing a Set | VISP Yes | TokenSets Yes | Network BNB Chain |
Capability Redeeming a Set | VISP Yes | TokenSets Yes | Network BNB Chain |
Capability TokenSets Issuance | VISP Yes | TokenSets Yes | Network BNB Chain |
Capability Trading within a Set | VISP Yes | TokenSets Yes | Network BNB Chain |
Capability Redeem Fees | VISP Yes | TokenSets Yes | Network BNB Chain |
Capability Change Streaming Fees | VISP Yes | TokenSets Yes (Using Delegated Manager *) | Network BNB Chain |
Capability Change Fee Recipient | VISP Yes | TokenSets Yes (Using Delegated Manager *) | Network BNB Chain |
Capability Change Set Manager | VISP Yes | TokenSets Yes (Using Delegated Manager *) | Network BNB Chain |
Capability Change Set Trader/Operator | VISP Yes | TokenSets Yes (Using Delegated Manager *) | Network BNB Chain |
*VISP is currently not using delegated manager and would be using EOA wallets instead. As demand to create externally managed token sets would increase Vingt.io would add this feature to VISP.
VISP on BNB Chain is very similar to our other integrations by Set Protocol V2 and would operate similar to Set Protocol V2's integration on Avalanche, Polygon, Optimism and Ethereum. With the high on-chain liquidity of BNB Chain VISP expects to stand out from all other chains in terms of adaptability. VISP would be compatible with BEP20 tokens such as WBNB WETH WBTC and CAKE on BNB Chain.
Deployed Contracts on BNB Chain:
Core Contracts:
Contracts | Address |
SetTokenCreator | |
Controller | |
IntegrationRegistry | |
Modules
Contracts | Address |
BasicIssuanceModule | |
StreamingFeeModule | |
TradeModule | |
Similar other networks using SetProtocol, VISP is also compatible with several other modules that would be added later when the network grows.
Adapter Contracts
Adapters interface with external protocols and are used in modules to gather and validate transaction parameters.
Contracts | Module | Address |
ZeroExApiAdaptorV5 | Trade | |
PancakeswapV2ExchangeAdapter | Trade | |
VISP will add more adaptors to the protocol when needed.
Oracle Adapter Contracts
Oracle adapter contracts return prices for derivative assets. Even though BNB Chain is compatible with Chainlink price oracles, VISP currently doesn't use oracle adapter contracts and would be added them at a later stage.
Periphery Periphery contracts are built on top and used in conjunction with system contracts. This includes permission less manager contracts, hook contracts that perform additional validations (e.g. allow list). These will be added at a later stage when required (such as when more reliable DEXs appear on BNB Chain for AMMSplitter to trade optimally).
Relevant Smart Contracts for VISP
Core Contracts
SetToken:
BEP20 Token contract that allows privileged modules to make modifications to its positions and invoke function calls from the SetToken.
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.
Controller:
Contract that registers system contracts such as added Sets, modules, factories, resources (like price oracles), and protocol fee configurations.
IntegrationRegistry:
The IntegrationRegistry holds state relating to the Modules and the integrations they are connected with. The state is combined into a single Registry to allow governance updates to be aggregated to one contract.
PriceOracle:
Contract that returns the price for any given asset pair. Price is retrieved either directly from an oracle, calculated using common asset pairs, or uses external data to calculate price. Note: Prices are returned in precise units (i.e. 18 decimals of precision).
SetValuer:
The SetValuer is a contract that returns the valuation of SetTokens using price oracle data used in contracts that are external to the system.
Modules
BasicIssuanceModule:
The Basic Issuance Module is a module enables issuance and redemption functionality on a SetToken for default-only positions.
DebtIssuanceModuleV2:
The DebtIssuanceModuleV2 is a module that enables users to issue and redeem SetTokens that contain default and all external positions, including debt positions. Module hooks are added to allow for syncing of positions, and component level hooks are added to ensure positions are replicated correctly. The manager can define arbitrary issuance logic in the manager hook, as well as specify issue and redeem fees.
TradeModule:
The Trade Module is a module that enables SetTokens to perform atomic trades using DEXs such as Pancakeswap. Integrations mappings are stored on the IntegrationRegistry contract.
StreaingFeesModule:
StreamingFeeModule Smart contract that accrues streaming fees for Set managers. Streaming fees are denominated as percent per year and realized as Set inflation rewarded to the manager.
Delegating the Functionality of a Set Token Manager
VISP requires a DelegatedManager instead of EOA when multiple stakeholders are required to manage an index as a team, instead of an individual solely operating the protocol. This allows division of roles within the DelegatedManager, further decentralizing the operations of an Index such as trading the underlying assets during the rebalacing phase.
Through the DelegatedManager VISP would be adding various strategies and creating a new U/I for developers. These tools would help easier management of tokensets. The Architecture of DelegatedManager is shown below

The DelegatedManager automates the deployment of manager contract enabled SetTokens which are pre-configured to use a set of audited extension contracts that facilitate trading and management fee splitting.
The System:
- Gives all SetProtocol users access to more sophisticated RBAC management features. For example, managers now can define unique roles for SetToken stakeholders (who can trade, who can update parameters, who receives fees, etc.) and adds the ability for SetToken managers to restrict their products to an allow-listed group of assets
- Allows SetProtocol users to update Manager-only fields directly from the UI using the Management interface
- Is an open platform: Now anyone can write a global extension to help SetToken managers!
DelegatedManager
Smart contract manager that contains permissions and admin functionality. Paired with extensions that enable permissionless and automated functionality on the SetToken (ex: leverage tokens)
DelegatedManagerFactory
Factory smart contract which provides asset managers the ability to create a SetToken with a DelegatedManager manager, create a DelegatedManager manager for an existing SetToken to migrate to, and initialize extensions and modules.
GlobalExtensions
The DelegatedManager system comes with a set of default extensions which define fee management logics for Streaming and Issuance fees, as well as a trading interface which can be used for executing SetToken component rebalances and re-allocations.
TradeExtension
Globalextension which provides privileged operator(s) the ability to trade on a DEX and the owner the ability to restrict operator(s) permissions with an asset whitelist.
IssuanceExtension
Globalextension which provides the owner and methodologist the ability to accrue and split issuance and redemption fees. owner may configure the fee split percentages.
Globalextension
which provides the owner and methodologist the ability to accrue and split streaming fees. owner may configure the fee split percentages. These extensions should all be added and initialized as part of the DelegatedManager factory deployment flow.
