Lessons of Mercury

Optional
5 min readAug 28, 2021

--

Mercury (v0.1.2) is Optional’s first version, deployed as a preliminary to experiment with real-world conditions, to push ourselves out there, and review the interest. Essentially, the appetizer to the main dish.

Ever since the launch on June 18, there were so many things to uncover since the first day. It wasn’t a perfect launch, but we wanted to ship fast and get ourselves out there with real data to better understand the needs of the ecosystem. Let’s go through what we encountered:

1 Wei Depositor

Immediately after the launch, we noticed on Etherscan someone deposited 1 wei worth of WETH to the contract. There’s two possibilities as to why — hoping they would be included into some future airdrop OR the frontend’s defaulted choice to wei.

Whether or not the 1 wei deposit was intentional, we quickly determined that it wasn’t necessary and was removed to better improve the UI for end users.

User Flow

The user flow of the original website wasn’t at all great. The landing page was somewhat enticing, but immediately reaching the trade page the user was greeted with a dull-looking table. The way to view the social token wasn’t exactly clear, despite there being minimal buttons. It also felt extremely rudimentary as per user reports.

Original table-view design on the Trade page
Original table-view of the vaults on the “Trade” page

Since then, the user flow has changed with our site currently featuring the new Venus frontend design, being a bit more straightforward. We replaced the table-view with a new card-like style for the portfolio and available vaults.

Pre-Venus view of the “Trade” page

Selling Calls

Selling calls was weird. At the time, I (Amethyst) didn’t fully understand how AirSwap’s RFQ system worked, and the deadline was fast approaching. I did discover that AirSwap allowed an authorized signers feature that enabled trading on an account’s behalf. The major caveat of this approach is that it skipped signature verifications, so the social manager potentially could screw over the market maker by modifying the order’s parameters (e.g., sell amount, premium amount).

The good news? No one else managed a social token except the Optional team (via Gnosis Multi-Sig).

As a result, we’ve made sure to get the AirSwap RFQ system fully fleshed out and working. In the upcoming Venus update, this will no longer cause concern for the market maker and better improve the UX for the manager as well.

Depositor Protections

Mercury vaults were designed with the idea that a depositor is obligated to stay inside the vault and take the hit of an exercise. However, as we evaluated an upgraded design and consulting some community members (thank you by the way), this could be easily abused. Once the withdrawal window is closed, it cannot be opened by anyone except by the manager by doing:

  1. Writing calls then burning all of them.
  2. After the options expire, settling the vault.

This presented an unnecessary degree of trust with the social trader. A malicious social trader could easily take hostage of user funds within their social token.

We have made several critical changes to the design to mitigate this in Venus where users can withdraw under the following circumstances:

  1. The withdrawal window is open.
  2. The withdrawal window is closed, but the social trader has not written calls yet.
  3. The withdrawal window can be reactivated if it is closed, but the social trader has not written calls in more than 24 hours or the length of the withdrawal window, whichever is greater.
  4. The options expire and have fully settled, the vault can be settled by anyone.
  5. If the social trader had set up reserves, then users can exit during an active round. Exiting during an active round that is ITM will result in a penalty. The penalty will be redistributed to depositors to offset the potential exercise loss.

In addition, since anyone can create an oToken and the manager can assign that oToken, it is plausible they could write an extremely deep ITM call and cause up to a 100% loss. We’ve patched this potential issue by restricting an ITM call by 5%, otherwise an error is thrown at the social trader.

Fee Generation

Mercury did not implement a fee generation for either the protocol or the social trader. As a result, this presents an existential issue for Optional’s future and as well as a disincentive for the social trader to not act against its followers.

With the Venus upgrade, we introduce fees for both the protocol and at the social trader level with deposits, withdrawals, and performance fee (premiums received for selling calls). This helps incentivize the social trader to perform optimally, and as well funds the future growth of Optional, lessening dependence on external funding such as grants.

Vault Growth

Aside from all of the new features, let’s take a look at how our vault grew. After the announcement of Optional, the vault had four unique depositors (the vault was initialized with 0.1 WETH by Amethyst) amounting to about 0.705 WETH. During the active two-week round, an additional 0.298 WETH was deposited, increasing the total to just over 1 WETH.

However, that wouldn’t last long as depositors slowly withdrew with the final amount holding at 0.644 WETH at the time of writing. Since then Optional was able to obtain three unique depositors that aren’t a part of the Optional team within the past 63 days (at the time of writing).

The team-managed vault never got exercised, and slowly grew depositor’s holdings as the premiums continued to rack up. However, new deposits faltered as time went on. Discussing this with some community members, one was concerned about gas costs, while others simply were still observing Optional to determine if it is safe.

What can be done to improve growth? We’ve done our best to improve the user flow as some visitors have complained about the old design and lack of clarity. We’ve also done our best to better include essential features for both depositors and social traders alike. In addition, we’re evaluating focusing our efforts into attracting social traders or attracting depositors.

Overall, we’ve learned a lot for our first release! Many big changes to both the frontend and the upcoming smart contract upgrades bundled into Venus. Stay tuned for the release of Venus. We do have something planned to let users try out the product in a testnet!

Make sure to keep tabs with us on Discord or Twitter!

Optional: https://optional.finance

Discord: https://discord.optional.finance

Twitter: https://twitter.com/OptionalFinance

--

--

Optional

Optional is a decentralized social trading platform utilizing DeFi options on Ethereum.