Essay · Credit Markets

Rationed

Two venues, the same collateral, a 75× gap — and a column that means two different things.

Abstract Two Solana lending venues list the identical tokenized-equity collateral. On the public aggregator, one shows 67.6% borrow utilisation and the other 1.3% — a 75× gap that looks like the cleanest natural experiment in on-chain credit. It is not. The two protocols report different quantities under the same column name: one publishes stablecoin debt drawn against collateral, the other publishes how much of that token was lent out to short-sellers. Measured like for like, the gap is 1.6×. What remains is more interesting than what I thought I had found: the quiet venue is not short of borrowers, it is short of lenders — its borrowers have been rationed by an isolated funding pool for four months. I got this wrong first, and the way the number is published is a large part of why.

The number that looked like a finding

I was measuring something else entirely — whether structured products could be written on tokenized equities — when I noticed a pair of rows that did not belong together. Two lending venues on the same chain, listing the same collateral, in the same week. Jupiter Lend showed 67.6% borrow utilisation against tokenized Nasdaq-100. Kamino showed 1.3%. For tokenized NVIDIA the figures were 31.4% and 0.4%.

The detail that made it feel important was this: Kamino held more collateral. $2.66M of tokenized NVIDIA deposited against Jupiter's $1.43M, and roughly thirty-eight times less borrowed against it. Depositors had arrived at both venues. Borrowers had arrived at only one.

That is a genuinely good research object, or it appears to be. The confound that ruins most cross-protocol comparisons — different assets, different market conditions, different weeks — is held constant for you. Same token, same chain, same seven days. Whatever explains the gap should be a property of the venue itself. I started drafting the question: is borrow demand a property of the collateral, or of the place it is listed?

The question was fine. The number was not.

Two protocols, one column

Both venues publish through the same aggregator endpoint, and the endpoint returns a field called totalBorrowUsd for each row. It does not mean the same thing in the two cases, because the two protocols are not the same kind of object.

Jupiter Lend is a vault protocol — a Fluid-style architecture, its first non-EVM deployment. A row is a pair: collateral on one side, debt on the other. The symbol names the collateral; totalBorrowUsd is the stablecoin debt drawn against it. Dividing one by the other does not give you utilisation at all. It gives you the average loan-to-value of a borrower book, a quantity structurally capped by the collateral factor — 0.65 to 0.75 for these assets. A number that cannot exceed 75% by construction is not measuring the same thing as a number that can reach 100%.

Kamino is a reserve protocol. A row is a single asset pool, and totalBorrowUsd is how much of that asset was lent out. For a tokenized equity, borrowing the token itself means one thing: you are shorting the stock. The 1.3% is not weak credit demand. It is thin short interest — a completely different product, wearing the same column name.

A Kamino user who deposits tokenized NVIDIA and borrows dollars against it contributes zero to the NVIDIA row. Their debt sits in the market's USDC reserve, which the naive comparison never looks at.

One number answers “how levered are the holders.” The other answers “how many want to short.” I had been dividing one by the other.

Three pieces of evidence settle it, none of which require trusting my reading. First, the adapter source: Jupiter's computes totalBorrowUsd from the debt token's price, with the row keyed as a supply/borrow pair; Kamino's keys the borrow token to the reserve's own liquidity mint. Second, the borrow rate gives it away — apyBaseBorrow is identical across every Jupiter row that shares a debt token. Tokenized Nasdaq and tokenized NVIDIA both report 4.31005%, because the rate belongs to the stablecoin being borrowed, not to the collateral named in the row. Third, and most plainly: tokenized equities are not lendable on Jupiter at all. Its entire supply side is seven assets, all of them stablecoins or majors.

The aggregator's convenience endpoint strips the two fields — a borrow-market flag and the debt token — that would make the distinction visible. That is not anyone's malice. It is the ordinary cost of flattening heterogeneous systems into one table, and it is exactly how the error gets made. I would guess most published cross-protocol utilisation comparisons contain some version of it.

What the corrected picture looks like

Measured the same way on both sides — stablecoin debt drawn against tokenized-equity collateral — the venues hold almost identical collateral books, about $18M each, and the gap collapses.

