← Back to all products

Risk Premium Engine

$15

Dynamic premium pricing based on protocol TVL, historical incidents, and market volatility.

📁 12 files
TOMLPythonMarkdown

📁 File Structure 12 files

risk-premium-engine/ ├── LICENSE ├── README.md ├── examples/ │ └── basic_usage.py ├── pyproject.toml ├── security-notes.md ├── src/ │ ├── __init__.py │ ├── config.py │ ├── engine.py │ ├── formatters.py │ ├── models.py │ └── scoring.py └── tests/ └── test_engine.py

📖 Documentation Preview README excerpt

Risk Premium Engine

Pricing engine for DeFi coverage: smart contract, depeg, oracle, bridge, governance, and liquidation risk.

Features

  • Multi-type Coverage: 6 coverage types with distinct risk profiles
  • Risk Scoring: Weighted multi-factor risk assessment (TVL, audits, maturity, etc.)
  • Utilization Surge: Dynamic premium increases at high pool utilization
  • Duration Discounts: Loyalty discounts for longer coverage periods
  • Batch Quoting: Price multiple policies in a single call
  • Configurable: All parameters adjustable via EngineConfig

Quick Start


from src.engine import PremiumEngine
from src.models import ProtocolMetrics, CoverageType

engine = PremiumEngine()

metrics = ProtocolMetrics(
    protocol_name="Aave v3",
    tvl_usd=5_000_000_000.0,
    audit_count=3,
    days_since_launch=730,
)

quote = engine.quote(
    protocol_metrics=metrics,
    coverage_type=CoverageType.SMART_CONTRACT,
    coverage_amount_usd=100_000.0,
    duration_days=30,
)
print(f"Premium: ${quote.premium_usd:.2f}")

Run Tests


pytest tests/ -v

License

MIT

📄 Code Sample .py preview

src/config.py """ Risk Premium Engine — Configuration ═════════════════════════════════════ Configurable parameters for the pricing engine. """ from __future__ import annotations from dataclasses import dataclass, field from typing import Dict, Tuple @dataclass class EngineConfig: """Configuration for the premium pricing engine.""" # ── Base Rates (annualized BPS per coverage type) ────────────────── base_rates: Dict[str, Dict[str, int]] = field(default_factory=lambda: { "smart_contract": {"low": 150, "medium": 400, "high": 900, "critical": 2000}, "stablecoin_depeg": {"low": 100, "medium": 300, "high": 700, "critical": 1500}, "oracle_failure": {"low": 200, "medium": 500, "high": 1000, "critical": 2500}, "bridge_exploit": {"low": 300, "medium": 600, "high": 1200, "critical": 3000}, "governance_attack": {"low": 100, "medium": 350, "high": 800, "critical": 1800}, "liquidation_failure": {"low": 150, "medium": 400, "high": 850, "critical": 2000}, }) # ── Utilization Surge Thresholds ─────────────────────────────────── # (threshold_pct, multiplier) surge_tiers: list = field(default_factory=lambda: [ (0.50, 1.0), # 0-50%: no surge (0.70, 1.3), # 50-70%: 1.3x (0.85, 1.8), # 70-85%: 1.8x (1.00, 2.5), # 85-100%: 2.5x ]) # ── Risk Scoring Weights ─────────────────────────────────────────── risk_weights: Dict[str, float] = field(default_factory=lambda: { "tvl_weight": 0.15, "audit_weight": 0.20, "maturity_weight": 0.15, "bounty_weight": 0.10, "verification_weight": 0.10, "upgradeability_weight": 0.10, "admin_weight": 0.10, "incident_weight": 0.10, }) # ── Risk Tier Boundaries ────────────────────────────────────────── tier_boundaries: Dict[str, Tuple[float, float]] = field(default_factory=lambda: { "low": (0.0, 0.25), # ... 19 more lines ...
Buy Now — $15 Back to Products