For the complete documentation index, see llms.txt. This page is also available as Markdown.

jrDOLA

jrDOLA (Junior DOLA) is a yield-bearing token that provides first-loss layer coverage for Inverse Finance's FiRM lending markets. Users who stake DOLA as jrDOLA earn enhanced yield from DBR rewards in exchange for accepting bad debt risk before it impacts the protocol's core reserves. This creates a market-driven insurance mechanism that protects DOLA's backing while enabling protocol growth with reduced systemic risk.

By depositing DOLA for jrDOLA, users become voluntary risk absorbers who earn premium yields for protecting DOLA holders and the broader protocol. The junior tranche absorbs losses from liquidation shortfalls and bad debt events, ensuring DOLA remains fully backed even during adverse market conditions.


jrDOLA Basics

jrDOLA is structured as an ERC-4626 vault that wraps DOLA deposits with an sDOLA base layer. This architecture ensures jrDOLA holders earn at minimum the same rate as sDOLA holders, plus additional DBR rewards for accepting slashing risk. The token continuously auto-compounds DBR rewards into more DOLA through an XY=K Dutch auction mechanism, leading to a steadily increasing DOLA:jrDOLA exchange rate.

The live deployment is jrDOLA v2 (mill 390, executed 2026-07-05). It superseded the original launch contracts. All deposits are in sDOLA (0xb45ad160634c528Cc3D2926d9807104FA3157305); mill 390 did not deploy a new sDOLA.

How it works:

  1. User deposits DOLA into the jrDOLA vault

  2. DOLA is automatically staked as sDOLA (earning base yield)

  3. Additional DBR rewards stream to the vault

  4. DBR is auto-converted to DOLA via auction

  5. Both sDOLA yield and DBR rewards compound into jrDOLA

  6. jrDOLA exchange rate continuously grows relative to DOLA

Key characteristics:

  • First-loss position: Absorbs bad debt before impacting senior creditors

  • Enhanced yield: sDOLA base yield + DBR insurance premium

  • ERC-4626 compliant: Standard vault interface for composability

  • Coverage: Protects select FiRM lending markets and other Inverse Finance products via governance approval

  • Withdrawal delays: Time-locked withdrawals protect against bank runs

  • Bounded withdrawal pause: Governance can freeze queued and new withdrawals for up to 90 days during stress (mill 390). The pause is not unbounded.

  • No governance rights: Unlike staked INV, jrDOLA does not grant voting power

Why jrDOLA exists: As FiRM scales, bad debt risk grows proportionally. The current model absorbs all losses directly into protocol reserves, limiting growth potential. jrDOLA creates a dedicated capital buffer that allows the protocol to scale lending capacity while maintaining robust DOLA backing.


Minting jrDOLA

The underlying asset for jrDOLA is DOLA, Inverse Finance's decentralized stablecoin. DOLA can be borrowed on FiRM or purchased on AMMs.

To mint jrDOLA, navigate to https://inverse.finance/jrDOLA and follow these steps:

  1. Connect Your Wallet

    • Click "Connect Wallet" and select your wallet provider

    • Ensure you have DOLA (or sDOLA) and ETH (for gas) in your wallet

  2. Select jrDOLA Tab

    • Navigate to the jrDOLA section in the interface

    • Review current APY and vault statistics

  3. Enter Deposit Amount

    • Specify how much DOLA (or sDOLA) you want to stake as jrDOLA

    • The interface shows how much jrDOLA you will receive

  4. Approve and Deposit

    • Approve the spending limit (requires gas)

    • Confirm the deposit transaction (requires gas)

    • jrDOLA tokens will appear in your wallet

Important points about minting jrDOLA:

  • Capital at risk: Your DOLA deposit may be slashed during bad debt events

  • Pro rata deposits: jrDOLA represents your proportional share of the vault

  • Redeemable with delays: You can redeem jrDOLA for sDOLA subject to withdrawal delays, and subject to a bounded governance pause if one is active

  • No maximum: There is no limit on how much jrDOLA can be minted

  • Never rehypothecated: DOLA staked as jrDOLA is never loaned to third parties

  • Starts earning immediately: Yield accrual begins as soon as you deposit

You can monitor your jrDOLA position and earnings on the jrDOLA dashboard


jrDOLA Yield Accrual

jrDOLA yield comes from two distinct sources that compound together:

1. sDOLA Base Yield

All DOLA deposited into jrDOLA is automatically staked as sDOLA, providing a baseline yield floor. This ensures jrDOLA can never earn less than sDOLA holders, making the insurance premium pure additive yield. The sDOLA component earns yield from FiRM borrowing revenues distributed to the DOLA Savings Account.

