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

Governance Contracts

Varla governance is implemented through two contracts: a Governor for proposal creation and voting, and a Timelock for delayed execution.
ℹ Source files
contracts/governance/VarlaGovernor.sol
contracts/governance/VarlaTimelock.sol

VarlaGovernor

Standard OpenZeppelin Governor with voting, quorum, and timelock execution. Uses the VRLA token for voting power.

solidity
contract VarlaGovernor is
    Governor,
    GovernorVotes,              // VRLA token for voting power
    GovernorCountingSimple,     // For/Against/Abstain
    GovernorVotesQuorumFraction, // Quorum as % of total supply
    GovernorTimelockControl     // Execute via timelock
{ ... }
ParameterDescription
votingDelayBlocks between proposal creation and voting start (immutable)
votingPeriodDuration of voting in blocks (immutable)
proposalThresholdMinimum VRLA tokens required to create a proposal (immutable)
quorumNumeratorQuorum as a percentage of total VRLA supply (e.g. 4%)

VarlaTimelock

A standard OpenZeppelin TimelockController. All governance-approved proposals are executed through this contract after a mandatory delay.

solidity
contract VarlaTimelock is TimelockController {
    constructor(
        uint256 minDelay,
        address[] memory proposers,
        address[] memory executors,
        address admin
    ) TimelockController(minDelay, proposers, executors, admin) { }
}
ParameterDescription
minDelayMinimum seconds between queueing and execution
proposersAddresses allowed to queue proposals (typically the Governor)
executorsAddresses allowed to execute queued proposals

Governance Flow

text
1. VRLA holder creates proposal  →  VarlaGovernor.propose()
2. Wait votingDelay blocks
3. VRLA holders vote               →  VarlaGovernor.castVote()
4. Wait votingPeriod blocks
5. If quorum met + majority For    →  VarlaGovernor.queue()
6. Wait minDelay (timelock)        →  VarlaTimelock
7. Execute                         →  VarlaGovernor.execute()

✦ Key Takeaways
  • Standard OpenZeppelin Governor + TimelockController pattern
  • Voting power from VRLA token (ERC20Votes)
  • All parameters (delay, period, threshold) are immutable after deployment
  • Timelock enforces mandatory delay between approval and execution

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