This content is for educational purposes only and does not constitute financial advice. Always do your own research before implementing any DeFi strategies and understand the risks involved.
DefiPlaza uses a specialized algorithm called CALM (Concentration-Asymmetric Liquidity Model) to reduce impermanent loss for liquidity providers. This article explains how CALM works and why it differs from traditional automated market makers.
The Impermanent Loss Problem
When you provide liquidity to traditional AMMs like Uniswap, you deposit two tokens in equal value. As prices change, users engage in arbitrage trading against your position, leaving you with more of the token that's dropping in price and less of the one that's rising. This rebalancing creates a loss compared to simply holding your original tokens.
How CALM Works
CALM treats trades differently based on whether they increase or reduce impermanent loss. The algorithm uses two different liquidity concentration levels:
Trades that increase impermanent loss: The protocol uses sparse liquidity, making it more expensive for traders to push prices further from balance. A sparse curve means liquidity is spread more thinly across price ranges, creating larger price impact for any given trade size. This makes trades that worsen impermanent loss less attractive, as traders receive less favorable exchange rates.
Trades that reduce impermanent loss: The protocol uses dense liquidity, making these trades more capital efficient. Dense liquidity concentrates tokens more tightly around current prices, allowing traders to execute with less price impact.
In this context, equilibrium represents the reference price where the protocol targets balanced token ratios. When actual token ratios deviate from these targets due to trading, the pool experiences a "shortage" of one token relative to its equilibrium amount.
This asymmetry changes how the protocol handles price movements. When traders push the price away from equilibrium on the sparse curve, they must provide more tokens than they would in a symmetric system. When the price returns toward equilibrium, these excess tokens benefit the liquidity providers rather than arbitrageurs.
The Bid-Ask Spread
CALM creates a dynamic bid-ask spread during volatile markets. The different concentration levels for trades in opposite directions naturally create a gap between buying and selling prices. This serves two purposes:
During high volatility, the spread typically generates extra income for liquidity providers when traders cross it. During stable periods, the spread usually closes gradually through an exponential filter, maintaining efficient pricing.
Traditional AMMs only collect fees from trades. CALM's dynamic spread means liquidity providers can potentially capture additional value from the price difference itself during volatile periods.
Single-Sided Liquidity
Unlike traditional AMMs that require paired deposits, CALM separates liquidity for each token. This enables several benefits:
You can provide only the token you want exposure to. There's no forced pairing requirement. Each token pool maintains its own return profile and performance metrics.
When adding liquidity during imbalances, the system recalibrates fairly without penalties. Traditional protocols often charge liquidity providers extra when adding tokens during shortages, exactly when liquidity is most needed.
Performance Data
The whitepaper presents backtesting simulations using historical price data from January 2020 to September 2023. These simulations on ETH/USDC show:
- CALM liquidity providers ended profitable despite ETH's price increasing from $129 to approximately $1,550 (12x)
- Uniswap v2 providers faced 45% impermanent loss after fees
- USD liquidity providers earned over 130% yield in the simulation
- ETH liquidity providers gained an additional 9.2% in ETH beyond holding
These simulations assume pure arbitrage flow (100% toxic orderflow), representing worst-case conditions where every trade is from arbitrageurs extracting maximum value. The analysis uses conservative fee assumptions, suggesting real-world performance with regular trading activity could potentially exceed these simulated results.
How Concentration Parameters Work
CALM uses two key parameters, k_in and k_out, which control the shape of the bonding curves:
k_in (default 1): Controls liquidity concentration for trades that reduce impermanent loss. The k value represents how concentrated or sparse the liquidity is. When k equals 0, liquidity is maximally concentrated (constant sum AMM with no price impact). When k equals 1, it matches a standard constant product AMM like Uniswap v2. Values below 1 mean more concentrated liquidity, while values above 1 mean sparser liquidity. With k_in at 1, the inward curve uses standard AMM liquidity concentration.
k_out (default 2): Controls liquidity concentration for trades that increase impermanent loss. With k_out at 2, the protocol deconcentrates liquidity by 2x when trades increase impermanent loss. This creates approximately twice the price impact compared to a standard AMM, acting as a friction mechanism against trades that worsen impermanent loss.
The ratio between these parameters (k_out/k_in, typically 2x with defaults) determines the maximum bid-ask spread and the level of impermanent loss protection. Higher ratios generally provide more protection but may reduce trading volume during stable periods. The protocol parameters can be adjusted based on backtesting and market conditions.
What This Means for Liquidity Providers
CALM pairs typically charge around 1% fees compared to 0.3% on traditional AMMs. The reduction in impermanent loss often compensates for potentially lower volume from higher fees, though results vary based on market conditions.
The algorithm generally performs best with volatile trading pairs where the bid-ask spread mechanism can potentially generate additional returns. It's designed for patient liquidity providers focused on sustainable returns rather than short-term yield farming.
Unlike concentrated liquidity positions that need active management, CALM handles concentration automatically based on market conditions. You don't need to adjust ranges or rebalance positions.
Technical Implementation
For those interested in the mechanics, CALM builds on mathematical concepts from Dodo's Proactive Market Maker (PMM) model. The key equations track token shortages relative to target amounts, with different bonding curves applied based on trade direction.
When switching between curves, the protocol recalibrates using the excess tokens generated by the asymmetric mechanism. This recalibration always favors liquidity providers, ensuring continuity while capturing value that would otherwise go to arbitrageurs.
Security and Auditing
DefiPlaza's CALM implementation on Radix has been audited by Pessimistic, a blockchain security firm established in 2017 with over 400 audits performed. The audit report, published in November 2023, examined the RadixPlaza pool's smart contracts for potential vulnerabilities.
Pessimistic employs both manual code review by experienced auditors and automated analysis tools to identify security issues. Their audit process typically involves at least two security experts examining the codebase for architectural flaws, integration quality, and compliance with industry standards.
For DefiPlaza, security audits are standard practice across all their pools, with the team prioritizing safety before launching any new features or protocols. The Radix implementation underwent weeks of testing with private liquidity before opening to public participation.
Conclusion
CALM offers a practical innovation that aims to minimize impermanent loss by changing how AMMs price trades in different directions. The asymmetric approach and dynamic spreads shift value from arbitrageurs back to liquidity providers.
The design shows that protocols don't need to choose between capital efficiency and impermanent loss protection. Through careful mechanism design, it's possible to reduce risks while maintaining core functionality.
For those interested in exploring DefiPlaza on Radix, visit the website or the docs for detailed explanations about the systems.