2. DBR Insurance Premium

Additional DBR tokens are streamed to the jrDOLA vault as compensation for accepting first-loss risk. This "insurance premium" is the incremental yield that jrDOLA earns above sDOLA for protecting the protocol. The DBR reward rate is managed by an operator within governance approval limits and scales with protocol risk exposure.

Yield distribution mechanism:

FiRM generates revenue → DBR is burned by borrowers → Protocol allocates DBR to:

  • INV stakers (governance participation)

  • sDOLA holders (senior tranche)

  • jrDOLA holders (junior tranche insurance premium)

  • Treasury operations

The relative allocation to jrDOLA determines the insurance premium rate. Higher allocations mean higher yields but also indicate governance's assessment of risk levels requiring more insurance coverage.

Why the premium exists: Markets pay premiums for risk transfer. jrDOLA holders voluntarily accept tail risk that would otherwise constrain protocol growth, enabling FiRM to scale lending capacity while maintaining conservative risk management. The premium compensates depositors for providing this critical infrastructure.


jrDOLA Auto-Compounding

A key feature of jrDOLA is automatic compounding of both sDOLA yield and DBR rewards into additional DOLA. Your DOLA balance within jrDOLA continuously grows without any manual action required.

Auto-compounding process:

The XY=K auction operates as a virtual constant-function market maker that continuously sells DBR for DOLA. DBR reserves increase over time, pushing the price down until arbitrageurs find it profitable to buy DBR with DOLA. This creates a permissionless, automated mechanism for converting rewards into compounded principal.

Key mechanics:

  • Virtual liquidity: One side of the pair (DOLA) is virtual, the other (DBR) has continuous inflows

  • Dutch auction: Price decreases over time until trade execution

  • MEV-driven: Arbitrage bots monitor and execute trades automatically

  • No manual claims: jrDOLA never requires claiming rewards

  • Gas-free for users: MEV searchers pay gas to execute profitable trades

After DBR is swapped for DOLA, the additional DOLA is automatically deposited into the underlying sDOLA position, increasing the jrDOLA vault's total assets and thereby increasing the exchange rate for all jrDOLA holders on a pro-rata basis.


jrDOLA Yield Distribution

Yield generated from DBR auctions is allocated to jrDOLA holders on a pro-rata basis over a 7-day distribution period. This weekly cycle is structured with periods starting and finishing at roughly Thursday 00:00 UTC. The yield distributed in any given week derives from auction activity during the preceding week.

Supply dynamics and yield lag:

This distribution mechanism creates interesting dynamics based on supply changes:

When jrDOLA supply increases:

  • Current yield appears lower than projected yield

  • Previous week's revenue was earned on a smaller supply base

  • Revenue gets distributed across more shares

  • Yield normalizes over 1-2 weeks as revenue catches up

When jrDOLA supply decreases (withdrawals):

  • Remaining holders experience temporarily enhanced yield

  • Same revenue distributed to fewer shares

  • Yields appear higher than projected yield

  • Effect normalizes as new revenue matches current supply

No fixed APY: jrDOLA does not have a predefined minimum or maximum APY. Yields fluctuate based on DBR reward allocation, protocol revenue, vault size, and slashing events. Historical yields are not predictive of future performance.


Slashing Mechanism

The core function of jrDOLA is absorbing bad debt through a process called "slashing." If and when FiRM lending positions become undercollateralized and liquidation proceeds are insufficient to cover outstanding debt, the shortfall is repaid using jrDOLA vault assets.

How Slashing Works

Triggering conditions:

  1. A borrower's collateral value falls below their debt

  2. Liquidators partially or fully liquidate the position

  3. Liquidation proceeds + liquidation incentive < outstanding debt

  4. Bad debt shortfall is identified

Slashing execution:

  1. The FiRMSlashingModule contract identifies the shortfall

  2. Governance or authorized guardian triggers a slash

  3. DOLA is withdrawn from jrDOLA vault to repay the debt

  4. All jrDOLA holders experience proportional asset reduction

  5. Exchange rate decreases: each jrDOLA now worth less DOLA

Example:

  • jrDOLA vault holds 1M DOLA

  • You hold 1,000 jrDOLA (0.1% of supply)

  • Your position is worth 1,000 DOLA

  • Bad debt event requires 100K DOLA repayment (10% slash)

  • Your 1,000 jrDOLA now worth 900 DOLA (10% loss)

  • All holders share the loss proportionally

Slashing Parameters

