Varla
OverviewWhat it is and why it matters.How It WorksLending against prediction markets, step by step.FeaturesLending, borrowing, leverage, and risk management.Supported MarketsPolymarket, Opinion, Kalshi, and more.
DocumentationProtocol docs, guides, and architecture.Smart ContractsPool, Collateral Manager, Oracle, Liquidation Engine.SDK ReferenceTypeScript SDK for protocol interactions.API ReferenceREST and GraphQL endpoints for market data.
BlogLatest news and announcements from Varla.FAQsFrequently asked questions about the protocol.Security & AuditsProtocol security, audits, and trust assumptions.Brand AssetsLogos, colors, and typography guidelines.
Sign up
Varla
Protocol
Overview What it is and why it matters.
How It Works Lending against prediction markets, step by step.
Features Lending, borrowing, leverage, and risk management.
Supported Markets Polymarket, Opinion, Kalshi, and more.
Developers
Documentation Protocol docs, guides, and architecture.
Smart Contracts Pool, Collateral Manager, Oracle, Liquidation Engine.
SDK Reference TypeScript SDK for protocol interactions.
API Reference REST and GraphQL endpoints for market data.
Resources
Blog Latest news and announcements from Varla.
FAQs Frequently asked questions about the protocol.
Security & Audits Protocol security, audits, and trust assumptions.
Brand Assets Logos, colors, and typography guidelines.
Sign up

Introduction

Overview
Varla 101

Protocol

Overview
Lending Model
Supply & Borrow Interest Rates Reserves
User Positions
Open Positions Supply Assets Borrow Assets Withdraw Assets Repay Loans
Risk Engine
Health Factor LTV & Thresholds Liquidations Market Resolution Oracle System

Markets

Overview
Polymarket
Opinion
Kalshi
Adapters

Token

Overview
Distribution
Utility & Governance
Varla Gems

Security

Overview
Trust Assumptions
Risk Disclosure
Risk Parameters

Resources

FAQ
Glossary
Links
Brand Assets

Getting Started

Overview
TypeScript SDK
GraphQL API
Smart Contracts

Smart Contracts

Overview
Core Protocol
VarlaPool VarlaOracle Interest Rate Liquidators Market Adapters
Governance & Access
Governance

References

SDK Reference
API Reference

Operations

Testing & Debugging
Contract Addresses

Security

Overview
Trust Assumptions
Risk Disclosure
Risk Parameters

Interest Rates

How Varla's interest rate model works — a kinked utilization curve that incentivizes optimal pool utilization.
✦ Key Takeaways
  • Kinked curve — rates rise slowly below optimal utilization, then sharply above it
  • Per-second accrual — interest compounds continuously via a global borrow index
  • Floating rates — both supply and borrow APY update with every protocol interaction
  • Reserve factor — 10% of borrow interest goes to protocol reserves

The Kinked Rate Model

The model uses two slopes separated by a kink point (optimal utilization). Below the kink, rates rise gently to encourage borrowing. Above the kink, rates spike to incentivize repayment and new supply.

Rate formula
utilization = totalBorrows / totalAssets

If utilization ≤ optimalUtilization:
  borrowRate = baseRate + (utilization / optimal) × slope1

If utilization > optimalUtilization:
  borrowRate = baseRate + slope1 + ((utilization - optimal) / (1 - optimal)) × slope2

supplyRate = borrowRate × utilization × (1 - reserveFactor)

Default Parameters

ParameterValueDescription
Base Rate2%Minimum borrow rate at 0% utilization
Slope 14%Rate increase per unit utilization below kink
Slope 275%Steep rate increase above kink
Optimal Utilization80%Kink point where slope changes
Reserve Factor10%Portion of borrow interest to reserves

Example Rates

UtilizationBorrow APYSupply APY
0%2.0%0.0%
40%4.0%1.44%
80% (kink)6.0%4.32%
90%43.5%35.2%
95%62.3%53.3%
100%81.0%72.9%
ℹ Why the steep slope?
Above 80% utilization, rates spike dramatically. This is by design — it creates strong incentives for borrowers to repay and for new lenders to supply, ensuring the pool doesn't become fully utilized (which would block lender withdrawals).

Accrual Mechanics

Interest accrues per-second. Every time someone interacts with the pool (supply, borrow, repay, withdraw, liquidate), the global borrow index is updated:

Index update
timeDelta = now - lastUpdate
ratePerSecond = borrowRateAPY / SECONDS_PER_YEAR

newIndex = oldIndex × (1 + ratePerSecond × timeDelta)

// Each borrower's actual debt:
actualDebt = scaledDebt × newIndex

This means interest compounds automatically — borrowers don't need to take any action, and lenders see their share value grow in real time.

💡 Reading current rates
Use readPoolSnapshot() from the SDK to get current utilization, borrow APY, and supply APY. See TypeScript SDK.

Menu

  • Overview
  • How it works
  • Features
  • Documentations
  • FAQs

Ecosystem

  • Prediction markets
  • Builders
  • Integrations
  • Governance

Company

  • About
  • Terms
  • Privacy
  • Support

©2026 Varla Labs Inc. All rights reserved