Frequently Asked Questions

What is Vanilla?

Vanilla is a single decentralized interface for all of DeFi that rewards you for making a profit trading and lending tokens. When you trade and lend through Vanilla's unified DeFi interface, you participate in #ProfitMining whereby you mine VNL governance tokens for each fraction of an ether you make in profit.

Vanilla is launching with support for trading on Uniswap as the first way to make profit. Lending the tokens you've bought on Aave or Compound to further increase your profits is coming soon after.

What is #ProfitMining?

Profit mining is a novel token distribution mechanism, where you "mine" VNL tokens by making a profit calculated in ETH. The more profit you make and the longer you've held your positions before selling, the more VNL you mine. Mining difficulty also increases over time, making early mining more lucrative.

While you can trade almost anything through Vanilla, only tokens with enough liquidity are eligible for profit mining to protect against price manipulation attacks. Liquidity is calculated from WETH reserves on Uniswap and the more liquidity there is, the higher the rewards are. Profit mining also takes into account how long you hold your position. The longer you hold, the more VNL you mine.

You can see which tokens are eligible for profit mining on the Trade page.

Why would I use Vanilla?

Vanilla provides a single decentralized interface for all of DeFi. By conducting your DeFi activities through Vanilla, you participate in #ProfitMining, which increases your returns.

Furthermore, the tokenomics are designed to direct capital to the most profitable opportunities, benefiting everyone who uses Vanilla. Users who consistently generate profit will mine the most governance token VNL. They can then influence governance and tweak the rewards for doing certain activities or for using certain DeFi services. Assuming they act selfishly and try to maximize their own returns, they will raise the rewards for activities they think will be the most profitable, providing a positive signal to all other users. This creates a virtuous cycle, which directs more and more capital to the most profitable opportunities. In memespeak, Vanilla is a machine for leaking alpha.

The Vanilla tokenomics are also designed to protect users. Governance can add support for #ProfitMining on new services once they have been thoroughly researched and audited. Governance can also remove support for services, which are considered insecure. Again, this happens, because governance token holders are acting selfishly and protecting themselves, which then extends to all users of Vanilla.

As more and more traditional assets are tokenized and made available in DeFi, we believe Vanilla can become the primary way by which capital is allocated not just across crypto-assets, but all assets. We envision Vanilla being a single interface for finance in general, directing hundreds of billions of dollars in value to the most profitable investments.

Can developers build on Vanilla?

Yes, absolutely. Vanilla provides a single decentralized interface for DeFi developers. Developers no longer need to integrate multiple DeFi protocols, but instead can integrate just one. For example a developer could create an index token on top of Vanilla, which balances a portfolio of assets automatically using on-chain data and lends those assets on Aave or Compound for additional passive returns. The indexing system would only have to interact with Vanilla smart contracts and of course participates in #ProfitMining too.

How do I trade tokens using Vanilla?

Simply go to the trade page, choose a token and execute the purchase with ETH using Metamask or WalletConnect. The Vanilla contracts will execute the purchase on Uniswap and the tokens will be stored in the Vanilla smart contract. You can sell the tokens at any time to claim profit mining rewards and once sold, the ETH, including any profit you've made, will be returned to your wallet along with the VNL tokens you've mined.

How do I lend tokens using Vanilla?

Lending is coming soon and is very simple in how it works. When you've purchased a token using Vanilla, if Aave or Compound has a market for lending the token, you can choose to lend it. The Vanilla contracts will send your tokens to that market, where they will accrue interest until you decide to end the lending or sell the tokens.

Can I move tokens I've purchased through Vanilla?

Not right now. We will be adding this capability in the future, but it makes calculating profit mining rewards more difficult so we have left it out of scope for now.

Does Vanilla include a native token?

Yes. VNL is the native asset of the Vanilla ecosystem. VNL is created by profit mining and is used for governance of the protocol.

Was there an ICO or premine?

No. We think pre-mines very easily lead to unhealthy incentives and often result in governance being controlled by the creators or a small group of early investors. Additionally, we like the idea of core development teams having to use the product they are developing, hopefully creating a healthy feedback loop for innovation.

This is why the only way to create VNL is by profit mining and this applies to the creators of Vanilla just as much as it applies to everyone else. In the future there will likely be a governance controlled treasury, which receives tokens based on usage to allocate to development, marketing and other functions, but the token holders will have to agree to all expenditures.

Who created Vanilla and how will they make money?

Vanilla was developed by Equilibrium and the smart contracts were deployed by an anonymous community member to the Ethereum blockchain. Equilibrium is hoping to make money by profit mining from the very beginning, which we expect will allow us to accumulate enough VNL to give us a reasonable return if Vanilla is successful and of course once the governance-controlled treasury is online we will apply for development grants.