To balance protection against abuse while maintaining effectiveness, the slashing system includes several configurable parameters:

maxCollateralValue: Maximum collateral value eligible for slashing coverage

  • Purpose: Prevents single massive positions from draining the vault

  • Example: If set to $5M, positions with $10M collateral would not be covered

minDebt: Minimum debt threshold to trigger slashing

  • Purpose: Gas efficiency - avoids slashing for tiny positions

  • Example: If set to $10K, positions with $500 debt wouldn't trigger slashing

activationDelay: Time before newly added markets become slashable

  • Purpose: Allows observation period before risking capital

  • Example: 7-day delay gives time to assess market behavior

guardian: Multi-sig with emergency powers to remove markets

  • Purpose: Rapid response if a market exhibits concerning behavior

  • Example: Can disable slashing for a market before delay expires

These parameters are set by governance and can be updated through proposals as risk conditions evolve. Mill 390 set maxCollateralValue to $100, minDebt to $5, activationDelay to 7 days, and guardian to the Policy Committee multisig.


Withdrawal System

jrDOLA implements a time-delayed withdrawal mechanism designed to prevent bank runs while maintaining reasonable liquidity for depositors.

Two-Step Withdrawal Process

Step 1: Initiate Withdrawal (Enter Cooldown)

  • Click "Withdraw" and specify amount

  • Transaction enters your jrDOLA into a withdrawal queue

  • Cooldown period begins (variable based on queue size)

Step 2: Complete Withdrawal (Claim sDOLA)

  • Wait for cooldown period to complete

  • Return to interface once cooldown expires

  • Click "Claim" to receive sDOLA (unstaking always returns sDOLA)

  • Must claim within the 2-day exit window or withdrawal cancels

Dynamic Delay Model

Withdrawal delays use linear interpolation based on what percentage of total supply is currently in the withdrawal queue. Mill 390 parameters:

  • minDelay: 1 day (empty queue)

  • maxDelay: 10 days (queue at the threshold)

  • maxDelayThreshold: 10,000 bps (100% of supply)

When queue is small:

  • Delays approach minDelay (1 day)

When queue is large:

  • Delays extend toward maxDelay (10 days)

This dynamic model prevents coordinated mass exits while keeping individual withdrawals reasonably quick during normal conditions. It protects remaining depositors from being last out while preventing users from reacting instantly to bad news.

Bounded Withdrawal Pause

jrDOLA v2 (mill 390) added a bounded, governance-controlled pause over the withdrawal queue. Governance can freeze both queued and new withdrawals for a maximum of 90 days during an active stress event. The pause requires continuous, affirmative governance support to persist and can be lifted by governance at any time. Governance cannot hold a pause beyond 90 days without renewed action. The pause is not unbounded.

The Policy Committee guardian cannot pause withdrawals. Guardian powers are limited to removing markets from slashing protection before the activation delay has elapsed.

Cooldown and exit-window terms snapshotted when a withdrawal is queued cannot be retroactively worsened. If a pause is invoked, queued positions retain their place and resume when the pause is lifted.

Withdrawal Fees

A 5 bps withdrawal fee is charged when completing withdrawals (mill 390). This fee is distributed to remaining jrDOLA holders, compensating them for increased risk concentration as vault size decreases.

Fee purpose:

  • Compensates remaining holders for higher per-capita risk

  • Discourages frequent entry/exit behavior

  • Kept minimal to maintain reasonable liquidity

  • Paid to stakers, not protocol (zero-sum within vault)

Example:

  • 5 bps withdrawal fee (0.05%)

  • You withdraw 10,000 sDOLA

  • Fee: 5 sDOLA goes to remaining jrDOLA holders

  • You receive: 9,995 sDOLA

Exit Window

After your cooldown period completes, you have a 2-day (48 hour) exit window to claim. If you do not claim within this window, your withdrawal request cancels and your jrDOLA returns to the active vault.

Why exit windows exist:

  • Prevents indefinite withdrawal queue buildup

  • Ensures capital eventually returns to active duty

  • Allows vault mechanics to normalize after withdrawal waves

What happens if you miss the window:

  • Your jrDOLA automatically restakes

  • You can initiate a new withdrawal at any time

  • No penalty beyond needing to wait through cooldown again


Security Considerations

Comprehensive Audit Process

jrDOLA underwent an extensive dual-audit process through Sherlock to ensure security of funds and correctness of slashing mechanics:

Phase 1 - Private Audit:

  • Conducted by specialized security researchers Hash and Obsidian

  • Focus areas: ERC-4626 vault accounting, slashing logic, withdrawal queue edge cases

  • All identified issues remediated before public phase

