Testnet Phase 1 Closed (for now)
What we’ve learned & what lies ahead!
In just over 3 weeks, the Vertex testnet dApp saw 50k+ unique users interact with it and we’ve received hundreds of feedback form responses. Thank you to everyone who participated in Phase 1 of our testnet release 🙏
With that said — we’re writing this post to inform our community that we will be closing Phase 1 to focus our efforts on phase 2 of the testnet. We are excited about what lies ahead.
Phase 1 has been an incredibly useful and constructive period of time for Vertex and our community.
As useful as testnet is, we don’t want it to be a distraction. Phase 2 will introduce a new Vertex interface and clearinghouse contract with the power to handle a range of capabilities requested by users + more 👀
We would like to take this opportunity to share what we’ve learned so far, and what lies ahead for Vertex. Let’s dive in!
Main sources of confusion
Firstly, it’s important to remember that as great as testnet is, it doesn’t adequately represent a mainnet environment. Many of the issues, be it simple connection problems or irrational decisions, would likely only be present in an environment where money didn’t matter and a user’s decision didn’t impact them.
Market was overly LONG 🐂
For instance, a significant majority of trades testnet users placed were LONG. This resulted in a perp that consistently skewed positive and was ~10% above the index (oracle) price. Although this would of been a sh*tty set-up under real conditions, testnet funds meant users didn’t care and continued to place longs which added to the problem.
In addition to this, our arbitrage bots simply couldn’t keep up. We had set some limitations around wallet size which impacted the amount our bots could arb. On mainnet however, we will have more control via whitelisted wallets to ensure smooth market operation until we reach full capacity.
Index vs. Mark Price
Perhaps one of the most common sources of ‘bug ser’ we received was to do with the difference between index and mark price, and how values interpreted it on the frontend. First a primer:
Index = oracle = FX markets price feeds
Mark = vAMM = xy*k
A perpetual’s mark price will often differ from the index price, and the funding rate is therefore used to push the price closer to each other (read this). However, as mentioned above, the mark prices on Vertex were often ~10% above the index due to an overwhelming percentage of LONG positions and lack of arbitrage capabilities.
So, what was the confusion?
With the majority of users going long, many started to find that the vAMM stopped offering the ability to place long trades with a lot of leverage. Our contracts contain a concept of maximum deviation between vAMM and Index prices, to ensure that if our market is not functioning as expected, additional trades are blocked. This protects users from illiquid markets, excessive slippage and irrational behaviour — hence shorting always worked in this unusual situation but going long some markets didn’t.
Additionally, we had set PnL to be calculated using the Oracle price to be in line with our liquidation calculations, but trades are always executed against the vAMM. When users entered a trade, their position would instantly show an unrealistic PnL caused by the 10% discrepancy between the two.
When the trade was placed, it was executed at for example $1.2 against the AMM. Since PnL was calculated using the index price, which was in this example $1.08, it instantly showed a large loss or gain based on whether they took a long or short position.
The same can be applied to closing a trade. The PnL users saw that open positions didn’t carry over to their account’s equity after closing. Again, the PnL was based on the oracle whereby closing the position meant executing against the vAMM’s price. Additionally, the PnL didn’t take into consideration fees and estimated slippage. This was eventually factored in to solve for discrepancies between unrealized and realized.
This PnL calculation also caused confusions with account values on the dashboard. Taking all this into account, we made the change and PnL started to be calculated using the vAMMs price. This cleared up confusions, but it’s important to note that liquidations are based on the index price. Moving forward, our aim is to equip traders with the tools to choose between mark and index when it comes to displaying account values.
Not leaving UST to pay ⛽
As explained in this tweet, a common cause of errors was users not leaving UST in their wallets to pay gas fees.
To open positions on Vertex, users must deposit collateral into the clearinghouse contract which lets them take on leverage. Depositing collateral means the funds leave the users wallet. If a user forgets to leave UST in their wallet, then transactions will fail due to the inability to pay gas.
We have since added prompts to the collateral dialogs and trade/pools page to remind users to keep undeposited UST in their wallets.
It’s important to note that Vertex is at all times non-custodial and managed entirely by smart contract code. Even though deposited funds leave a user’s wallet, they can always withdraw them so long as they meet margin requirements.
Other common confusions:
- Connection errors — whereby users would first connect while on mainnet, then switch to testnet. This would result in a failed tx.
- Flat charts — the chart was based on the oracle = fx markets = closed over the weekend. Thereby, the charts had no data and as with FX markets, the price stayed flat from Friday’s closing at 5:00PM eastern till Sunday 5:00PM eastern.
In Summary — More Information & Education 💪
As a takeaway, we have learned how important information and education are. For instance, we realized it was a lot of users’ first time trading cross-margin and so the dashboard values were confusing for some. By adding the hover-over info icons we were able to help first-timers get up to speed.
Additionally, better communication of the differences between index and mark prices and its impact on PnL, would have saved confusion. However, this feedback and interaction have helped us understand how our users want to use our platform and are being incorporated into our roadmap.
Our aim is to give users the best experience possible. It’s clear that this will require further education and documentation moving forward. We aim to prepare the following for phase 2:
- Platform videos & walkthroughs
- More comprehensive documentation
- Info directly on the UI/UX
Common suggestions 💡
We are excited to see so many of our community members share their suggestions for Vertex in Discord and via our feedback forms. We heard you all loud and clear and cannot wait to incorporate the community’s feedback into Vertex’s product. Below are the community suggestions that stood out, and will be of priority moving forward.
- Navigation Shortcuts
Whether it came to depositing collateral or closing positions, we learned that users love shortcuts. Our team implemented various shortcuts, such as % buttons or direct links to positions on the dashboard, and we will continue to apply this to the user experience in Phase 2.
- Charting 📊
It is evident that users want sophisticated trading tools. Offering candlestick charts and indicators wasn’t a priority for phase 1, but is an integral part of our product roadmap.
- Historical data
We agree — data points like trade history, average entry and portfolio growth are great! However, similar to charting, we didn’t consider it crucial for a testnet (where the focus was on proving an MVP). That said, our team is working on building the infrastructure needed to bring users this information.
- Leverage slider
When placing a trade, users could manually input the size or use the leverage slider. Our first iteration of the slider skipped some multiples (i.e 10.5x or 14x no in between). Although flawed, we wanted users to get comfortable with this feature. Our second iteration will be much more precise.
- Dark/Light mode 🌑 🌕
So many people want this feature, how could we not have it…
Something to note — our Phase 1 testnet product was inherently scrappy. We didn’t take months to build and polish it. Instead, it was simple, lacked the bells and whistles but served its purpose to test contracts, address users’ initial confusions and learn what traders want. We enjoyed iterating on it, but it was far from our fully fleshed-out product…
Up Next — Testnet Phase 2 🏔
In Phase 1, we introduced on-chain perpetual swaps to Terra. In Phase 2, we will introduce a new clearinghouse contract that will enable the most asked for features from users + more.
We can’t give you an estimated date for launch yet. Our team is heads down and the aim is to get on mainnet during Q2 of 2022. We will deploy to testnet (Phase 2) prior to that and keep the community updated as we progress.
Vertex is creating the premier decentralized leveraged trading facility for Terra. Phase 2 focuses on improving capital efficiency and introducing new capabilities for users. This will be presented on a revamped interface, ready to unleash the power of DeFi everywhere 🌍 💸
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —