Replace hardcoded anchorWidth=100 with dynamic calculation that uses staking data as a decentralized oracle. Changes: - Add _calculateAnchorWidth() function to Optimizer.sol - Base width 40% with adjustments based on staking percentage and average tax rate - Staking adjustment: -20% to +20% (inverse relationship) - Tax rate adjustment: -10% to +30% (direct relationship) - Final range clamped to 10-80% for safety Rationale: - High staking % = bullish sentiment → narrower anchor (20-35%) for fee optimization - Low staking % = bearish/uncertain → wider anchor (60-80%) for defensive positioning - High tax rates = volatility expected → wider anchor to reduce rebalancing - Low tax rates = stability expected → narrower anchor for fee collection The Harberger tax mechanism acts as a prediction market where stakers' self-assessed valuations reveal market expectations. Tests: - Add comprehensive unit tests in test/Optimizer.t.sol - Add mock contracts for testing (MockStake.sol, MockKraiken.sol) - Manual verification confirms all scenarios calculate correctly Documentation: - Add detailed analysis of anchorWidth price ranges - Add staking-based strategy recommendations - Add verification of calculation logic 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
148 lines
No EOL
5.4 KiB
Markdown
148 lines
No EOL
5.4 KiB
Markdown
# Staking-Based AnchorWidth Recommendations
|
|
|
|
## Understanding Staking as a Sentiment Signal
|
|
|
|
The Harberger tax staking mechanism creates a prediction market where:
|
|
- **Tax Rate** = Cost to hold a position (self-assessed valuation)
|
|
- **Percentage Staked** = Overall confidence in protocol
|
|
- **Average Tax Rate** = Market's price volatility expectation
|
|
|
|
## Staking Metrics → Market Conditions Mapping
|
|
|
|
### High Staking Percentage (>70%)
|
|
**Interpretation**: Strong bullish sentiment, holders confident in price appreciation
|
|
- Market expects upward price movement
|
|
- Stakers willing to lock capital despite opportunity cost
|
|
- Lower expected volatility (confident holders)
|
|
|
|
**anchorWidth Recommendation**: **30-50%**
|
|
- Moderate width to capture expected upward movement
|
|
- Avoid excessive rebalancing during steady climb
|
|
- Maintain efficiency without being too narrow
|
|
|
|
### Low Staking Percentage (<30%)
|
|
**Interpretation**: Bearish/uncertain sentiment, holders want liquidity
|
|
- Market expects downward pressure or high volatility
|
|
- Stakers unwilling to commit capital
|
|
- Higher expected volatility (nervous market)
|
|
|
|
**anchorWidth Recommendation**: **60-80%**
|
|
- Wide range to handle volatility without constant rebalancing
|
|
- Defensive positioning during uncertainty
|
|
- Prioritize capital preservation over fee optimization
|
|
|
|
### Medium Staking Percentage (30-70%)
|
|
**Interpretation**: Neutral market, mixed sentiment
|
|
- Balanced buyer/seller pressure
|
|
- Normal market conditions
|
|
- Moderate volatility expectations
|
|
|
|
**anchorWidth Recommendation**: **40-60%**
|
|
- Balanced approach for normal conditions
|
|
- Reasonable fee capture with manageable rebalancing
|
|
- Standard operating parameters
|
|
|
|
## Average Tax Rate → Volatility Expectations
|
|
|
|
### High Average Tax Rate (>50% of max)
|
|
**Interpretation**: Market expects significant price movement
|
|
- Stakers setting high taxes = expect to be "snatched" soon
|
|
- Indicates expected volatility or trend change
|
|
- Short-term holding mentality
|
|
|
|
**anchorWidth Recommendation**: **Increase by 20-30%**
|
|
- Wider anchor to handle expected volatility
|
|
- Reduce rebalancing frequency during turbulent period
|
|
- Example: Base 40% → Adjust to 60%
|
|
|
|
### Low Average Tax Rate (<20% of max)
|
|
**Interpretation**: Market expects stability
|
|
- Stakers comfortable with low taxes = expect to hold long-term
|
|
- Low volatility expectations
|
|
- Long-term holding mentality
|
|
|
|
**anchorWidth Recommendation**: **Decrease by 10-20%**
|
|
- Narrower anchor to maximize fee collection
|
|
- Take advantage of expected stability
|
|
- Example: Base 40% → Adjust to 30%
|
|
|
|
## Proposed On-Chain Formula
|
|
|
|
```solidity
|
|
function calculateAnchorWidth(
|
|
uint256 percentageStaked, // 0 to 1e18
|
|
uint256 avgTaxRate // 0 to 1e18 (normalized)
|
|
) public pure returns (uint24) {
|
|
// Base width starts at 40%
|
|
uint24 baseWidth = 40;
|
|
|
|
// Staking adjustment: -20% to +20% based on staking percentage
|
|
// High staking (bullish) → narrower width
|
|
// Low staking (bearish) → wider width
|
|
int24 stakingAdjustment = int24(20) - int24(uint24(percentageStaked * 40 / 1e18));
|
|
|
|
// Tax rate adjustment: -10% to +30% based on average tax
|
|
// High tax (volatile) → wider width
|
|
// Low tax (stable) → narrower width
|
|
int24 taxAdjustment = int24(uint24(avgTaxRate * 30 / 1e18)) - 10;
|
|
|
|
// Combined width
|
|
int24 totalWidth = int24(baseWidth) + stakingAdjustment + taxAdjustment;
|
|
|
|
// Clamp between 10 and 80
|
|
if (totalWidth < 10) return 10;
|
|
if (totalWidth > 80) return 80;
|
|
|
|
return uint24(totalWidth);
|
|
}
|
|
```
|
|
|
|
## Staking Signal Interpretations
|
|
|
|
### Scenario 1: "Confident Bull Market"
|
|
- High staking (80%), Low tax rate (20%)
|
|
- Interpretation: Strong holders, expect steady appreciation
|
|
- anchorWidth: ~25-35%
|
|
- Rationale: Tight range for fee optimization in trending market
|
|
|
|
### Scenario 2: "Fearful Bear Market"
|
|
- Low staking (20%), High tax rate (70%)
|
|
- Interpretation: Nervous market, expect volatility/decline
|
|
- anchorWidth: ~70-80%
|
|
- Rationale: Wide defensive positioning
|
|
|
|
### Scenario 3: "Speculative Frenzy"
|
|
- High staking (70%), High tax rate (80%)
|
|
- Interpretation: Aggressive speculation, expect big moves
|
|
- anchorWidth: ~50-60%
|
|
- Rationale: Balance between capturing moves and managing volatility
|
|
|
|
### Scenario 4: "Boring Stability"
|
|
- Medium staking (50%), Low tax rate (10%)
|
|
- Interpretation: Stable, range-bound market
|
|
- anchorWidth: ~30-40%
|
|
- Rationale: Optimize for fee collection in stable conditions
|
|
|
|
## Key Advantages of Staking-Based Approach
|
|
|
|
1. **On-Chain Native**: Uses only data available to smart contracts
|
|
2. **Forward-Looking**: Tax rates reflect expectations, not just history
|
|
3. **Self-Adjusting**: Market participants' actions directly influence parameters
|
|
4. **Sybil-Resistant**: Costly to manipulate due to tax payments
|
|
5. **Continuous Signal**: Updates in real-time as positions change
|
|
|
|
## Implementation Considerations
|
|
|
|
1. **Smoothing**: Average metrics over time window to prevent manipulation
|
|
2. **Bounds**: Always enforce min/max limits (10-80% recommended)
|
|
3. **Hysteresis**: Add small threshold before adjusting to reduce thrashing
|
|
4. **Gas Optimization**: Only recalculate when scraping/repositioning
|
|
|
|
## Summary Recommendations
|
|
|
|
For the on-chain Optimizer contract:
|
|
- Use `percentageStaked` as primary bull/bear indicator
|
|
- Use `averageTaxRate` as volatility expectation proxy
|
|
- Combine both signals for sophisticated width adjustment
|
|
- Default to 40% width when signals are neutral
|
|
- Never exceed 80% or go below 10% for safety |