How Orrery works.
Liquidity vaults on the WETH/USDG pool of Robinhood Chain.
Overview
Orrery runs three liquidity vaults on one pool: WETH/USDG on Uniswap v3, 0.01% fee tier, the most traded market on Robinhood Chain. Every swap on that pool pays a fee to the liquidity that is in range at that moment. An Orrery vault is that liquidity, managed for you.
You deposit USDG and receive vault shares. The vault holds one concentrated position around the ETH price, collects its fees and adds them back, so the value of a share grows with the fees and moves with the price of ETH.
The three orbits
The three vaults are the same contract with a different range width. The narrower the range, the more fee each dollar earns while ETH trades inside it, and the more often the range has to move.
| Orrery Inner Orbit | oINNER | ±2.0% (200 ticks each side) |
| Orrery Middle Orbit | oMIDDLE | ±5.1% (500 ticks each side) |
| Orrery Outer Orbit | oOUTER | ±12.7% (1200 ticks each side) |
Depositing
A deposit takes USDG and mints shares at the vault's current value per share. The vault values everything it holds at a reference ETH price, never at the pool's own price, so a pushed pool cannot be used to buy shares cheaply. A deposit needs the pool within 2% of that reference.
The minimum is 1 USDG and each vault has a deposit cap. New USDG waits in the vault until the keeper's next run, usually within five minutes, and already belongs to your shares while it waits.
The position and re-centring
To add money, the keeper swaps the idle USDG into the mix of ETH and USDG the range needs, then adds both to the position. Every swap the vault makes must fill within 1% of the reference price plus the pool fee, or it reverts.
When ETH walks outside a range, that 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 a position is out of range, not only the keeper.
Fees and yield
The yield is the trading fees the position earns. On each run the keeper collects them and adds them back. Orrery keeps 10% of the fees collected: half goes to the keeper's wallet to pay its gas, half to the treasury. There is no fee to deposit or withdraw.
The pool fee APR on the site is the pool's fees over the last 24 hours as a yearly share of all its liquidity, from DexScreener. It measures how busy the pool is, not what you will earn: a concentrated orbit earns more than the average while ETH stays in its range and nothing while it moves.
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 ETH part is sold back to USDG within 1% of the reference price, and you can set a minimum below which the transaction reverts.
Withdraw in kind needs no price at all: it returns your part of the ETH and the USDG as they are. It is there for the moment the pool is off its price and a normal withdrawal is paused. It always works.
The keeper
The keeper is a small program that runs every five minutes, every day. For each orbit 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 from its half of the fee share. If the keeper ever stops, deposits and withdrawals keep working and anyone can re-centre a range.
Risks
ETH price exposure. A liquidity position holds both ETH and USDG and shifts between them as the price moves. Compared with simply holding, this costs value after a large move in one direction. Fees offset it, but a big move can leave a position below its deposit.
Re-centring. Every move sells and buys at the price of the moment. In a fast market the Inner orbit can move often.
Smart contracts. The contracts are new and unaudited. They rely on Uniswap v3 and the reference price feed. Deposit only what you can afford to lose.
Contracts
| WETH/USDG pool (Uniswap v3, 0.01%) | 0x52e6…71Ca |
| Orrery Inner Orbit | 0x2811…e99F |
| Orrery Middle Orbit | 0x6D74…C8dE |
| Orrery Outer Orbit | 0xbe61…AEb6 |
| Vault factory | 0x90d8…70B5 |
| Price adapter | 0x6989…0F9F |
| USDG | 0x5fc5…d168 |
| WETH | 0x0Bd7…AD73 |
Positions are Uniswap v3 NFTs held by each vault. Open the app