As reported Like for like 0 35% 70% 67.6% 1.3% 47.2% 29.8% JupiterKamino JupiterKamino gap: 52–75× gap: 1.6×

Left: the two figures as the aggregator publishes them, which compare leverage against short interest. Right: stablecoin debt as a share of tokenized-equity collateral, computed the same way on both sides — Jupiter $8.57M against $18.15M, Kamino $5.56M against $18.62M. Provenance: DefiLlama lendBorrow joined to pools on pool UUID, cross-checked against each protocol's own API and against adapter source. Pulled 31 July 2026.

Five of Kamino's tokenized-equity reserves carry a hard borrow limit of zero. Their 0% is a configuration flag, not a behaviour. And where borrowing the token is permitted, only 0.3% to 12% of the available cap is used — so the low short interest is real, it is simply a fact about short demand for equities on Solana, not about the venue's credit market.

The finding underneath the error

Here is what I would have missed had the first number been right. Kamino's tokenized-equity market funds its dollar lending from an isolated USDC reserve. That reserve currently holds $5,922,939 supplied against $5,552,140 borrowed — 93.7% utilised, spread across 1,196 distinct wallets, with $370,799 of free liquidity remaining.

Over ninety days, borrowing in that reserve grew 18.4%. Lender supply fell 2.2%. Free liquidity collapsed by 72.7%. An independent reading has the same reserve above 90% in April — it has been pinned near its ceiling for four months and the headroom has been shrinking the whole time.

Borrowers did not stay away from Kamino. They arrived, they filled the pool, and then they were rationed — by price, and finally by the absence of anything left to borrow. Jupiter's vaults draw instead on a shared liquidity layer holding roughly $427.5M of jlUSDC and $69.6M of jlJupUSD. One venue made lending to these borrowers the default; the other made it an opt-in, and the opt-in did not fill.

What reads as absent demand is very often rationed demand. The two look identical from outside and require opposite responses.

The full history makes the shape unambiguous. Kamino's own metrics API — undocumented but public — returns over nine thousand observations per reserve covering the market's entire life. Utilisation of the equity-token reserves never once exceeded about 3.4%. There was no earlier period of health that decayed. Meanwhile the USDC reserve beside them has run between 80% and 95% for months. The constraint has been on the lender side from the beginning.

The headline LTV is decorative

A second thing surfaced that I would not have looked for, and it matters more to a borrower than any utilisation figure.

Kamino lists tokenized S&P at a loan-to-value of 0.73 against a liquidation threshold of 0.75. Two points of headroom. A borrower who draws the maximum the interface allows is 2.67% away from liquidation — one ordinary session in the S&P. The equivalent Jupiter position sits 11.76% away.

Distance to liquidation at maximum draw — tokenized S&P collateral Jupiter 11.76% Kamino 2.67% 0 6% 12% Headline LTVs differ by two points. Usable headroom differs by a factor of four.

Kamino sets tokenized S&P at LTV 0.73 against a 0.75 liquidation threshold; Jupiter's collateral factor leaves materially more room before the liquidation bound. Provenance: reserve and vault configuration read from each protocol's public API; collateral-factor scaling cross-validated against DefiLlama's independently reported ltv.

Equalise for risk — hold distance-to-liquidation constant at 10% — and Kamino's usable leverage is 3.08× against Jupiter's 4.00×, at about 34% higher cost to carry the same position. The headline LTV, the number that appears in every comparison table, is close to meaningless on its own. What a borrower actually buys is the gap between the LTV and the threshold, and that gap is not published anywhere prominent.

Some of the remaining gap is manufactured

Honesty about the surviving 1.6× requires one more subtraction. Part of Jupiter's higher drawn-LTV is not demand it discovered; it is leverage it packages and subsidises.

All eight of its tokenized-equity vaults have one-click leverage enabled, and its borrowers run about thirteen loan-to-value points hotter than Kamino's at every percentile — a median of 74.2% of the maximum collateral factor, with a tenth of the book above 95% of the cap. That is the signature of looping, not of ordinary borrowing. Kamino's measured leverage usage is 0.7%.