Is Vanilla secure?

The Vanilla system has been security audited extensively by Peckshield and Least Authority and there is an active bug bounty, but it is still experimental beta software as with most things built on Ethereum. We take the safety of your funds extremely seriously, but perfect security doesn't exist so tread carefully.

Is Vanilla decentralized?

Yes. All of Vanilla's profit mining logic and algorithms are built into its smart contracts, which are non-upgradable, meaning no-one can change how they function and no-one can stop anyone else from using the system.

Can I profit-mine with any ERC-20?

No. Vanilla defines a safe-list of tokens, which are the only ERC-20s that are eligible for profit mining rewards. While trading non-safe-listed tokens is possible, profitable trading with them will not generate VNL.

To know which tokens are eligible for profit mining rewards, check out the "Profit Mining" column in the Trade page - the eligible ones are marked "Yes".

Why is the safe-list needed?

For security reasons. Safe-listing protects the VNL distribution against customized ERC-20s that have been created for malicious purposes.

Profit mining is based on profit which is calculated from the purchasing and selling prices. If prices can be easily manipulated, then profits and subsequently VNL distribution can be easily manipulated. When using Uniswap, prices can be manipulated in many ways.

The Value-Protection Coefficient in the reward algorithm protects against the unavoidable Uniswap price manipulation by incentivizing the trades in tokens whose prices are more expensive to manipulate (i.e. have more WETH liquidity in Uniswap). However, when price manipulation happens in an ERC-20 that has been purpose built for manipulation, the liquidity-based protections are not enough. The safe-list is a solution to this.

Why is token X on the safe-list and not token Y?

As contracts are non-upgradeable and have no owners, the safe-list had to be immutable and therefore selected before the deployment. Instead of hand-picking ERC-20s to the safe-list, the Vanilla team decided to use a selection criteria which should be more fair and verifiable. The criteria we picked was as follows - a token got safe-listed if it had:

  • over 500 WETH liquidity in Uniswap, and
  • either over 500 WETH liquidity in Sushiswap,
  • or over 250 WETH cumulative, weight-normalized liquidity in all public Balancer bpools with over 10 holders,
  • in a fixed block close to code freeze and mainnet launch (finally, that block was 12110000)

For the safe-list criteria to be effective, the selected tokens needed to be less prone to price manipulation. This is the reason why the selection criteria emphasizes sufficient liquidity (manipulation gets more expensive) in more than one market (manipulation gets harder when ownership and liquidity are more decentralized).

Obviously, even though this selection criteria is verifiable and deterministic, it's still an arbitrary criteria and a lot of rightfully safe and honest ERC-20s were excluded. When governance goes live, this problem will be resolved as the governance will be able to change the safe-list.

How are profit mining rewards calculated for trading?

To calculate mining rewards in trade i which sells tokens, Vanilla uses the following algorithm:

where

  • is the amount of VNL reward the trader gets.
  • is the amount of Ether profit made in the trade.
  • is the Value-Protection Coefficient
  • is the Holding/Trading Ratio (Squared)

How is profit calculated?

Profit is determined by the positive difference of how much WETH the trader used to buy tokens and how much WETH the trader got back when selling those tokens. For example, buying 1000 USDC with 1 WETH, and selling them all for 2 WETH would equal 1 WETH profit.

To calculate the profit of the trade, the Vanilla contract must keep track of the purchase price. However, if the trader buys 1000 USDC for 1 WETH, then 1000 USDC for 0.5 WETH, and finally sells 1500 USDC for 1.5 WETH, what is the profit? Unfortunately, the traditionally used pricing conventions (FIFO and LIFO) are impractical to implement in smart contracts due to the gas costs of keeping track of all purchases. Instead, Vanilla uses a Weighted Average Exchange Rate to maintain the average purchase price for all token inventory in a fair and gas efficient way.

Weighted Average Exchange Rate after i trades is calculated using two variables, () which represents the adjusted sum of WETHs used in trading and () which represents the trader's token balance.

When buying tokens with , Vanilla updates the variables as:

When selling tokens for , Vanilla calculates the profit as:

and updates the variables for the next trade as

For reference, the quote for the average purchase price is calculated simply as a ratio of the two variables:

What is the Value-Protection Coefficient and why does Vanilla use it?

With constant function market makers like Uniswap, the price manipulation of a single token is always possible. Given that VNL rewards are based solely on profit, price manipulation may be used to influence the VNL distribution and therefore its value. Vanilla uses a Value-Protection Coefficient to incentivize trades in tokens that are costlier to manipulate. The idea is based on the guarantee that the manipulation of a constant-product price has a cost relative to the liquidity pool size.

The Coefficient formula is

