SterlingSterling

Documentation

How the pool works, what it costs, and every way it can go wrong.

What Sterling is

Sterling owns a pool of real Robinhood tokenized stocks: NVDA, TSLA, AAPL, AMD, GOOGL, PLTR, AMZN and SPY. Anyone can borrow those stocks by putting up ETH as collateral. Bring the stock back and your ETH is returned.

What makes it unusual is where the stock comes from. Nobody deposits it. Every trade of $STERLING pays a fee, a Uniswap v4 hook collects that fee, and the pool spends it buying real stock. The pool grows on its own as long as people trade.

Collateral to borrow150% in ETH
Liquidated below125%
To unlock borrowing10,000 $STERLING
Trading fee3% buy / 5% sell
ChainRobinhood Chain (4663)

What nobody can do

There is no owner, no admin key, no governance vote, and no pause button. Every rule on this page is a constant compiled into the contract. Changing one means deploying a different protocol.

The fee hook has no owner(), no setFee, and no way to redirect where the money goes. Not even the deployer can touch it.

How it works

1. The pool buys its own stock

$STERLING trades against ETH in a Uniswap v4 pool. Attached to that pool is a hook, a contract the pool calls on every swap. Sterling's hook takes a cut: 3% when someone buys, 5% when someone sells.

That cut does not go to liquidity providers and it does not go to a treasury wallet. It goes to the lending pool, which spends it on real tokenized stock, split evenly across all eight. More trading means more stock to lend.

This is why the pool needs no depositors and no yield farming. It is funded by the token's own trading activity, forever, with nobody in the loop.

2. You borrow against ETH

  1. Hold 10,000 $STERLING. This is the only gate.
  2. Pick a stock and an amount. The contract prices it from Chainlink, not from a DEX pool.
  3. Send ETH worth 150% of that stock. The stock transfers to your wallet in the same transaction.
  4. Return the stock whenever you like and your ETH comes back in full.

3. Interest accrues to the pool

The rate is 2% a year plus utilisation times 18%. If half a stock is lent out, the rate is about 11%. Interest is added to what you owe, and when you repay, it stays in the pool. The pool compounds.

Collateral to open150%
From Friday 4pm ET200%
Liquidation line125%
Max one wallet may take20% of a stock's book
Max lent out at once50% of a stock's book

Why the caps exist

One wallet cannot borrow more than 20% of a stock's book, and no more than 50% of any stock can be out on loan at once. The first stops one borrower concentrating the pool's risk into a single position. The second keeps stock available and keeps the rate meaningful.

Borrowing

What you need

$STERLING10,000 in the borrowing wallet
ETH150% of the stock's value, plus gas
MarketOpen. US stocks trade Sunday 8pm to Friday 8pm ET

The $STERLING requirement is a balance check, not a deposit. The tokens stay in your wallet and are never locked, moved, or spent. Sell them and you simply lose borrowing access.

How much ETH

Collateral is priced from Chainlink at the moment you borrow. For 150%, borrowing $1,000 of NVDA needs $1500 of ETH.

From Friday 4pm ET the requirement rises to 200%. A position opened then has to survive roughly 48 hours with no price updates and no way for anyone to close it, so it needs more room.

The higher Friday requirement only applies to new loans. An existing position is never retroactively margin-called because the weekend arrived.

Why a borrow might fail

  • Market closed. Weekend or a US market holiday. Wait for Sunday 8pm ET.
  • Not enough $STERLING. You need the full 10,000.
  • Not enough ETH. The quote moves with the price; leave room.
  • Over a cap. Either you are taking too much of one stock, or it is already 50% lent out.
  • Stale price. The feed has not updated recently enough to price a new loan safely.

Repaying

Repaying and adding collateral work at every hour of every day, including 3am on a Sunday when everything else is frozen. You must always be able to save your own position. That is enforced by the contract, not by policy.

The dust problem, and why we handle it

Interest accrues every second. If you read your debt, then send a transaction repaying exactly that number, a few more seconds of interest accrued while it was in flight. You would repay almost all of it and be left owing dust, with your entire ETH deposit still locked behind it.

