Stabilize Wiki

Bienvenue dans le Stabilize Wiki !

The Stabilize Protocol is a decentralized finance application designed to help keep stablecoins and BTC proxy tokens prices stable by rewarding depositors with STBZ tokens and by using active strategies to balance coin demand. Users have the option to swap pools manually to achieve a higher rate of reward or deposit into the active strategies that swap tokens on their behalf.

The team actively monitors the latest developments in stablecoin advances and plans to integrate those that can help bring more value to the platform.

Unlike other yield farming platforms, Stabilize will benefit the entire DeFi ecosystem as a whole by bringing stability to stablecoins.

Overview

What is the problem?

Stablecoins are cryptocurrencies designed to be pegged to or float near fiat currencies. This gives traders and savers comfort knowing the value of these coins in the real world will be the same tomorrow as it is today. This is the goal of stablecoins but sometimes is not the reality. In reality, stablecoins sometimes go off their peg for an extended period of time due to fluctuations in demand and supply issues. This can cause a headache for those who depend on the stability of their stablecoins for everyday usage.

How is Stabilize the solution?

The Stabilize protocol currently has 2 types of pools: ZS pools and ZPA pools. In ZS pools, active arbitrage and trading strategies are used to provide sell pressure on stablecoins above their peg and buy pressure on stablecoins below their peg, stabilizing the prices and generating profit for users. In ZPA pools, the yield of each pool will changes according to the stablecoin price of that pool, but depositors must manually switch pools to earn higher yield (which provides stabilizing pressure on the stablecoins in the protocol).

Unique to Stabilize is the fact that these pools are not liquidity pools but rather stablecoin pools thus depositors are protected from impermanent loss. Initially, there will be one liquidity pool on Stabilize, which is a STBZ/ETH 50:50 Uniswap pool.

Tokenomics

Rewards will start distributing September 29th, 2020 at 00:00 UTC. During the first year, it is expected that 1 million STBZ tokens will be minted to protocol users. There are no VC investors and no presales of STBZ. After the first year, there will be constant inflation rate of new tokens minted that will be offset by a new per-transaction burn rate. The initial inflation rate is 1%, and the burn rate is to be determined. The first year minting rate is below:

  • Week 1: 76,000 STBZ

  • Week 2: 57,000 STBZ

  • Week 3: 38,000 STBZ

  • Week 4: 19,000 STBZ

  • Week 5–52: 16,875 STBZ

The pools have unequal allocation of tokens with the STBZ/ETH pool receiving 50% of all new tokens initially and the other pools splitting the rest based on their price compared to $1.

Only during the first year, the development team will receive 1% of tokens minted, after which it will decrease to 0%. Initial liquidity from the team is locked on Unicrypt for 1 year. The team will use dev funds generated from the protocol to maintain it and pay for services, such as audits.

Long term usage of STBZ

STBZ is currently used in a few ways:

  1. STBZ holders can stake their tokens in the STBZ-only staking pools, which allows them to earn a percentage of the profits generated by the protocol

  2. STBZ tokens are used for governance

  3. STBZ can be burned into the treasury to receive a proportional share of the funds inside

Security

The development team takes security of your funds and your rewards seriously. Although most of the code is based on audited and battle-tested code, the team plans to dedicate a portion of its funds for smart contract reviews and audits. Many protocols give the development team full control over minting of their reward token. This is a security risk because at any time, the developers can mint infinite tokens and destroy all liquidity pools for that token. In the Stabilize protocol, the smart contract controls the minting rate and the only thing the development team can do is decrease it. In addition, all governance functions are controlled by a 24 hour timelock. This gives depositors enough time to make a decision to stay in the protocol or not. The pools reward rates are dictated by their USD prices. This can be updated every 6 hours. Unlike other protocols that use the development team as the source for real world data, Stabilize uses on-chain decentralized price oracles powered by Chainlink and Aave to access this data. These price oracles are resistant to flash crashes and manipulation.

Functions that keep the protocol running (pool rebalancing and new week minting) can be called by anyone, not just the development team.

  • Price Oracle Address: 0xB54e7175db55D0Effcc974f146b3714910907A58

  • Token Address: 0xB987D48Ed8f2C468D52D6405624EADBa5e76d723

  • Operator Address: 0xEe9156C93ebB836513968F92B4A67721f3cEa08a

Liquidity Providers

A liquidity provider is anyone that has deposited STBZ and ETH into the uniswap liquidity pool. Liquidity providers can further stake their tokens in the STBZ/ETH UNI LP POOL to earn a large percentage of the STBZ rewards.

How to Become a Liquidity Provider

You can become a liquidity provider either through the Uniswap Liquidity Pool or the Zerion LP Interface:

Uniswap liquidity: https://uniswap.info/pair/0xDB28312a8d26D59978D9B86cA185707B1A26725b

Zerion LP Interface: https://app.zerion.io/invest/pools-10/UNI-V2-0xdb28312a8d26d59978d9b86ca185707b1a26725b

LP Tokens

When you deposit into the LP pool, you should notice that you have received STBZ-ETH in return. These are LP Tokens, and they represent your share of the underlying tokens in the liquidity pool. After you receive LP Tokens, you can stake them in the STBZ/ETH UNI LP POOL to earn STBZ rewards.

At any time, you can return LP Tokens to the liquidity pool to withdraw your share of the underlying STBZ and ETH. LP Tokens are transferrable between accounts, and you do not need to be the person that deposited the underlying tokens in order to withdraw them; whoever has LP Tokens has the right to withdraw the underlying token.

Executors

Executor incentives make the active trading process more streamlined and profitable. Executors are people that are rewarded for executing trades on behalf of depositors at the right time.

What is an executor?

