Menu
← All insights

Research

Kamino USDC: capacity depends on the hour

A 1m USDC deposit barely moved the modelled rate in our snapshot. Over 14 days, the highest hourly APY coincided with the lowest available liquidity.

Kamino · Main-market USDC3–17 October 2026 · UTC
Highlighted hour 14 Oct, 23:00 UTC

Supply APY

14.12%Highest hourly APY

Available liquidity

4.36m USDCLowest in the sample
Source: Kamino API · 335 of 336 hourly buckets. Values are hourly means; the missing hour is not interpolated. APY is not realised return. Download data ↗

A quoted lending yield needs two coordinates: the amount you intend to supply and the time you observe it.

We examined one USDC reserve in Kamino’s main lending market using an on-chain snapshot and 14 days of hourly API history. The snapshot does not show a fragile rate at the sizes tested: adding 1 million USDC reduces modelled base supply APR from 4.2924% to 4.2279%, a decline of 6.45 basis points.

The history adds a different finding. The highest hourly supply APY, 14.12%, coincided with the lowest hourly available-liquidity figure in the sample, 4.36 million USDC. That peak describes a particular market state, not a standing offer to new capital.

What we measured

The on-chain state was last refreshed on 17 October 2026 at 05:26:36 UTC, at slot 457919856. It was retrieved in an RPC response with context slot 457919863. We use the stored state, without extrapolating between those slots.

Snapshot measure Value
Supplier-backed supply, net of accumulated fees 131.51m USDC
Borrowed amount 119.25m USDC
Utilisation 90.68%
Base supply APR 4.2924%
Stored available amount, including accounting fees 12.53m USDC

These amounts are denominated in USDC. We do not treat USDC balances as an identical number of US dollars. The stored available amount is not a promise that a particular account can withdraw that amount.

The reserve’s curve has three distinct points: 0% utilisation / 0% borrow APR, 95% / 5.51%, and 100% / 36.34%. The protocol take rate is 10%. A separate 0.50-percentage-point fixed host component increases borrower APR; it is not included in supplier interest.

At the snapshot’s utilisation, the reserve is below the 95% curve threshold. None of the additional deposits tested crosses that threshold: each moves utilisation further down the lower segment.

The immediate effect of new supply

We add each deposit independently to the same starting state, hold the borrowed amount unchanged, and recalculate utilisation and the curve rate.

Additional deposit Modelled base supply APR Reduction from starting APR
0 USDC 4.2924% —
10,000 USDC 4.2918% 0.07 bp
50,000 USDC 4.2892% 0.33 bp
100,000 USDC 4.2859% 0.65 bp
250,000 USDC 4.2762% 1.63 bp
1,000,000 USDC 4.2279% 6.45 bp

One basis point is 0.01 percentage point. Reductions are calculated before rounding the displayed rates.

A 1 million USDC deposit is approximately 0.76% of the starting supply. At this state, that size produces a modest rate change. The result supports a narrow conclusion: this reserve’s base rate was relatively insensitive to the tested deposit sizes at the captured state. It does not establish future returns or the behaviour of another reserve.

Rate capacity is different from a deposit cap

We also solve for the additional supply that takes the modelled APR down to a chosen threshold.

Minimum base supply APR Additional supply before reaching the threshold
4.25% Approximately 655,000 USDC
4.00% Approximately 4.72m USDC
3.00% Approximately 25.80m USDC
5.00% Not achievable by adding supply at this snapshot

These are sensitivity thresholds, not recommended allocations. They hold debt and configuration fixed and exclude incentives and transaction costs.

The configured deposit cap was 1 billion USDC, with approximately 868.49 million USDC of accounting headroom. That headroom measures a different constraint. A deposit may fit beneath the cap while moving the resulting rate below an allocator’s target. Cap headroom alone is not a guarantee that a transaction will execute.

The high rate belonged to a different hour

The history contains 335 of 336 hourly buckets, from 3 October 05:00 to 17 October 04:00 UTC. The missing bucket is 5 October 17:00 UTC.

Historical measure Result
Minimum hourly supply APY 4.27%
Median hourly supply APY 4.51%
Maximum hourly supply APY 14.12%
Buckets with supply APY at least 5% 89 of 335, or 26.6%
Median API actual available liquidity 10.04m USDC
Minimum API actual available liquidity 4.36m USDC

The maximum APY and minimum available liquidity both occur in the 14 October 23:00 UTC bucket. The rate curve offers a mechanism consistent with this pairing: scarce unborrowed liquidity can push utilisation into the steeper region and raise borrowing rates. The data do not establish what caused that particular episode.

The distinction between observation and experience matters. Kamino’s history endpoint reports APYs, amounts and capped available liquidity as averages of underlying snapshots within UTC buckets. A bucket above 5% does not prove the rate stayed above 5% throughout that hour. The median is a median of hourly reported APYs, not a depositor’s realised return.

We retain historical APY as reported. We do not relabel it APR, reconstruct exact historical reserve states from hourly means, or apply the latest configuration retrospectively to estimate historical deposit capacity.

Method and limits

The snapshot model follows the interest decomposition in the Kamino lending SDK, using the supplied SDK 13.0.3 decoder output and archived source files.

Borrowed and fee balances use scaled fractions with a 2^60 multiplier. After conversion into USDC units, supplier-backed supply is the stored available amount plus debt, less accumulated protocol, referrer and pending-referrer fees. For an added deposit d:

Utilisation = borrowed amount / (starting supply + d)

Base supply APR = utilisation × interpolated curve borrow APR × (1 − protocol take rate)

The reserve uses the TrueApr interest basis. No slot-duration adjustment is applied. The separate fixed host component is excluded from supplier income. The capacity thresholds are numerical solutions of the same formula, bounded by deposit-cap headroom.

The captured farm has no available reward balance and zero scheduled reward emission; reserve-reward settings used here are also zero. We exclude rewards from the model and make no claim that all external points or incentive programmes are absent.

No changes were observed in the sampled historical curve, take rate, host component or deposit/borrow caps. This does not establish exact configuration-change dates or rule out changes between samples. Historical slots and interest-rate basis are unavailable.

The model is an instantaneous counterfactual, not a transaction simulation. It excludes subsequent borrowing, repayments, other deposits, accrued interest after the snapshot, compounding and unestablished fees. Withdrawal limits, collateral constraints, permissions and execution conditions require a separate check. Contract, oracle, borrower-collateral and USDC risks are not measured by this rate model.

A useful yield comparison therefore records the observed state, the allocation size, the resulting base rate and the exit constraints. In this reserve, the latest snapshot supports modest deposit impact at 1 million USDC. The historical peak tells us why the observation time still matters.