The contract takes a max value meaning whatever I owe right now, resolved at execution time. The UI always uses it for a full repay, so there is no scenario where dust holds your collateral hostage.

You need slightly more of the stock than you borrowed, because of interest. Borrow 10 NVDA, hold it a while, and you will need a bit over 10 NVDA to close. If you sold all of it, you have to buy a little back.

Adding collateral instead

  • Adding collateral never fails because of market hours.
  • It can only make your position healthier, so there is no check to pass.
  • Withdrawing surplus collateral does need the market open, since that increases risk and has to be priced.

Liquidations

Your collateral ratio is the USD value of your ETH divided by the USD value of the stock you owe. You open at 150%. If the stock rises, that number falls. Below 125%, anyone can close your loan.

Open at150%
Liquidatable below125%
Liquidator bonus7%
Roughly a move of+20% in the stock

When liquidation is blocked

  1. Market closed.No price discovery means no liquidation. You cannot be closed out over a weekend on Friday's price.
  2. Stale feed. Even during the week, if the feed has not updated recently enough, the contract will not act on it.
  3. Grace period. When the market reopens, liquidations stay off for 30 minutes so borrowers can top up before anyone can seize collateral on a gap.
The grace period matters more than it sounds. If a stock gaps up 20% over a weekend, positions become liquidatable the instant the feed refreshes. Without the pause, bots would take every one of them before a human could react.

What the protocol earns

Nothing. The entire bonus goes to the liquidator. Sterling takes no cut, because the point is to get bad loans closed fast, not to profit from them.

The fee hook

A Uniswap v4 pool can call out to a contract at fixed points in a swap. That contract is a hook. Sterling's hook runs after every swap and takes a slice of the output for the lending pool.

Buy fee3%
Sell fee5%
LP fee0%
ConversionBatched, every 5 minutes, permissionless
OwnerNone

Why not just set a pool fee?

Because a pool's fee goes to liquidity providers, not to us. A plain fee tier would fund LPs and leave the lending pool with nothing. A hook fee is separate: it is claimed by the hook itself, which is what lets it reach the pool at all.

Sterling's LP fee is zero, so the 3% /5% you pay is the whole cost of a trade, and every bit of it becomes stock. The tradeoff: no outside LP would provide liquidity for zero yield, so the protocol owns all of it.

The chart question

Buy-side fees arrive as Sterling tokens, and the pool needs ETH to buy stock, so that Sterling has to be sold. That sell is real and it shows up on the chart. Pretending otherwise would be dishonest. What matters is who is doing it:

  • Not the deployer.The seller is the hook contract. It never held the supply and never received the launch tokens, so it is not the wallet a chart tracker labels "dev".
  • Not discretionary. The hook has no owner. There is no function to change the fee, redirect the proceeds, or choose when to sell. Not for us either.
  • Not constant. Fees batch on a 5-minute cooldown, so it is one predictable conversion rather than a sell printed next to every buy.
A separate wallet doing this would be strictly worse. An unknown address selling looks exactly like a dev dumping through an alt, because that is usually what it is. A verified, ownerless contract that can only ever do one thing is the opposite.

Prices & market hours

Every price Sterling uses comes from Chainlink's tokenized equity feeds. Nothing is priced from a Uniswap pool. That is not a preference: v4 has no built-in oracle on these pools, and the liquidity behind a tokenized stock is small enough that a pool price could be pushed around cheaply.

The hard part: 24/5 feeds on a 24/7 chain

The chain never sleeps but US stocks do. The obvious way to detect that is to check whether the feed has gone stale. That does not work, and why it fails shaped the whole design.

These feeds update on a 24-hour heartbeat or a 0.5% move. On a quiet day a feed can sit untouched for a long time while the market is wide open. Measured over ~3.5 weeks of real history:

StockLongest gap, openLongest gap, weekend
AMD5.8h73.3h
PLTR14.1h74.9h
AMZN16.7h77.1h
AAPL18.0h79.7h
GOOGL18.0h76.6h
NVDA18.4h76.1h
TSLA21.2h76.1h
SPY24.0h76.1h