More striking: among all seventy-nine Jupiter vaults, the eight tokenized-equity vaults are the only ones carrying a negative borrow-rate adjustment — a 100 basis point discount, where the protocol's own governance token is charged a 110 basis point premium. That is not an emergent market outcome. It is a policy visible in configuration. One venue is paying to have this borrower book.

My prior explanation — that Jupiter wins because it ships packaged leverage and Kamino does not — turned out to be wrong on the facts. Both have the product. Kamino's entire leveraged tokenized-equity book is $19,500 across 54 positions. Product parity exists; adoption does not.

Whether these are the same people

The prescriptive question depends on something nobody publishes: are the two venues serving the same borrowers who chose differently, or two different populations?

Those imply opposite remedies. Same population choosing means the fix is price and product. Different populations means the fix is distribution — the quiet venue never reached them.

Taking a full on-chain census of Kamino — 7,564 obligation accounts read directly from program state, validated against the protocol's own API across all thirteen reserves — and matching it against a sample of Jupiter's position holders, wallet overlap comes out at roughly 6.3%. Around 94% of Jupiter's tokenized-equity borrowers hold no Kamino borrow position at all. The figure was stable as the sample grew, which is weak evidence it is not a sampling artifact.

Wallets are not people, and the Jupiter side is a recency-biased sample covering about 41% of open positions, not a census. Treat 6.3% as a lower bound on overlap and a rough one. It is the least certain number in this essay and I would not build an argument that depends on its precision.

Taken with everything above, the two findings sit in tension in a way I find clarifying rather than contradictory. Kamino's existing 1,196 borrowers are supply-constrained now — that is mechanical, immediate, and fixable by adding dollars to the reserve. But reaching Jupiter's 6,224 positions is a separate and slower problem, because those are largely different people. Supply first; distribution second. The order matters, and the sequencing falls out of the data rather than out of taste.

What this leaves

The venue does matter. It just does not matter in the way the headline number suggested, and the mechanism is not borrower preference.

Kamino's tokenized-equity market is an isolated, curated market — deliberate risk containment, the kind of design an external risk curator advocates precisely so that a shock in one collateral cannot propagate. That containment has a price, and the price is a hard funding ceiling of about $5.9M. Jupiter's shared liquidity layer has no such ceiling and no such containment. Neither is wrong. They are different points on a real trade-off, and the utilisation gap is the visible cost of a risk decision rather than evidence about how much anyone wants to borrow.

Which leaves the general lesson, the one that survives this particular pair of protocols: utilisation is not demand. It is a ratio whose denominator is a supply decision and whose definition is not stable across architectures. When it is low, the interesting question is not why borrowers stayed away. It is whether they were ever allowed in.

What I could not verify

The listing chronology is the one that most embarrassed the original framing. My "same week" premise was simply false — Kamino listed these assets around 14 July 2025, and Jupiter Lend listed them on 17 April 2026, nine months later, at a point when Jupiter Lend had only recently emerged from private beta. If anything, the striking quantity is Jupiter's velocity, not its level.

Beyond that: I could not establish whether Kamino's $18.6M of deposits are organic or incentivised — the venue runs a 5× points multiplier on supplying these assets, which would manufacture exactly the deposits-without-borrowing profile I first found so interesting, and if the deposits are seeded the collateral comparison overstates its base. Jupiter's own rate-curve shape is not exposed, so I have its level and architecture but no symmetric curve comparison. Kamino's position-level debt attributable to each specific equity collateral is not exposed either, which is the single number that would settle the corrected comparison outright rather than by aggregate. A stable 1.22–1.29× discrepancy between Kamino's published rate curve and its quoted APY went unexplained; I used the quoted figure throughout. Corporate funding details for one protocol are contaminated in every aggregator I checked by an unrelated company sharing its name, so I excluded them rather than risk repeating the confusion. And no claim here rests on social-media sources — they were not reachable, and nothing was substituted in their place.

The one number I would most like and do not have is Kamino's position-level debt by collateral. Until someone has it, the corrected 1.6× is an aggregate inference, not a measurement. I would rather say that plainly than round it away.

Figures pulled 31 July 2026 from public APIs and on-chain program state. All of it drifts. The method — join the endpoints, read the adapter, then check what the column actually means at each protocol before dividing one by the other — does not.