Stockpool

How Stockpool works

What Stockpool is

Robinhood Stock Tokens trade on Uniswap v4 on Robinhood Chain. Every swap pays a fee to the people supplying the pool. Stockpool turns that into a deposit: you put USDG into a stock’s Pool, and a keeper holds it as one concentrated range in that stock’s USDG pool, centred on Chainlink’s price. The fees it earns compound into your shares.

There are three ways in: a single Pool, the Basket (every Pool at once), and Borrow (loans against Pool shares, or lending).

Pools

Each Pool is an ERC-4626 vault for one stock. Your shares are valued with Chainlink’s price for the stock, through Chainlink’s USDG/USD feed, never with the pool’s own price. Deposits are refused while the pool is more than 2% away from Chainlink, so nobody can push the pool to buy shares cheaply or sell them dearly.

The keeper places the range about 12% either side of the price and moves it when the price walks toward an edge. Any swap it makes to rebalance is checked against Chainlink and refused if it loses more than 1%. Each Pool has a deposit cap.

You can withdraw an exact amount of USDG while the price is live (if the Pool has to sell stock to pay you, that cost is yours, at most 1%), or withdraw in kind at any time: your share of the stock and USDG, with no price and no swap.

The Basket

One deposit spread across every Pool. The keeper keeps about a fifth in USDG for withdrawals, tops up the Pools that hold the least, and the contract refuses any move that would put more than 40% into one Pool. Withdrawals in USDG come from that reserve. Like the Pools, the Basket takes deposits and pays USDG only while every Pool it holds has a fresh price and trades within 2% of Chainlink. Withdrawing in kind always works and hands you your slice of the reserve plus your slice of each Pool’s shares. The Basket charges no fee of its own.

Borrow and lend

Each credit line lends USDG against one Pool’s shares. Pledge shares (they keep earning) and borrow up to 40% of their value. The rate moves with how much of the line is borrowed. If a loan grows past 55% of the shares’ value, anyone can repay up to half of it and take shares worth 6% more than they repaid. A line can hold at most 30% of its Pool’s shares as collateral.

Lenders supply USDG and earn the interest, less a 10% reserve that goes to the fee router. Each line is isolated: bad debt in one never reaches another. Borrowing needs a fresh Chainlink price; repaying never does.

Fees and $SPOOL

Of every swap fee a Pool earns, 70% stays in the Pool for its depositors and 30% goes to StockpoolFeeRouter, along with the credit lines’ reserves. The router forwards everything to StockpoolBuyBurn.

StockpoolBuyBurn can only buy $SPOOL on its Pons pool and burn it. Runs are capped and at most hourly, and it has no withdraw function. $SPOOL launches on Pons; until its pool is registered after graduation, fees wait in StockpoolBuyBurn.

Who can change what

Every setting (caps, fee share, risk limits, price feeds, the Basket’s Pools) is changed through StockpoolTimelock, which makes each change public for 48 hours before it can run.

The guardian can pause new deposits and borrowing and lower caps, never raise them. Withdrawals, withdrawals in kind and repayments stay open while paused. The keeper can move a Pool’s range and the Basket’s money between its Pools, inside the Chainlink checks; it can never send funds anywhere else.

Risks

  • A concentrated range earns more fees but sells into a falling stock and buys into a rising one, so a Pool can end up worth less than the USDG put in.
  • When a Chainlink stock price goes stale (its feed stops updating, as it does over weekends), deposits, USDG withdrawals and borrowing wait; withdrawing in kind does not.
  • Stock prices can jump when trading resumes. A loan past its limit can be liquidated at a discount.
  • The contracts are tested against the real Uniswap v4 code but have not been independently audited.
  • Nothing here is investment advice.

Contracts

Every Stockpool contract carries the Stockpool name and is verified on the Robinhood Chain explorer.

StockpoolTimelock (48h)
0xD62D354723225f826B078d38337D3D1ecf456d01
StockpoolBuyBurn
0x7A0527583a23BdCFE823a45e4F3D2927B60795A5
StockpoolFeeRouter
0x505d3a6369A1D6C9c8C332289964a7e79d13c00e
StockpoolOracle
0xB249e667Fa7641A2C51Cfb79F75cf2FF55b02140
StockpoolRegistry
0x560FadBFc92b8Bd26134F4DA2fB01797890e3D11
StockpoolSwapAdapter
0x747238eba29Cd3D4E42Ad931357E7e15B0BeD01c
StockpoolBasket
0x278A10F25288eBa93D488CC127B7B40D3c01fBf1
StockpoolVault NVDA
0x7B2063bA3148BA1AfF559B024Ec3e2A440DFf02D
StockpoolPosition NVDA
0x435C525e4E7947ce933DddAB07a757AAdb4A2309
StockpoolVault TSLA
0xaB14A2771a72c4D49A56b01829bf52149D376691
StockpoolPosition TSLA
0xBdCbBC2815EE314b0E2a9d46bFd4c222FeB7f8a5
StockpoolVault AAPL
0x1E3a0B5646f229B19970C42218058c4e6C004046
StockpoolPosition AAPL
0x296953A07B902e78e3C8F969975778F6198C6a18
StockpoolVault META
0x1575151595EECD532C83E21D82F22A397D73E4aC
StockpoolPosition META
0x8443D4fc0288798785184fB05f8959072A35a43c
StockpoolVault GOOGL
0xb400a2c003D290F78A3DB643e5866d45afF72836
StockpoolPosition GOOGL
0x30973C02A7ebD2957baD46D6F30FBdE674BDE0C5
StockpoolVault SPY
0x4535DaB199Db36aCBAA20cEEf32DA292054F71B1
StockpoolPosition SPY
0x18367B4FF0910Fa852b3b0e743959D39bE22F618
StockpoolCreditDesk META
0x3af262514fd045c64a5f7b19A3848227D9fD6758
StockpoolCreditDesk NVDA
0x7b2B3004a5C729fd7DCC661A8E6dA18Acb1ED9E5