Upper stratum
Held and idle
The largest share of bitcoin never moves. It sits where it earns nothing, because every route that offered a return also asked the holder to accept a counterparty they could not inspect.
Contract
1EaGq2PtdsxhZicYsrMXcVMLXMdyqpbUNQJjfZBpump
Advancing
LoadingAn adit is the level entrance to a working mine, driven straight into the hillside so ore can walk out under its own weight. LODZ is that entrance for bitcoin capital on Solana: bridged BTC enters once and is held one for one, every seam that could pay it is measured and attributed in the open, and principal walks back out through a redemption line the program enforces, counted in days rather than promised in the abstract.
Every rate quoted here is split at the door. The part paid by borrowers, traders and basis is marked durable. The part paid out of a token schedule is marked emitted and drawn pale, because it thins out the moment the schedule ends. Bridge and custody exposure is posted at the entrance, not filed at the back.
Seams on the wall are drawn by source. Gold traces are paid by borrowers and traders. Orange traces are paid out of someone else's loss. The cut channels are where a token schedule would run, and they are empty.
Bedrock
Bedrock is the ground the whole working stands on. Reading it honestly decides where the first level gets driven, and it is the part most yield venues walk straight past.
Upper stratum
The largest share of bitcoin never moves. It sits where it earns nothing, because every route that offered a return also asked the holder to accept a counterparty they could not inspect.
Middle stratum
Where a rate is offered it arrives as one number. Whether it is paid by borrowers or printed on a schedule is left out, so two rates that look identical can have completely different lifespans.
Lower stratum
Getting principal back is the part nobody quotes. Line depth, position and delay history decide whether a position is an asset or a story, and they are almost never on the page.
Measured
75.36M dollars of bitcoin sits across 32 lending reserves. Almost none of it earns, because nobody is borrowing the other side. Supply without borrow demand produces a rate of zero by construction, not by misfortune.
| Venue | Asset | Supplied | Supply rate | Why |
|---|---|---|---|---|
| Kamino Lend | cbBTC | 44.04M | 0.00459% | 3.2 percent utilised |
| Kamino Lend | xBTC | 13.59M | 0.00063% | 155,631 dollars borrowed |
| Kamino Lend | FBTC | 5.48M | 0% | nothing borrowed at all |
| Jupiter Lend | cbBTC | 3.38M | 0% | nothing borrowed at all |
| Save | cbBTC | 1.79M | 0.190% | the best of the large reserves |
| Loopscale | zBTC | 295K | 1.06% | the only borrow demand worth the name |
One row in that table pays a rate worth reading, and it holds 295 thousand dollars. Read from the pool index and cross-checked against each venue’s own reserve endpoint. Anyone advertising a double digit bitcoin lending rate on this chain is quoting something other than borrow interest.
The control group
Every row below sits in the same lending market, read from the same response, under the same risk engine and the same rate curve. The asset is the only thing that changes. Utilisation is how much of the supplied side has actually been borrowed, and it tracks the paid rate so closely that nothing else is needed to explain the zeros.
| Reserve | Supplied | Borrowed against it | Supply rate |
|---|---|---|---|
| tBTC | 5K | 63.25%3K borrowed | 1.64% |
| WBTC | 166K | 7.67%13K borrowed | 0.025% |
| cbBTC | 45.52M | 3.25%1.48M borrowed | 0.00459% |
| xBTC | 13.74M | 1.13%156K borrowed | 0.00063% |
| FBTC | 5.48M | 0%nothing | 0% |
| SOLnot bitcoin | 191.50M | 89.75% | 4.57% |
| USDCnot bitcoin | 108.00M | 88.31% | 4.13% |
| USDGnot bitcoin | 53.50M | 65.4% | 2.84% |
The top row settles it. The one bitcoin reserve anybody borrows from is the one bitcoin reserve that pays, at 63.25 percent utilised against 3.25 percent on the largest. It holds just under five thousand dollars, so it is evidence rather than a destination, and quoting its rate as if size could follow it would repeat the exact trick this page exists to name.
Read the other direction and the same market pays 4.57 percent on one non-bitcoin reserve and 4.13 percent on another. For the largest bitcoin reserve to reach 2 percent, borrowing would have to run at 71.2 percent, moving from 23.45 to 505.6 BTC. That is 22 times the current demand, which is not a gap a quarter closes.
Seam
A liquidity position, a lending market, a vault taking the other side of a trade. Each pays at its own rate from its own source, and each fails in its own way. LODZ reads all of them at once, publishes how much of the return each one accounts for, and shifts that weighting on the record as the sources change.
Trading fees and borrow interest
Money an outside user actually paid to use a venue. It does not run out on a schedule.
Protocol tokens minted on a schedule
Money the issuer printed. It stops on a known date and the quoted rate falls to whatever is left.
Losses taken by traders on the other side
Looks durable and is not. It is somebody else's loss, which reverses when they win.
The three are told apart by fill and motion as well as by colour, so the distinction survives a greyscale screenshot. Solid and still is durable. Hatched and fading is emitted. Barred and breathing is somebody else’s loss.
| Venue | Pair | Paid by | 7 day rate | Size | Divergence loss |
|---|---|---|---|---|---|
| Orca | SOL-cbBTC | SustainableConcentrated liquidity, fees paid by swappers | 21.91%7 day | 4.58M | Not published |
| Orca | cbBTC-USDC | SustainableConcentrated liquidity, fees paid by swappers | 15.46%7 day | 6.32M | Not published |
| Orca | SOL-WBTC | SustainableConcentrated liquidity, fees paid by swappers | 11.01%7 day | 930K | Not published |
| Orca | cbBTC-WBTC | SustainableTwo BTC representations against each other, low divergence | 4.35%7 day | 1.01M | Not published |
| Orca | cbBTC-JLP | SustainableConcentrated liquidity, fees paid by swappers | 6.67%7 day | 214K | Not published |
| Orca | USDG-xBTC | SustainableConcentrated liquidity, fees paid by swappers | 1.54%7 day | 2.01M | Not published |
| Kamino Liquidity | USDG-xBTC | SustainableManaged liquidity position, fees paid by swappers | 1.23%7 day | 2.01M | Not published |
| Loopscale | zBTC | SustainableBorrow interest, single sided, no divergence exposure | 0.856%30 day | 295K | None by construction |
| GMTrade | BTC-USDC vault | CounterpartyVault takes the other side of leveraged traders | 174.5%30 day | 1.71M | Not published |
Rates are the seven day figure where one exists, never the instantaneous one. The same history contains a day printing 74,187% on a nearly empty pool, which is an artefact of the arithmetic rather than a return anybody received.
Liquidity rates are fee income before divergence loss. The upstream feed returns no estimate for any of these pools, so the column says so. Filling it with a plausible number would make this page worse, not better.
Sources: pool index / liquidity venue / lending venue
The emitted column
A column that always read zero would be worth very little. This one has a record behind it, and the record is short enough to print in full.
2024-11-07 to 2024-11-20
27.8%
The one substantial emission in the record, at its peak. It ran for 13 days and it was funded by the issuer of the asset itself, not by a protocol treasury, which is why it ended cleanly instead of decaying.
2025-09-28 to 2025-09-29
2.9%
Everything since, in full: 2 days on a reserve holding 295K dollars, plus a 9 day artefact when one pool opened.
Since then
647
Days of history on the largest reserve, containing 0 on which anything was emitted. The largest liquidity pool adds 646 days and the same answer.
Checked three ways, because a silent collector and a real zero look identical
This counts token emissions. Points programmes that have not issued a token are not counted anywhere here, because pricing an unissued point is exactly the trick this page exists to expose. If this column ever starts showing a number, that is a change in the market and not a repair to the page.
Assay
Assaying is the step between finding ore and believing it is worth something. Move the sample weight and watch the return separate by who actually pays it.
The full board adds the redemption estimate, the exposure layers and every seam behind the number.
Open the Assay BoardLoading the seam catalogue
Orecart
Ore rides a cart back up the level it came down. Redemption is the same: positions have to be unwound before principal returns one for one, and that takes real time. The cost of hiding that time is paid by whoever tries to leave last.
Step 01
A redemption request is written on chain with its size and its timestamp. Position is decided by that record, not by who is watching.
| Usual | Here |
|---|---|
| Deposits confirm in a block, withdrawals take an unstated number of days | The line depth and the observed wait are published on the same screen as the deposit control |
| A queue that can be paused at the operator's discretion | No discretionary pause. A keeper that stops working loses bond and the line keeps its order |
| Priority granted quietly to whoever asked first offline | Priority is a fee with a published split, visible to everyone in the line |
| Delays disappear from the interface once they are resolved | Every missed window stays in the log with the seam that caused it |
None of this makes an exit instant. It makes the wait a number that somebody has posted bond against, which is a different thing from a promise.
Headlamp
Always litBitcoin reaching Solana passes through a custodian, a bridge, or a permissioned signer set before any seam pays anything. Folding that into a single score hides which layer is actually weak, so the layers are graded apart and shown together.
The path bitcoin takes to reach Solana, and who can halt or reverse it.
Who holds the underlying reserve, under what attestation and what cadence.
The venues a seam lends into, their oracle path and their liquidation record.
The price path used to value collateral, how many independent sources feed it, and what happens when they disagree.
Whether the position can actually be unwound at the size held, or only on paper at the quoted mid.
None of this is a claim about anybody’s intentions. Every field below was read from the mint account or from a reserve feed, and the call that produces it is written down.
Issued by Coinbase
Both the mint authority and the freeze authority are off-chain keys. Coinbase can issue without limit and can freeze an individual token account. That is not an accusation, it is what the mint account says.
A risk page listing other people’s mistakes without saying which one applies here is decoration. Each row names the surface it lands on.
2022-02-02 / Signature verification bypass / made whole
The bridge that issues the WBTC representation carrying the deepest trading liquidity on Solana. The loss was covered in full by a backer, which is a fact about that backer and not about the bridge.
2026-04-01 / Compromised admin and manipulated token price / not recovered
The venue a basis seam would have been built on. Both halves of the technique, an admin key and an external price, are surfaces LODZ has too.
2022-11-12 / Private key compromise / not recovered
Killed the Sollet bridge behind soBTC. That token still exists, still reports 16,149 units outstanding, and still trades at a 99.96 percent discount. Issuer failure does not need a hack.
2022-10-11 / Price oracle manipulation / not recovered
The exact reason collateral is not valued from a single price source.
A bridged representation of bitcoin is a claim on a reserve held by somebody else. No grade on this page removes that dependence, and nothing here is described as safe or assured.
Stope
A stope is the chamber opened once a seam proves out. Three run at once. They are not tiers of service: each publishes what this router will admit from an emission schedule and, separately, the higher boundary the program itself enforces.
Both percentages are governance limits the token writes and the program keeps. The first caps how much of a venue’s quoted return counts toward a chamber; the second caps how much of that chamber’s capital may sit on seams an emission schedule pays. Holders set the first and revise it freely, the program enforces the second and lifts it only by upgrade, and the bridged BTC behind them stays in one-for-one custody the whole time.
Nothing that depends on a schedule and nothing funded by somebody else's loss. The quoted rate is the whole rate.
The first two figures are separate facts. What the router admits is a stance taken here and revisable here, with nothing on chain holding it. The program ceiling is where the chain stops accepting: past it a reallocation fails with EmissionsAllocationExceeded, and a ceiling can only be raised by upgrading the program. Publishing only the first would read as a boundary and understate what the protocol may take on. Right now every measured seam sits inside both, because the emitted share of all of them is zero; they start deciding something the moment a schedule appears, which is exactly when a limit written afterwards would be worth nothing.
Holders decide which working faces the router admits and where each chamber ceiling sits. A venue with a headline rate nobody admits earns nothing here.
Operators who unwind positions post bond against the queue commitments they accept. Missing one costs the operator their bond, which is what turns a published wait into a promise with a price on it.
The fee a ticket pays to move up the line is split by a rule set on chain, not by whoever is on shift.
Shaft notes
Answered plainly, including the ones where the answer is that something does not work or cannot be measured.
It holds the representation you deposited one for one in a program-owned custody account, and the program itself enforces the redemption line that returns your principal, so the order of that line sits on chain rather than at an operator's discretion. The work around that principal is attribution: LODZ measures which bitcoin seams on Solana are earning, names who supplies the money that pays each one, splits every rate into the part that is durable and the part that is emitted, and publishes how much it could not measure rather than rounding it away. Since 2026-08-22 anyone reporting what a seam earned posts a bond the program can take and loses it if the figure is wrong, so those numbers carry money behind them. Every representation here is bridged rather than bitcoin itself, and no rate is promised.
Because across 94 BTC-related Solana pools, none pays token emissions, and 647 days of history on the largest reserve contains no day where it did. The same snapshot finds 15 non-BTC Solana pools that do pay emissions, so the collector is working. If the column starts showing a number, that is a real change and not a fix.
Trading fees. Two Orca pools, cbBTC-USDC and SOL-cbBTC, carry rates in the mid teens against real volume. That is close to the whole of it, which is why the seam map is short.
No. They are fee rates before the loss a liquidity position takes when the two sides move apart, and the upstream data returns no estimate for any of these pools. A seam that cannot show that figure says so rather than filling it in.
It is on the list, in its own kind and its own colour. Its return comes from leveraged traders losing money, which reverses when they win. Sorting it next to a fee rate in the same shade would be the lie this whole surface exists to avoid.
No. Every representation here is a claim on a reserve held by somebody else, reached over a custodian or a bridge or both. The exposure page names which one, how many hops it took, and whether the issuer holds a key that can freeze your balance.
As long as it takes to unwind the seams holding it, which is published as line depth and observed wait rather than quoted as a promise. Operators post bond against the windows they accept, so a missed window costs them and stays in the log.
Basis trading. The obvious venue for it has not settled funding since April 2026 and every write to its BTC market failed across the week that was sampled, while still reporting 250 BTC of open interest. Nothing gets listed here until it can show recent successful transactions.
Each reading carries the timestamp of the snapshot it came from and links to the endpoint that produced it. A dated figure with a source is more useful than an undated one that looks live.
Lode
Three surfaces reading one catalogue and one set of exposure grades. Take whichever one fits how you already work.
Pick a representation, read what it costs you in custody and bridge exposure, then choose a chamber. Every one of those figures is on the same screen as the control that commits.
The embed badge prints the durable and emitted split of a position on your own page, from the same catalogue this site reads, so the two cannot fall out of step.
Lodz CLI covers the same operations without a browser, backed by the SDK so a wallet or a custody stack can call them directly.
Bitcoin lending on this chain pays close to nothing. The real return is trading fees on two or three pools, quoted before divergence loss that nobody publishes. Emissions are at zero, so our emitted column is empty and stays empty until that changes. Every representation you can deposit is a claim held by somebody else. All of that is on the page because leaving it off is how the rest of this market got its numbers.
Readings taken 2026-08-15T07:00Z at slot 439384847