Phase 2 - Public Audit Contest:

  • Open competition among Sherlock's security research community

  • Incentivized vulnerability discovery through competitive format

  • Final report documented all findings, fully addressed before launch

The withdrawal-pause change introduced for the v2 relaunch was implemented and reviewed separately, then fork-tested across deposit, withdraw, and slash flows prior to redeployment (mill 390).

Sherlock Shield Coverage:

  • $300,000 exploit insurance for first month post-deployment

  • Provides additional financial protection during critical early period

  • Covers smart contract vulnerabilities missed during audits

Architecture Security Features

Modular slashing system:

  • Only approved modules can slash vault assets

  • Governance can add or remove modules

  • Emergency guardian can disable concerning markets

  • Reduces attack surface through separation of concerns

Time-delayed market activation:

  • New FiRM markets have a 7-day delay before becoming slashable

  • Allows observation of market behavior before risking capital

  • Guardian can cancel activation if issues detected

Reentrancy protection:

  • Uses OpenZeppelin's ReentrancyGuard

  • Transient storage patterns for gas efficiency

  • Prevents cross-function reentrancy attacks

Oracle security:

  • Inherits FiRM's Pessimistic Price Oracle (PPO) system

  • Conservative pricing reduces likelihood of bad debt

  • Chainlink integration for price feeds


jrDOLA vs sDOLA Comparison

Understanding the differences between junior and senior tranches helps inform allocation decisions:

Feature
jrDOLA (Junior)
sDOLA (Senior)

Risk Level

High - first loss

Low - senior position

Yield Source

sDOLA base + DBR premium

DBR revenue only

Expected Yield

Higher (premium for risk)

Moderate

Capital Protection

Can be slashed

Protected by jrDOLA buffer

Withdrawal

Time-delayed with fees; pauseable up to 90 days

Instant withdrawal

Best For

Risk-tolerant yield seekers

Conservative DOLA holders

Composability

Limited due to slashing risk

High - safer as collateral


Contract Addresses

Mainnet (Ethereum), jrDOLA v2 (mill 390):

  • jrDOLA Token: 0x6f80a22a57C7F0257094eA8D426AF3F747defbC7

  • Withdrawal Escrow: 0x8554d8a6Bcc5B6D6Eb7bEA2189e6a8F8d24c7e45

  • FiRM Slashing Module: 0x316a01f878AA6d5A4C7ea2080D64D364F9538aa2

  • Linear Delay Model: 0x75FdA12cB3341CcCD41b77C2515F0DA716119B07

  • Helper: 0xcb1cf17F0e579e520458A3a3aa72ECA65eB8560C

Related Contracts:

  • DOLA: 0x865377367054516e17014CcdED1e7d814EDC9ce4

  • sDOLA (vault asset): 0xb45ad160634c528Cc3D2926d9807104FA3157305

Superseded v1 addresses (do not use): jrDOLA 0x633821B8e003344e5223509277F2084EA809A452, escrow 0x3912365Cc44309c99743597F9d18c6CB946Ab5f0, helper 0xE0Db3F30C96E272c5EF7dfE3d30272Bd2ae3D3Cf.


Frequently Asked Questions

What is jrDOLA?

jrDOLA is a yield-bearing stablecoin token structured as an ERC-4626 vault that provides first-loss insurance for Inverse Finance's FiRM lending markets. Depositors earn enhanced yield from DBR rewards in exchange for accepting bad debt risk that would otherwise impact protocol reserves.

How is jrDOLA different from sDOLA?

jrDOLA is the junior (first-loss) tranche while sDOLA is the senior (protected) tranche. jrDOLA earns higher yield by accepting slashing risk, while sDOLA earns moderate yield with capital protection from the jrDOLA buffer. jrDOLA builds on sDOLA as a base layer, guaranteeing jrDOLA yields are always higher than sDOLA yields.

Can I lose money with jrDOLA?

Yes. jrDOLA explicitly accepts capital loss risk. During bad debt events, your deposited DOLA can be partially or fully slashed to repay protocol debts. In extreme scenarios, you could lose your entire deposit. Only deposit funds you can afford to lose completely.

How much can I lose in a slashing event?

There is no cap on potential losses. A single large slashing event could take 10-50% of vault value, and multiple events could compound losses. While the protocol implements safeguards (collateral limits, minimum debt thresholds), severe market conditions could result in total loss. This is an explicit tradeoff for earning enhanced yields.

Why would I use jrDOLA instead of sDOLA?

