How Levy works

Liquidity vaults for Robinhood Stock Token pools on Uniswap, valued at Chainlink prices.

Overview

Levy runs one vault for each of 18 Uniswap v3 pools that pair a Robinhood Stock Token with USDG on Robinhood Chain. Each vault is the liquidity in its pool: when someone swaps the stock for USDG or back, the pool charges a fee, and the part of that fee earned by the vault's position belongs to the vault's depositors.

You deposit USDG and receive vault shares. The vault holds one concentrated position, collects its fees and adds them back, so the value of each share grows with the fees earned and moves with the price of the stock.

Depositing

A deposit takes USDG and mints shares at the vault's current value per share. That value is computed at the Chainlink price of the stock, never at the pool's own price, so nobody can move the pool to buy shares cheaply.

The minimum deposit is 1 USDG. Each vault has a deposit cap, shown when it is reached. A deposit is accepted only while the pool trades within 2% of Chainlink.

New USDG waits in the vault until the keeper's next run, usually within five minutes, then joins the position. It already belongs to your shares while it waits.

The position

Each vault keeps a single Uniswap v3 position about 10% either side of the current price. Liquidity concentrated near the price earns far more per dollar than liquidity spread over every price, because most trades happen near the price.

To add money, the keeper swaps the idle USDG into the mix of stock and USDG that the range needs at the current price, then adds both to the position. Every swap the vault makes must fill within 1% of the Chainlink price plus the pool fee, or it reverts.

When the price walks outside the range, the position stops earning. The keeper then closes it, swaps to the right mix and opens a new range centred on the price. Anyone can trigger this move once the position is out of range, not only the keeper.

Fees and yield

The yield is the trading fees the position earns: 0.05%, 0.3% or 1% of every swap through the range, depending on the pool. On each run the keeper collects them and adds them back to the position.

Levy keeps 10% of the fees collected. Half goes to the keeper's wallet to pay for its gas; half goes to the treasury. There is no fee to deposit or withdraw.

The Fee APR shown in the app is each pool's fees over the last 24 hours as a yearly share of all the liquidity in that pool, from DexScreener. It is a measure of how busy the pool is, not a promise: volume changes every day, and a concentrated position earns more or less than the pool average depending on where the price trades.

Withdrawing

Withdraw burns your shares and returns your part of the vault: its share of the position, of the idle cash and of the fees collected so far. The stock part is sold back to USDG within 1% of Chainlink, so you receive USDG. You can set a minimum and the transaction reverts if the result is below it.

Withdraw in kind needs no price at all. It returns your part of the USDG and of the stock as they are. It is there for the case where a pool is off its Chainlink price, for example over a weekend, and a normal withdrawal is paused by the 2% check. It always works.

Pricing and safeguards

Every vault reads the stock's Chainlink feed on Robinhood Chain through a price adapter. A feed answer older than its allowed age is rejected.

Deposits, withdrawals in USDG and keeper runs require the pool's price to be within 2% of Chainlink. This blocks the classic attack on liquidity vaults: pushing the pool price to mint shares cheaply or to make the vault trade at a bad price.

The owner of a vault can change the range width, the allowed price gap, the swap tolerance, the fee share and the deposit cap, each within fixed limits set in the contract. There is no function that lets the owner move depositors' money anywhere.

The keeper

The keeper is a small program that runs every five minutes while the stock feeds move, Monday to Friday. For each vault it asks whether there is idle money to add or a position outside its range, and calls the vault's work function when there is.

Its gas is paid by its half of the fee share, swapped from USDG to ETH when it runs low. If the keeper ever stops, deposits and withdrawals keep working, and anyone can re-centre an out-of-range position.

Risks

Price exposure. A liquidity position holds both sides. As the stock falls the position holds more of it, and as it rises, more USDG. Compared to simply holding, this costs value when the price moves a lot in one direction. Fees offset it, but a large move can leave a position below its deposit.

Moves while out of range. Between the price leaving the range and the keeper moving it, the position earns nothing. Each move sells and buys at the price of the moment.

Weekends and halts. Stock feeds stop between market sessions. If a pool drifts more than 2% from the last Chainlink price, USDG withdrawals and keeper runs pause until it comes back; withdraw in kind still works.

Smart contracts. Levy's contracts are new and unaudited. They rely on Uniswap v3, Chainlink and the Stock Tokens themselves. Deposit only what you can afford to lose.

Contracts

VaultPool feeUniswap poolVault contract
DELL / USDG1.00%0xc30c…Fc5a0x6992…1630
USO / USDG0.30%0x0217…D9150x02d0…dFE9
GME / USDG0.05%0xE2b4…B1260x6Db2…3D3a
INTC / USDG0.30%0x2e5a…F56a0x1341…C55c
SLV / USDG0.30%0x8cB7…cb3D0xfc42…Ce2f
MSTR / USDG1.00%0x1757…53EA0x425C…bae3
NVDA / USDG0.05%0xd4EB…14a30xff33…8d93
PLTR / USDG0.30%0x8516…54c00x8126…1EB8
AMD / USDG0.30%0x48D2…a51f0x66a1…991E
GLD / USDG0.05%0xBA2f…59130x8cE5…B018
CRCL / USDG0.30%0x654E…95a80x5626…4096
MU / USDG0.30%0xd057…35E50x61D7…7136
SPCX / USDG0.05%0xc612…00290x4c9d…250B
TSLA / USDG0.30%0xf4AC…89E30x4287…C57f
AMZN / USDG0.30%0x8AC9…79Ef0x9009…3f20
GOOGL / USDG0.05%0x34D0…19b70x83eF…F223
AAPL / USDG0.05%0xAae0…2d6D0xc690…e0E8
QQQ / USDG0.05%0xD60A…597d0x40E5…144e

Positions are Uniswap v3 NFTs held by each vault. Prices come from Chainlink feeds on Robinhood Chain. Open the app