Your stock keeps its job.
Your capital gets a second one.
Loopr is an execution layer for tokenized stock positions. It borrows against a stock you already hold and deploys the borrowed dollars into a yield venue in one transaction across two protocols, then closes the whole position the same way. You keep the stock the entire time.
What Loopr is
A tokenized stock in a wallet does one thing: it tracks a price. That is useful, and it is also the whole of it. The position produces nothing while you hold it, and the only way to get capital out of it is to sell.
Lending markets solve half of that. You post the stock, you draw stablecoins against it, and you keep the exposure. But you are then holding borrowed dollars that cost you interest and earn you nothing until you go somewhere else and put them to work. That second step is a separate protocol, a separate approval, and a separate transaction that can fail on its own.
Loopr removes the gap between those two steps. The borrow and the deployment are one atomic operation spanning two independent protocols. Either both land or neither does. There is no state in which you are holding idle borrowed dollars and a debt against your stock.
Plenty of protocols execute atomically inside a single contract on a single protocol. Loopr's atomicity spans a lending market and a yield vault that do not know about each other. That is a harder guarantee, and it is the one that removes the failure window a manual two step loop leaves open.
The loop
A loop is one position with two legs. The collateral leg holds your stock and carries debt. The yield leg holds the borrowed dollars in a vault where they compound. Loopr treats them as one object, which is what makes atomic entry and exit possible.
Opening a position
Your stock token is deposited into its own isolated market. It stays yours. Nothing is sold, and price exposure is unchanged.
The engine draws dollars against that collateral at a loan to value you choose, bounded by the market's liquidation LTV.
Those dollars go straight into an allowlisted vault. They are never returned to your wallet as an intermediate step, which is what removes the window where a second transaction could fail.
The vault position accrues through its share price rather than paying out. Your share count stays constant and each share becomes redeemable for more USDG.
Why atomicity is the product
Run those four steps by hand and each one is a place to get stuck. The borrow lands and the deposit reverts, so you are paying interest on dollars sitting in your wallet. Gas runs out between steps. The vault caps out after you have already drawn the debt.
Inside one transaction none of those states can exist. If the vault will not accept the deposit, the borrow never happened either. The failure mode is that nothing changes, which is the only acceptable failure mode for a leveraged position.
The engine acts under approvals you grant and revoke. It does not take discretionary custody between operations, and there is no step where your assets sit under protocol control waiting for a keeper to act.
Loopr Baskets
Everything so far treats collateral as one stock. A Loopr Basket bundles more than one: a fixed quantity of several constituent stock tokens, locked behind a single ERC-20 share. Minting deposits that exact recipe in; redeeming burns the share and pays the exact recipe back out, in kind, for no fee.
The appeal is the one-token version of a view that would otherwise mean holding, tracking and eventually exiting several positions at once: buy the basket instead of NVDA, MSFT and GOOGL separately, and get one balance, one price and one redemption path for all three.
The recipe is quantities, not percentages. A basket defined as 0.7 NVDA + 0.3 SPCX per share holds exactly that, forever — it is not a target weight the protocol rebalances back to as prices move. There is no oracle anywhere in the mint or redeem path: the contract moves units, not dollars.
Anyone can deploy a basket through the factory. The only on-chain requirement on a constituent is that it be a contract, not that it be a real, vetted stock token. Loopr curates and builds some baskets itself, and the interface treats those as vetted the way the eight markets in section 05 are. Every other basket runs the identical contract, holding whatever its creator chose. Read a basket's holdings yourself before treating an uncurated one as trustworthy.
What a basket is
A basket is defined once, at creation: between two and twenty constituent tokens, and a fixed quantity of each per 1.0 share. Both are immutable. There is no active management layer that can add, remove or reweight a constituent after launch.
| Loopr2 | Units per share |
|---|---|
| NVDA | 0.7 |
| SPCX | 0.3 |
Loopr2 is a live example, not a template: a two-name basket with a 1% mint fee, created by a trusted Loopr contributor. Nothing in the design caps a basket at two names — up to twenty constituents are supported, in whatever quantities a creator sets.
Creating a basket
Pick between two and twenty constituent stock tokens and a fixed quantity of each per share. This is the only design decision a basket ever has — there is nothing left to configure once it goes live.
Anyone can call the factory directly. It deploys a new basket contract, registers it, and the caller becomes its creator — the party that earns the 70% creator share of every future mint.
From that transaction on, the recipe is fixed. No owner, no admin, no upgrade path can change what a basket holds, or add a fee where none was set.
This is what makes Loopr Baskets an index-fund creation primitive rather than a fixed product list: the eight isolated stock markets in section 05 are curated one at a time, but a basket is one transaction away for anyone with a recipe in mind.
A basket smooths idiosyncratic moves in any one constituent, but every constituent is still a 24/5 feed that freezes outside market hours (section 06). Names on the same trading calendar gap on the same schedule. Diversification reduces single-name risk. It does not reduce weekend risk.
Minting and redeeming
Minting deposits the exact recipe amount of every constituent, rounded up per asset so the basket is never short. Redeeming burns shares and pays the exact recipe amount back, rounded down, for no fee. Rounding always favours the basket: dust accumulates in the contract rather than ever leaving it under-backed.
Every deposit checks the balance the contract actually received against the balance it
requested, so a fee-on-transfer or otherwise deflationary constituent cannot silently
under-fund a mint. There is no pause and no admin path to a constituent balance — the
only way assets leave the contract is redeem, callable by any holder, at any
time.
A basket's traded price can drift from what redeeming it is actually worth, the same way any in-kind fund's can. That gap is what pulls it back: when the traded price runs above redemption value, redeeming and selling the constituents is profitable; below it, buying and redeeming is. Nothing in the contract enforces this — it is priced in by whoever is watching, using live prices, the same way every market's collateral already is (section 06).
Minting from a single asset
Assembling a multi-name deposit by hand means holding every constituent first. The Loopr Basket Zap removes that step: hand it one input token — USDG, say — and it swaps into the exact recipe across the constituents' own Uniswap v4 pools and mints in one transaction. Unused input is refunded; if any leg fails, the whole thing reverts.
Fees and the buyback
Minting can charge a fee, capped chain-wide at 3% and fixed per basket at creation. The fee is paid in extra backing, not in dilution: a mint for n shares deposits the recipe for the full n, and the fee mints as additional shares on top of that, so existing holders' backing per share never changes. Redeeming is always free, permanently — there is no admin path to add a redemption fee.
| Fee | Rate | Goes to |
|---|---|---|
| Mint | Up to 3%, set per basket | 70% creator, 30% protocol |
| Redeem | None | — |
The protocol's 30% is protocol revenue — split 80% to a $LOOPR buyback and 20% to operations (section 16). Buyback proceeds flow to $LOOPR stakers — a second, smaller claim sitting on top of the direct creator and protocol split, and one that scales with how much basket activity the protocol generates rather than with any single basket's performance.
Contracts
Every basket exposes isFullyBacked(), which recomputes what the current
supply requires against every constituent balance and returns false the moment it would
not hold. It should always read true; it exists so anyone can check that directly rather
than take the claim on faith.
| Contract | Role | Address |
|---|---|---|
| Basket Factory | Permissionless deployment and registry | 0xf6B7e67816622a1E6dDb898EEB09cA8eb8e3D2B0 |
| Loopr2 | Example basket, 0.7 NVDA + 0.3 SPCX | 0x9233FA52d6466f33D58B21Aee7Db70a8543AAF90 |
| Basket Zap | Single-asset mint via Uniswap v4 | 0x718af7e914C01A6385986d7009E62ba557a8993e |
| Verified mint | Live end-to-end zap mint, block 53,726,582 — matched a pre-broadcast simulation against the same chain state to the wei | 0xc35cde726928be1d050336ffa524c1121337384aa99f872d595ac348475213c8 |
All three contracts are verified on Sourcify (exact match). Basket creation, minting and redemption are live today. Listing a basket as loop collateral — so the same token becomes borrow capacity the way a single stock already is — is the next step, and it is separate from everything above.
Net carry
Most protocols quote a gross yield, because a gross yield is the only number they can see. A vault knows its own rate. A lending market knows its own borrow rate. Neither knows what you actually made.
Loopr holds both legs, so the number it shows you is the one that matters.
Both inputs float. Vault rates move with demand for the strategy behind them. Borrow rates move with utilisation in the isolated market. A loop that is positive when you open it is not guaranteed to stay positive, and Loopr shows a negative carry as negative rather than hiding it behind a headline APY.
Where leverage enters
Carry is a spread, and a spread is small. The multiplier on it is how much you borrow relative to your collateral, which is also the multiplier on your liquidation risk. Those two things are the same dial. Borrowing near the maximum LTV maximises the carry and minimises the room you have when the price moves against you overnight.
The liquidation LTV is a boundary, not a recommendation. It is the point where you are liquidated, not the point you should aim for. Equity prices gap between sessions, and a gap does not give you time to react. Leave meaningful room below the line.
Markets
Each supported stock has its own market, and each market is a fixed set of rules: the collateral asset, the borrowable asset, the oracle, the interest model and the liquidation LTV. Those five things are set when the market is created and cannot be changed afterwards.
Why isolation matters here specifically
Tokenized equities do not share a risk profile. A company two decades into public trading and one three months past its IPO carry different event risk, and so do two megacaps in different sectors: trading halts, corporate actions, thin secondary liquidity. In a shared pool design, a bad day in one name reaches every depositor. In an isolated design, the blast radius of any single stock is its own market.
The cost of isolation is that liquidity is per market too. Dollars supplied against AAPL can only be borrowed by AAPL collateral.
| Market | Collateral | Liquidation LTV |
|---|---|---|
| AAPL | Apple | 62.5% |
| MSFT | Microsoft | 62.5% |
| NVDA | Nvidia | 62.5% |
| GOOGL | Alphabet | 62.5% |
| AMZN | Amazon | 62.5% |
| META | Meta Platforms | 62.5% |
| TSLA | Tesla | 62.5% |
| SPCX | SpaceX | 38.5% |
Seven markets share a 62.5% liquidation LTV. SPCX is set at 38.5%, and it is the newest listing of the eight: SpaceX completed its Nasdaq IPO in June 2026. A shorter trading history gives less data to size a parameter against, and newly listed names generally trade wider than established ones until that history exists. The lower LTV is the conservative setting that follows.
Oracles and market hours
This is the part of tokenized equity lending that has no analogue in crypto collateral, and it is where most of the real risk lives.
Pricing
Every market prices its collateral through Chainlink. For stock tokens the relevant figure is not the headline share price but a total return value, defined as the share price multiplied by a dividend and split multiplier. A dividend or a split changes what one token represents. Pricing the raw ticker and ignoring the multiplier would misvalue collateral in exactly the moments it matters.
Loopr verifies that each listed market's oracle returns the same live price the interface already trusts elsewhere. A market whose oracle disagrees is not listed.
The 24/5 problem
Stock feeds follow market hours. They update through the trading week and then stop. Overnight, over a weekend, and across a market holiday, the feed holds its last value. The chain keeps running, your debt keeps accruing interest, and the price of your collateral does not move because nobody is publishing a new one.
- Your health factor is stale, not stable. A position that looks safe at 2am Sunday is priced off Friday's close. It is not evidence of anything.
- Gaps arrive fully formed. When the feed resumes it can jump straight to a new level. There is no gradual move to react to and no opportunity to add collateral on the way down.
- Liquidation can be immediate at the open. If the gap puts you past the liquidation LTV, you are liquidatable the moment the feed updates, not some time after.
Loopr treats this as the defining property of equity collateral rather than an edge case. How the protocol prices and manages it is section 09.
Yield venues
Borrowed dollars are routed into an allowlisted vault. Loopr does not operate these vaults and does not intend to. They are external protocols with their own contracts, curators, caps and liquidity conditions.
The reason for this is strategic and worth stating outright: a router that sends capital wherever the best net carry is available gets stronger as the ecosystem grows. A vault has to win on its own rate forever. Loopr chose the first one.
| Venue | Curator | TVL | Address |
|---|---|---|---|
| Steakhouse USDG | Steakhouse Financial | $404.6M | 0xBeEff033F34C046626B8D0A041844C5d1A5409dd |
| Ethena × Steakhouse | Ethena, Steakhouse | $43.5M | 0xbEeFF0fb1Dc19344A87b8479dAb60A2e16160737 |
| Grove × Steakhouse | Grove, Steakhouse | $100.0K | 0xBEEff039907422219Fb367e525954DDC092854d9 |
TVL read from chain on 1 September 2026. These move constantly.
How allowlisting works
Venues are allowlisted by exact contract address, not by name, curator or interface. A loop can only route capital to an address that is on the list. This is a deliberately blunt mechanism: it is easy to verify from outside and hard to subvert from inside.
Compounding
These vaults accrue through share price. You are not paid a stream of USDG, and there is no claim button. Your share balance stays the same and each share becomes redeemable for more USDG over time. The yield leg needs no maintenance from you and no keeper from anyone else.
Depositing without a loop
You can deposit USDG you already hold directly into a venue with no collateral and no borrow leg. That path carries vault risk and liquidity risk, and carries no liquidation risk, because there is no debt. It is a different product with a different risk profile and it should not be confused with a loop.
Unwinding
Opening a leveraged position is the easy half. Protocols that make entry effortless and exit a four step manual process have solved the wrong problem.
Shares are redeemed for USDG at the current share price, including everything accrued since you entered.
The proceeds retire the borrow, including interest accrued block by block since the position opened.
With the debt cleared, the stock token is released from the isolated market.
The stock lands back where it started. No lockup, no cooldown, no exit penalty, no vesting on the way out.
All four run under your authorisation in one transaction. The engine does not need to hold your assets between unrelated operations to make it work.
What an unwind depends on
Atomic does not mean unconditional. An unwind needs two external conditions to hold, and both are outside Loopr's control:
- Withdrawal liquidity in the venue. If the vault's own liquidity is constrained, redemption can be limited or delayed. Vault utilisation is a real dependency, not a footnote.
- The market accepting repayment and collateral withdrawal. Under normal conditions this always holds. Repayment and collateral recovery are the operations that survive every other kind of failure, including a stale or dead oracle.
You do not have to close the whole thing. Collateral can be added, debt can be repaid in part, and the position can be de-risked without unwinding it, which is usually the right response to a health factor drifting toward the line.
Weekend and gap handling
Tokenized stocks are the only collateral in DeFi that sleeps. Everything in section 06 describes the problem. This section is what Loopr does about it.
The gap-adjusted health factor
Every position carries two health figures rather than one. The live health factor prices your collateral at the last published feed value. The gap-adjusted health factor prices it at a stressed level derived from that specific stock's own history of session-to-session gaps.
The point is timing. The live number tells you where you stand against a price nobody is updating. The gap-adjusted number tells you where you would stand if Monday opened badly, and it tells you on Wednesday, while you can still act cheaply.
A flat buffer across eight names would be wrong for all eight, because these stocks do not gap alike. The stress level is derived per market from that asset's own distribution of session-to-session moves, which is the same reasoning that gives SPCX a 38.5% LTV where the other seven sit at 62.5%.
Scheduled de-risking
You can set a debt level to carry through the close and let the protocol bring the position down to it before the feed stops updating. The instruction is yours, set in advance, and execution is permissionless so it does not depend on you being awake.
The part that is specific to Loopr: the de-risk is funded from the yield leg. A loop already holds borrowed dollars in a vault. Reducing debt before the weekend means redeeming part of that vault position and repaying with it. You do not have to set aside separate capital to make weekend protection work, because the capital is already inside the position, and your collateral is never sold to achieve it.
Monday reconciliation
When feeds resume, the position view reports what actually gapped, what the gap-adjusted figure predicted, and whether any scheduled de-risking executed. Over time this is what calibrates your own sizing, and it is a better teacher than a static risk page.
Corporate actions
Splits and dividends change the multiplier that defines what a stock token is worth. A market that keeps trading on a half updated price is worse than a market that stops, so during processing the correct behaviour at the oracle layer is to pause rather than guess.
Pausing protects the protocol. It does not help a leveraged position that is already open and now frozen inside an event. Loopr handles the position side:
- Calendar awareness. Known upcoming corporate actions on supported names are surfaced on the position before the event, not after.
- Advance de-risking. The same mechanism as weekend handling applies: reduce debt from the yield leg ahead of a scheduled action rather than riding through it at full leverage.
- Post-event accounting. When the multiplier updates, collateral value, health factor and borrowing capacity are all restated against the new value rather than the pre-action one.
Unscheduled events exist. Halts, unexpected announcements and issuer level problems do not appear on a calendar in advance. Calendar awareness reduces the number of surprises. It does not eliminate them.
Autonomous agents
Automation is only worth having if its limits are legible, so the permission boundary is documented before the capability.
| Agents can | Agents cannot |
|---|---|
| Rebalance between allowlisted venues | Withdraw to any address |
| Execute a de-risk you configured in advance | Increase your debt |
| Repay debt from the yield leg | Sell your collateral |
| Act on schedule without you online | Route to an address off the allowlist |
Agents operate through session keys scoped to those actions. The scope is enforced by contract rather than by policy, which means the boundary holds whether or not the agent behaves as intended. An agent that is compromised can do nothing on the right of that table.
Routing
The routing job is net carry, not gross yield. An agent moving capital from a higher gross yield venue to a lower one is doing the right thing when the lower one improves carry after borrow cost and execution. Because Loopr sees both legs, the objective function is the number you actually earn.
DualPool liquidity
A second yield mode, and a different product from a carry loop. Read this section as separate rather than as an extension of the previous ten.
LP inventory rests in an ERC-4626 vault while it is not needed. When a swap arrives, the hook withdraws only the shortfall that trade requires, deploys it into the pool, collects the fee, and returns everything to the vault in the same transaction. Capital earns lending yield while resting and trading fees while working.
This is not a carry loop with a bonus. LP inventory changes composition as swaps run through it, which means impermanent loss, an exposure a carry loop does not have. Vault returns vary and trading fees depend on real volume. Two yield sources on one balance does not mean two yields guaranteed.
Why it pairs with the loop
A DualPool position is a yield venue like any other, so it can be a routing destination for borrowed dollars. The distinction the interface keeps is that routing into an LP venue changes the risk profile of the position, and that has to be an explicit choice rather than an optimisation an agent makes on your behalf while chasing carry.
Risk
In rough order of how likely it is to actually cost you money.
| Risk | Mechanism | What reduces it |
|---|---|---|
| Overnight and weekend gaps | The feed is frozen while the world is not. Price can jump straight past your liquidation LTV. | Gap-adjusted health factor and scheduled de-risking. Borrowing well below the maximum. |
| Liquidation | Health factor below 1 makes the position liquidatable by anyone, at a bonus paid out of your collateral. | A wide buffer, and monitoring around sessions and events. |
| Carry inversion | The borrow rate rises above the vault rate. The loop now costs you money every block. | Net carry as the displayed metric. Unwind is cheap and immediate. |
| Vault risk | Destination vaults are third party protocols. Their contracts, curators and strategies are outside Loopr. | Allowlisting by exact address. Reading the venue's own docs before routing to it. |
| Vault liquidity | A constrained vault can limit or delay redemption, which delays your unwind. | Prefer deeper venues. Treat utilisation as a live input. |
| Impermanent loss | Applies only to DualPool positions, not to carry loops. | Keeping the two products distinct, and making LP routing an explicit choice. |
| Oracle and issuer risk | Feed failure, issuer failure, or a corporate action handled badly upstream. | Verification against the feed the app already trusts. It reduces this risk. It does not remove it. |
| Smart contract risk | Bugs in the engine, in Morpho, in the vaults, or in the interactions between them. | Minimal new code written over audited, immutable primitives. |
| Uncurated basket risk | Basket creation is permissionless. A non-curated basket can hold any contract its creator chose, vetted by no one. | Loopr-curated baskets. Reading a basket's constituents yourself before treating it as trustworthy. |
Structural guarantees
Security claims are worth very little as promises and quite a lot as structure. These are properties of how the system is built, not commitments about how it will be operated.
| Property | Why it holds |
|---|---|
| A loop cannot half open | Both legs execute in one transaction. Any failure reverts the whole thing. |
| Borrowed capital cannot leave the allowlist | Destinations are allowlisted by exact contract address. |
| Market rules cannot change after creation | The five part market definition is fixed at creation in the immutable core. |
| Repayment and collateral recovery always work | They do not depend on a live oracle. No failure state traps collateral behind a dead feed. |
| Agents cannot withdraw or sell collateral | Session key scope is enforced by contract, not by policy. |
| No discretionary custody between steps | The engine acts under approvals you grant and can revoke. |
| Liquidation is open to anyone | Permissionless liquidation removes dependence on a privileged liquidator being online. |
The honest counterpart: none of this protects you from the price of your collateral falling, or from a destination vault failing. Structure bounds what the protocol can do to you. It does not bound the market.
Fees
Every cost in one table. If a cost is not on this list, it is not charged.
| Item | Charge | Notes |
|---|---|---|
| Opening a loop | None | Gas only |
| Unwinding a loop | None | Gas only. No exit penalty, no lockup |
| Scheduled de-risking | None | Gas only, paid by whoever executes it |
| Borrow interest | Variable | Set by the market's rate model against utilisation. Accrues continuously into your debt |
| Protocol fee on interest | Market level | Taken by the underlying lending market from interest paid, never from principal or collateral |
| Vault fees | Venue level | Charged by the destination vault under its own terms, not by Loopr |
| Liquidation bonus | Market level | Paid out of a liquidated borrower's collateral to whoever liquidates. Not protocol revenue |
| Deposit or withdrawal fee | None | No entry, exit or management fee |
| Minting a basket | Up to 3% | Set per basket at creation, immutable. Paid as extra minted shares — 70% creator, 30% protocol |
| Redeeming a basket | None | Gas only. No admin path to ever add one |
The property worth underlining: fees reach interest and yield, never principal. There is no mechanism by which a fee touches deposited collateral.
Protocol revenue
Basket minting is the only fee Loopr charges (section 03), and the protocol's 30% cut of every mint fee is protocol revenue. A manual buyback is running via an automated TWAP using 80% of protocol fees to buy $LOOPR for stakers. This split is not immutable yet, but will be immutable, decentralized, and automated in a future release.
The remaining 20% of protocol fees goes toward infrastructure costs and expanding the Loopr team.
| Allocation | Share | Purpose |
|---|---|---|
| Buyback | 80% of protocol fees | Executed as an automated TWAP, converted into $LOOPR for stakers |
| Operations | 20% of protocol fees | Infrastructure costs and expanding the team |
FAQ
Do I still have exposure to the stock?
Yes. Nothing is sold. The token is collateral, not a disposal, and price exposure is unchanged for the entire life of the position. That is the whole reason to loop rather than to sell.
Can I lose the stock?
Yes, through liquidation. If the collateral's value falls far enough relative to your debt, the position can be liquidated by anyone and the collateral pays the liquidator a bonus. This is the primary risk and it is not hypothetical for equity collateral that gaps between sessions.
What happens if the yield goes below the borrow rate?
The loop costs you money for as long as that holds. There is no lockup, so the response is to unwind or reduce the debt. This is exactly why net carry rather than gross yield is the number shown.
Does weekend de-risking sell my stock?
No. De-risking reduces debt using the yield leg, which is already holding borrowed dollars in a vault. Collateral is never sold to bring a position down.
What if I want the yield without the leverage?
Deposit USDG directly into a venue. No collateral, no borrow, no liquidation risk. You still carry vault and liquidity risk.
Is a carry loop the same as a DualPool position?
No. A carry loop borrows against stock and deposits the dollars into a vault, and it has no impermanent loss. A DualPool position provides liquidity to a pool, earns on two fronts, and does carry impermanent loss. Different products, different risks, kept separate on purpose.
Is a Loopr Basket just an ETF?
No. An ETF is dollar-weighted and gets rebalanced; a Loopr Basket is a fixed quantity recipe, set once and never rebalanced, redeemable in kind for no fee at any time. Anyone can create one — Loopr curates and builds some itself, and treats those as vetted the way it vets a single-stock market. Listing a basket as loop collateral, so the same token becomes borrow capacity, is the next step and is not live yet (section 03).
Is Loopr affiliated with Robinhood, Uniswap, Morpho or Chainlink?
No. Loopr is an independent protocol built on public infrastructure. Stock tokens and their price feeds are issued and operated by their respective providers.