jrDOLA is for users seeking higher yields who can tolerate capital risk. If you believe bad debt events will be rare relative to the yield premium earned, jrDOLA offers better risk-adjusted returns. It's a bet on protocol health and risk management quality. Conservative users should prefer sDOLA.

What happens if I don't withdraw during my exit window?

Your jrDOLA automatically returns to the active vault and begins earning yield again. You can initiate a new withdrawal at any time. There is no penalty beyond needing to wait through another cooldown period. This prevents indefinite withdrawal queue buildup.

Can jrDOLA be used as collateral on FiRM or other protocols?

While technically possible as an ERC-4626 token, jrDOLA is not recommended as collateral due to slashing risk. A bad debt event could suddenly reduce your collateral value, potentially triggering liquidation of your borrowing position. Most lending protocols will not accept jrDOLA as collateral for this reason.

How is the DBR reward rate determined for jrDOLA?

The DBR reward allocation to jrDOLA is set by governance through on-chain proposals. The Policy Committee multisig can adjust rates within bounds set by governance. Rates are optimized based on protocol risk exposure, vault TVL targets, competitive yield environment, and available DBR budget.

Does jrDOLA have governance rights?

No. Unlike staked INV on FiRM, jrDOLA does not grant voting power in DAO governance. This is purely a yield-earning product without governance participation. If you want voting rights, stake INV directly on FiRM instead.

What are the withdrawal delays and why do they exist?

Withdrawal delays range from 1 day (minDelay) to 10 days (maxDelay) based on what percentage of total vault supply is currently withdrawing (linear interpolation up to 100% of supply). Delays prevent bank runs where all depositors simultaneously exit, leaving the protocol vulnerable. They give the system time to handle withdrawal demand while protecting remaining depositors.

Can governance pause withdrawals?

Yes, within a bound. Mill 390 lets governance freeze queued and new withdrawals for a maximum of 90 days during stress. The pause is not unbounded: it requires continuous governance support and can be lifted at any time. Guardian cannot pause withdrawals.

Can governance change the slashing rules or withdrawal delays?

Yes. jrDOLA parameters are governable, including slashing module configuration, withdrawal delay ranges, fee structures, and DBR reward rates. Governance can add or remove slashable markets, adjust risk parameters, and migrate to new contract versions. Cooldown and exit-window terms already snapshotted for queued withdrawals cannot be retroactively worsened.

Is there insurance or cover available for jrDOLA?

Users can purchase cover from services like Nexus Mutual through OpenCover to protect against smart contract risks. However, this does not protect against slashing events (which are a designed feature, not a bug). Cover protects against hacks or exploits, not economic losses from intentional slashing.

What is the expected APY for jrDOLA?

jrDOLA has no fixed or expected APY. Yields depend on sDOLA base rate, DBR reward allocation, vault TVL, protocol revenue, and slashing events. Historical yields are not predictive. Users should evaluate risk/reward based on current parameters rather than backward-looking returns.

How do I monitor my jrDOLA position?

Visit the dashboard at https://inverse.finance/dashboard to view your jrDOLA balance, current exchange rate, accrued yield, withdrawal status, and historical slashing events. The interface provides real-time visibility into your position health and vault statistics.

What happens during a slashing event?

When bad debt occurs, the FiRMSlashingModule calculates the required repayment amount and withdraws DOLA from the jrDOLA vault. This reduces the vault's total assets while supply remains constant, decreasing the exchange rate. All holders experience proportional losses based on their share of the vault. The event is reflected immediately in your jrDOLA's DOLA value.

Can I withdraw during a slashing event?

Yes, but you will absorb the loss before exiting, and only if no governance pause is active. Slashing occurs atomically, affecting all holders simultaneously. If you are in the withdrawal queue when slashing happens, your position value decreases before you can claim. You cannot front-run slashing events because they are executed in single transactions.

Why doesn't jrDOLA cover the PSM (Peg Stability Module)?

Phase 1 of jrDOLA focuses exclusively on FiRM lending markets to minimize complexity and risk surface area. PSM coverage (protecting against depeg scenarios) is architected to be possible in future versions but requires additional development and risk analysis. The modular design allows governance to add PSM coverage through proposals when appropriate.

How does jrDOLA help the Inverse Finance protocol?

jrDOLA enables protocol scaling by absorbing tail risk that would otherwise constrain growth. It converts implicit bad debt risk into explicit, market-priced insurance funded by willing participants. This allows FiRM to expand lending capacity, support riskier collateral types, and maintain aggressive collateral factors while keeping DOLA fully backed. The protocol can grow faster with jrDOLA than without it.

Last updated

Was this helpful?