u is utilization. Empty pool → u = 0 → rate = base.
Interest over elapsed seconds:
accrued_protocol_fees. The rest increases total_borrow_assets and borrow_index_wad. Lender equity rises by the non-fee portion.
This is why Vanna stock pools can print a non-zero APY: borrowers exist (perps + Farm). Kamino’s xStocks market has the mint and almost no borrowers, so its rate stays at zero.