where

  • is the immutable WETH reserve limit. Rewards are never minted when selling a token whose WETH liquidity reserves are lower than . In mainnet, this reserve limit is set to 500 Ether.
  • is the internally tracked WETH reserve size for the Uniswap liquidity pair. This means that trades of high-liquidity tokens will get a higher coefficient and reward than low-liquidity tokens.

For example, making a profit of 10ETH in a token A with 1000ETH reserves would result in , but making the same profit in a token B with 10000ETH in reserves would result in . Even if the Ether-denominated profits are the same, the VNL rewards will differ greatly.

To further protect the token value against the more sophisticated market manipulation, the internally tracked is updated using Uniswap WETH reserves for the traded token with the following rules:

  • when buying the token, which means that price manipulators can only manipulate the reserve upwards either by providing liquidity or buying token which drives price up, and
  • when selling the token, which means that Uniswap reserves can only be manipulated downwards either by removing liquidity or selling token which drives the price down

In summary, the purpose of the Value-Protection Coefficient is to protect the VNL generation from all kinds of Uniswap price manipulation attempts by making it costlier and less rewarding.

What is the Holding/Trading Ratio (Squared) and why does Vanilla use it?

For each token you trade, Vanilla maintains the Weighted Average Purchase Block (WAPB) or . The WAPB after trades is calculated by using two variables, which represents the token-volume weighted sum of block numbers of the purchases and , which represents the trader's token balance, used already in Weighted Average Exchange Rate- calculations.

When buying tokens in a block number , Vanilla updates the as:

When selling tokens, Vanilla updates the proportionally to token balance change as:

The Weighted Average Purchase Block is then calculated as a ratio of these two variables:

Knowing this average block, The Holding/Trading Ratio (Squared) is calculated as:

where

  • is the block number, when a sell-transaction happens.
  • is the immutable epoch block 12134736, in which the Vanilla contracts were deployed to the mainnet.

The Holding/Trading Ratio (Squared) component can be interpreted as a ratio of two times:

  • Nominator is the holding time, the number of blocks the token has been held before selling. Keeping the trade open longer will yield higher rewards. If the duration is zero, i.e. the trade is closed in the same block it was initiated, the profit will be zero. This ensures that no flash loan attacks can be carried out.
  • Denominator is the total trading time, the number of blocks the Vanilla system itself has been operational. The total trading time will always increase.

In other words, the Holding/Trading Ratio (Squared) is just a ratio of times: The time the trade has been open compared to the time the system has been open. The times are measured in Ethereum blocks.

Simple heuristics to illustrate the core mechanisms

The following charts and tables depict simple heuristics of the incentive mechanisms. In all heuristics we vary one input in the VNL reward formula while keeping the other inputs unchanged and plot the amount of VNL in each case.

The first case observes the VNL attribution as a function of profits. We keep the Holding/Trading Ratios constant and inspect what happens to the attributed VNL. As we increase the sell price of the trade, while keeping the WAER constant, our profits increase. As profits increase 5-fold from 2 ETH to 10 ETH or 10-fold from 2 ETH to 20 ETH, there is almost a linear relationship with the increase associated with the VNL reward. A small difference to the linear dependence between ETH profits and VNL results from the change in Value Protection Coefficient.

The second case observes the VNL attribution when we keep profits constant, but vary the Holding/Trading Ratio (Squared). The ratio is determined by how early the trader is participating in the Vanilla system and how long they are keeping their positions before closing them. The following chart depicts a case in which we vary the sell block number and keep the weighted average block constant.

We can easily see that when the Holding/Trading Ratio (Squared) increases from 25 % to almost 100 % (factor of 4) also the VNL rewards increase accordingly.

A similar relationship can be seen by varying the WETH reserves of the tokens. The tokens with largest WETH reserves are more expensive to manipulate in price and thus yield more VNL.

Thus, we sum up the mechanisms:

  • The profit made in ETH determines the theoretical maximum of VNL attributed for a particular trade
  • The Value-Protection Coefficient and Holding/Trading Ratio (Squared) scale the theoretical value downward.

A trader can increase VNL rewards by:

  • Making higher percentage returns on his trades or trading larger ETH positions, i.e. making higher absolute ETH returns -> Higher profit component
  • Trading tokens with higher WETH reserves -> Higher Value-Protection Coefficient
  • Opening trades early as possible -> Higher Holding/Trading Ratio (Squared)
  • Holding the trades longer -> Higher Holding/Trading Ratio (Squared)

How will governance work in Vanilla?

Once the governance structures are in place, VNL holders will be able to determine the direction of Vanilla by voting on a variety of things such as changes to the profit mining algorithm, new trading and lending venues, treasury grant allocations and other ecosystem efforts.

Governance is planned to be implemented in Q3 2021 at which time we expect a reasonable amount of VNL token to have been mined and distributed around the ecosystem for voting to be feasible.