Selay protocol
Selay is a peer-to-peer lending market for tokenized stocks. A borrower posts stock tokens as collateral and names the maximum rate they will pay; lenders name their price and fund a slice each. Whatever overlaps settles as a fixed-rate, fixed-term loan on Robinhood Chain.
Overview
Pooled money markets price credit with a utilisation curve: everyone borrows at the same rate and everyone shares the same bad debt. Selay replaces that curve with a negotiation.
- Negotiated, not curved. The rate on every loan is the one the two sides agreed on, fixed for the whole term.
- Syndicated. One borrow request can be filled by many lenders, each taking a pro-rata slice at their own price.
- Isolated. Risk is not socialised. The lender who priced a slice is the one who carries it.
- Overcollateralised. Recovery is a smart-contract auction, never a legal process.
Loan lifecycle
- RequestA borrower posts collateral, the USDG principal they want, a maximum APR, a term and a fill deadline.
- OfferLenders sign offers off-chain. No gas, cancellable at any time, either targeted at one request or left standing across a whole tier like a limit order.
- SettleOne transaction verifies the signatures, escrows the collateral, pulls USDG from each lender and mints a position per slice.
- AccrueSimple interest at the agreed fixed rate, per second. Repayment is allowed once the minimum interest period has passed.
- RefinanceBefore maturity the borrower can open a rising-rate auction. New lenders step in, old lenders are repaid, and there is no cliff at term end.
- LiquidateIf the health factor falls below 1.0, anyone can start a Dutch auction. Lenders are paid first; any surplus returns to the borrower.
Quickstart
Borrow
Open the app, connect an EVM wallet, pick the stock token you want to pledge and enter the amount of USDG you need. The app quotes an indicative fill from the live book: which lenders would fund you, at what blended rate, and what your resulting LTV and health factor would be.
Lend
Browse open requests filtered by collateral, LTV, term and rate, then sign an offer. Standing offers cover an entire tier so borrowers always see a live book; targeted offers apply to a single request.
Note. The app currently reads the shared order book and computes quotes. Posting a request or an offer requires a signed submission, which is not enabled in this build.
Collateral tiers
Collateral is tiered by liquidity and feed quality rather than by name. Each tier sets how far a borrower may go and where liquidation begins.
| Tier | Collateral | Max LTV | Liquidation LTV | Closed-market haircut |
|---|---|---|---|---|
| A | Index and mega-cap | 55% | 70% | 10 pts |
| B | Large-cap single names | 45% | 60% | 10 pts |
| C | Long tail with a live feed | 30% | 45% | 15 pts |
| D | No live oracle | Negotiated | None | n/a |
When a market is closed or a feed is stale, the ceiling drops by the haircut shown above, so a Friday close is never treated as a Monday open.
Rates & terms
Terms are fixed at origination: 7, 14, 30 or 90 days. Interest is simple and accrues per second at the agreed rate, so the cost of a loan is known the moment it settles.
When several lenders fill one request, the borrower pays a blended APR — the size-weighted average of the slices:
// blended rate across a syndicate blendedAPR = Σ(sliceᵢ × aprᵢ) / Σ(sliceᵢ) // example: 20,000 USDG filled by three lenders 5,000 @ 8.50% + 10,000 @ 8.90% + 5,000 @ 9.00% blendedAPR = 8.82%
A refinance auction may run for up to four hours before maturity, and the new rate is capped a fixed spread above the old one so a borrower cannot be squeezed at the deadline.
Fees
Origination is charged on the principal at settlement. The interest share is taken from lender earnings, not added to the borrower's rate. Idle lender capital parked while waiting to be matched earns yield, of which the protocol keeps a small share.
Risk engine
Every position carries a health factor: the liquidation value of the collateral divided by the debt.
// health factor
HF = (collateralAmount × oraclePrice × liquidationLTV) / debt
HF ≥ 1.10 healthy
HF < 1.10 warning — top up or repay
HF < 1.00 anyone may start a liquidation auction
A minimum interest period applies before a loan can be repaid, so lenders are never left with a position that closes the second it opens. After a sequencer outage there is a grace window during which liquidations cannot start.
Liquidation
Recovery is a Dutch auction, not a market dump. Collateral is offered slightly above the oracle price and walks down to a floor over roughly 45 minutes.
- The floor is bounded — deeper in a regular session, tighter when the market is closed and prices cannot be trusted.
- Lenders are repaid first; any surplus goes back to the borrower.
- A keeper share rewards whoever starts the auction, so liquidations do not depend on the protocol being online.
- Lenders may opt to take the collateral in kind instead of cash.
Oracles & sessions
Prices come from Chainlink feeds, with a market-status flag so the protocol knows whether the underlying exchange is open.
- Zero or negative prices are rejected outright.
- Staleness is bounded per session; a stale feed tightens limits rather than silently pricing at the last value.
- A single update that moves more than a quarter pauses the market for review.
- The protocol prices the exact token held in escrow — never a wrapper or a derived exchange rate.
Chain & settlement
Selay settles on Robinhood Chain (chain id 4663), an Arbitrum Nitro L2 that settles to Ethereum. Stock tokens are ordinary ERC-20s, so collateral is self-custodied until the moment a loan settles.
Fast blocks matter for a lending market: fills and liquidations settle before a price gap has time to widen.
Reading the book
The order book is public. Anyone can read the same markets, offers, requests, loans and events the app renders — nothing is hidden behind the interface.
// what the app loads on every visit markets // collateral, tier, LTV ceilings, exposure cap market_latest_prices // oracle price, session, staleness multiplier protocol_params // tiers, terms, fees, auction and refinance config offers // open lend offers: rate, size, term, expiry borrow_requests // open demand: collateral, principal, max APR loans // originated loans: blended APR, maturity, status loan_events // settlements, repayments, refinances, auctions
Expired offers and requests are filtered out before anything is displayed, so what you see on the Explorer is what a settlement transaction could actually match right now.
Wallet
Any EVM wallet works, including Robinhood Wallet. Connecting reveals your own positions: loans you borrowed, requests you posted and offers you funded, each with its rate, health factor and maturity.
Connecting is a read operation — it proves which address to filter by. Signing an offer costs no gas, and funds only move at settlement.
Parameters shown here are the ones the protocol ships with. Every change goes through a timelock and is published before it takes effect.