An executor is any person that triggers a trade, by calling the above function in the strategy, on behalf of the depositors in the pool. Anyone can be an executor. Executors earn a percentage of the trade profit, starting at 10%.

A successful executor is one that is profitable and knows when to trigger trades that will give him/her profit that is greater than the gas cost of triggering those trades. To do that, he/she must monitor the pool’s composition, price spread between tokens and Ethereum gas price to calculate profitability. The executor can also periodically query the helper view function on the strategy shown below to determine when to trade:

While on most yield earning protocols, there exists one strategist that must monitor and earn a percentage of the trading fees, we at Stabilize decided to make the process more open and reward anyone that has the ability to monitor the market a piece of profit from our strategy profits.

How to become an executor:

The easiest way to start is the develop an off-chain bot that monitors the strategy continuously. This bot would query the expectedProfit function which returns wei units (10¹⁸ wei = 1 USD / BTC), calculate its own expected profit (10% of the expected profit) then calculate the gas cost based on current gas prices. If the profit is greater than the gas costs, the bot would create a transaction to executeSwapTokens with its own address as the parameter to receive its percent of profit. The bot will also set a minimum seconds since the last trade to limit its gas cost in case someone else beats it to the trade.

In the end, the executor will make continuous profit, trading depositors funds at the right times and depositors will make the best compound interest possible as their funds are traded at the most profitable times. It is important to note that the contract itself doesn’t allow for trading at a loss.

Trade executors can earn 10% profit off each trade by timing the trade at the right time. The expectedProfit(bool inWETHForExecutor) function now includes a boolean that allows executors to see their WETH profit from the next prospective trade, instead of total profit (in tokens) for the trade.

STBZ holders also benefit as some funds are siphoned to both the treasury and the staking pool too.

Governance

https://snapshot.page/#/stabilize

The development team will navigate the early path for the protocol but once bootstrapped, the community will control the protocol. Various methods of control could be changing important aspects of the protocol such as the burn rate, the emission rate and what new token pools are accepted. STBZ holders can develop a system that rewards token holders for providing liquidity to new stablecoin projects to further promote the usage of stablecoins.

Anyone can make a proposal via the Snapshot page. When the proposal is live, community members can then vote with their STBZ tokens to make a real impact on important decisions in the protocol.

Soon, users will be able to vote even if their stbz tokens are currently locked in staking pools!

Treasury

As mentioned previously, all withdrawal fees go directly into the treasury contract. STBZ holders can redeem these funds with their STBZ tokens. They will simply burn their tokens into the treasury to receive a proportional amount of treasury funds compared to the circulating supply. Circulating supply is defined as all STBZ tokens outside the Stabilize Protocol operator contract. For example, if I have 500 STBZ tokens and the circulating supply is 10,000, I have 5% of the circulating supply. If the treasury contains 100,000 USDC, I will be able to redeem 5,000 USDC by burning my 500 tokens. This will make STBZ an asset-backed token whose value is beyond its speculative price.

Gas Treasury

In addition to the normal treasury, there is a special treasury called the Gas Treasury

A percentage of profits from trades and withdrawals is sent to the STBZ staking pool as rewards for STBZ holders

Private Transactions

The Stabilize Protocol is introducing a new way for stablecoin depositors to store their coins. By utilizing the Tornado protocol, users can benefit from private transactions, meaning transactions that disconnect the sender address from the receiver address. When a user withdraws from a Stabilize account, observers would be unable to determine what his/her balance would be inside the account.

This allows depositors to benefit from something they normally get in the real world, private balances. In the real world, when you give someone money, it is not possible for that person to easily determine your remaining balance and track all your transactions, future and past. Unfortunately, with most cryptocurrencies including Ethereum, this is something that can easily be done. This can compromise your privacy and safety and make you a potential target of scammers, hackers and worse.

With Stabilize private accounts, depositors can get one step closer to the real world. They deposit into the account with their deposit note only known to them, then at a later time, can use the note to redeem the deposit amount to another address of their choosing, including receiving ETH amount of their choosing to pay for future transactions. When observers see the withdrawal, they can see that it came from Stabilize accounts but will be unable to determine who the initial depositor was for that withdrawal, thus protecting their safety and privacy.

This is the first and only DeFi yield farming application that builds upon what the Tornado team has designed to help bring more security to stablecoin depositors.

How to use it:

To use, simply unlock the account you want to use, either DAI, USDT, USDC. Then, select the amount you want to deposit, either 100 or 1000 stablecoins at a time. You can only deposit these amounts as they become part of an anonymity set. You then generate the note. Each deposit requires a different note and the note is what you will need to use to withdraw. Save it securely like you would a private key and do not share it with any other person including our team. Finally, deposit your stablecoins into the accounts.

When you are ready to withdraw, you enter your saved note into withdraw field and follow the prompts to withdraw. You enter the recipient address and any additional ETH you would like to receive upon withdraw. You can also tip extra to accelerate the time it takes to fulfill your withdraw request. When you press “Request Withdraw”, a zkSnark proof is created in your browser. This proof and its accessory details are stored on a list of withdraw requests. Anyone can see this list and submit a transaction to the Ethereum blockchain with your proof to earn part of the fee specified in your withdrawal request. In that same transaction, the remaining amount goes to the recipient you specified with the ETH amount requested.

How does this benefit Stabilize?

As mentioned earlier, the Stabilize protocol is a platform to help stablecoins keep their pegs. We can even do this with private accounts. The withdrawal fee depends on the price of the underlying stablecoin. Essentially, the higher the price, the lower the fee and vice-versa. This is done to encourage withdrawing and selling of stablecoins that are too plentiful to bring them back down to their peg. Part of this withdrawal fee goes directly into the Stabilize Community Treasury.

Audits

Audits are currently pending from https://bramah.systems/

Dernière mise à jour