SPY went 24 hourswithout an update during normal trading. It simply had not moved 0.5%. So a staleness check tight enough to catch Friday's close would shut the protocol down on any quiet Tuesday, and one loose enough to avoid that cannot notice a weekend until Saturday afternoon.

Chainlink says the same in their own guidance: do not rely solely on feed freshness to determine market status. So we don't.

What Sterling does instead

  • A calendar, first. The contract derives the Eastern Time weekday and hour from the block timestamp and knows the US market holidays. It shuts at Friday 8pm ET exactly.
  • Staleness as a backstop. A 30-hour limit catches anything the calendar misses: an unscheduled halt, an outage, a holiday beyond the table. It sits above the 24h worst-case open-market gap and far below the 73h shortest weekend.

We checked the calendar against 345 real feed updates. Not one landed inside the window it calls closed.

BorrowBlocked while closed
Withdraw collateralBlocked while closed
LiquidateBlocked while closed, plus 30 min after reopen
RepayAlways available
Add collateralAlways available

The asymmetry is the point. Anything that takes on new risk needs a live price. Anything that reduces risk should never be blocked, because a borrower who cannot act is a borrower who gets liquidated for no reason.

Contracts

Lending poolnot deployed
$STERLING tokennot deployed
Fee hooknot deployed

Nothing is deployed yet. These fill in once the contracts are live on Robinhood Chain.

NetworkRobinhood Chain
Chain ID4663
Gas tokenETH
ExplorerBlockscout

Stock tokens

Price feeds

NVDA / USD0x379E…9F15
TSLA / USD0x4A11…7C38
AAPL / USD0x6B22…2cD0
AMD / USD0x943A…2C72
GOOGL / USD0xF6f3…638b
PLTR / USD0x820A…eB4c
AMZN / USD0xD5a1…651C
SPY / USD0x3197…9f6A

Checking things yourself

  • Call owner() on the fee hook. It reverts, because there is no owner. That is the proof nobody can redirect the fees.
  • Look for setFee or setDesk on the hook. They do not exist.
  • Call latestRoundData() on any feed and compare it to what this site shows.
  • Read stockStats(token) on the pool and compare to the stats page.

Risks

Everything below is a real way to lose money, not boilerplate. Read it before you borrow.

The weekend gap

This is the big one, and it cannot be fixed. US stocks stop trading Friday at 8pm ET and do not resume until Sunday at 8pm ET. During those ~48 hours there is no price, so nobody can be liquidated.

If news breaks on a Saturday and a stock opens 30% higher on Monday, every loan on that stock blows straight through the 125% line with no chance for anyone to close it on the way down. Liquidators arrive to positions that are already underwater. The pool eats the difference.

The 150% opening requirement and the 200% Friday increase are the buffer against this. A gap bigger than the buffer creates bad debt. Earnings gaps regularly exceed 25%.

Robinhood controls the stock tokens

These are real issued tokens, not synthetics, which is what makes them interesting. It also means the issuer has powers Sterling cannot override:

  • Pause. Transfers of a stock token can be halted. While paused, that stock cannot be borrowed or repaid.
  • Block. An address can be blocked from holding a token. If that address is yours, transfers involving you fail.
  • Burn. The issuer has an admin burn capability.
  • Upgrade. All the stock tokens sit behind a shared beacon and can be upgraded at once.

Oracle risk

If a feed reports a wrong price, the protocol acts on it: loans get priced wrong and liquidations fire wrong. Sterling rejects stale and non-positive prices, but it cannot detect a plausible wrong number.

Smart contract risk

The contracts are unaudited. They are fork-tested against live chain state and the tests pass, but tests prove the presence of behaviour, not the absence of bugs. There is no admin key to pause anything if something goes wrong, which is a feature for trust and a liability in an emergency.

$STERLING itself can go to zero

The token has no claim on the stock in the pool. It gates borrowing, and its trading fees fund the pool, but holding it does not entitle you to any of the assets. If nobody trades it, no fees accrue and the pool stops growing.

Do not borrow more than you can afford to lose, and do not open at the minimum collateral ratio unless you plan to watch it closely. If you hold a position over a weekend, size it for a gap.