About vertex

Vertex Protocol is a cross margin spot, perpetuals and money markets powered by hybrid unified central limit order book (CLOB) and integrated automated market maker (AMM). The on-chain smart contracts of Vertex are deployed on Arbitrum, Blast and Mantle and the orderbook is an off-chain sequencer node layered on top of smart contracts.

Vertex website: https://vertexprotocol.com/

SkateFi Vertex vault

SkateFi runs vaults on Vertex. The vaults feature functionalities for LPs to open and close their positions. A vault has a manager and linked signer. The manager is responsible for moving funds between vault and vertex while linked signer performs trades on Vertex with the funds moved from the vault.

Functionalities

Vault users can perform following functionalities:

  1. A user can LP into the vault (open position) by depositing USDC (USDB for the vault on Blast) into the vault. The LP is minted vault shares that represent ownership of user in the vault.

  2. A user can burn their vault shares (close position) to withdraw their share of USDC from the vault. The user withdrawal is subject to the availability of passive USDC in the vault. A manager is obliged to maintain enough passive USDC balance in the contract for the LP to redeem their shares. More details about how much is available for user to withdraw is described in the Burn LP token section. A managing fee cut (0.5%) is taken from the withdrawing amount and the remainder is sent to the LP.

Withdrawable amount from the vault

A user receives underlying USDC token (USDB for the vault on Blast) upon burning their vault LP token. The amount of tokens users can burn depends upon how much passive balance of USDC/USDB is available in the vault. The maximum a user can withdraw at a given time cannot exceed the passive balance of the vault since the user’s withdrawing amount is paid from the passive balance.

To understand it further, lets go over the following two scenarios.

  • The vault has 15,000 USDC as passive balance and the withdrawing user’s total position’s underlying amount is 12,000 USDC. The user should be able to burn all of their LP tokens and receive 12,000 USDC.

  • The vault has 8,000 USDC as passive balance and the withdrawing user’s total position’s underlying amount is 12,000 USDC. The user can only burn 66.66% of their shares and withdraw 8,000 USDC. The rest of 33.33% vault shares can be burned once the vault manager rebalances the positions on Vertex and move funds to the vault.

In the image below the user’s total underlying balance is 69,743.2 USDC but since the passive balance in the vault is only ~130 USDC, the withdrawal amount at the moment for the user is only ~130 USDC (129.5 USDC to be exact). The user will be able to withdraw the rest of their balance once the manager rebalances the vault and moves funds from Vertex to the vault.

An example of withdrawing liquidity

LP Pricing Mechanism

A function on the vault getUnderlyingBalance returns the current holding of the vault in USDC (USDB for the vault on Blast) and this balance can be used to price LP token using the formula getUnderlyingBalance() / totalSupply().

Incentive distribution

All incentives earned by the vault are given back to the users. The ARB and VRTX incentives earned by the Arbitrum vault are claimable by the users on the vault’s UI and are updated at the end of each rewards respective epoch.

User can click `Claim` to claim their rewards

The Blast Points and Blast Gold earned by the Blast vault are transferred to the users directly by Skate team after the epoch ends.

Oracles

SkateFi uses RedStone Oracles as the primary solution for asset pricing on Mantle. RedStone is a Modular Oracle that delivers frequently updated, reliable, and diverse data feeds in a few models. SkateFi utilizes Classic model which ensures that data is pushed into on-chain storage via a relayer with set conditions. (heartbeat and deviation threshold)

Deployments

SkateFi - Vertex vaults are live

ChainVault
Arbitrumhttps://app.skatefi.org/derivative/arbitrum/0x849dd9d48337d1884c3be140ba27cbe63b81d7be
Blasthttps://app.skatefi.org/derivative/blast/0x508304f8f03b9f767ea77ac1ecd9c5f749d8d742
Mantlehttps://app.skatefi.org/derivative/mantle/0x34d63ef1189d925f47876dcbf7496d0598c6156d