Advanced price-jump detection with sqrtPriceX96 multi-hop resolution on Uniswap v3.
Revert’s portfolio surfaces needed to flag abnormal Uniswap v3 pool moves fast enough for traders to trust alerts — a missed spike reads as a silent bug and erodes confidence in downstream risk widgets tied to the same pricing graph.
Rust Substreams sink encodes v3-aware jump heuristics, normalizes ticks and liquidity into ClickHouse-friendly columns, and aligns rollups with the multi-hop pricing engine so portfolio and price feeds disagree only when intended.
Jumps must be classified across fragmented pools with sqrtPriceX96 decoding, multi-hop USD normalization, and guardrails for low-liquidity noise so ClickHouse wasn’t flooded with false positives during sideways markets.
Map v3 Swap/Mint/Burn topics into typed rows with pool metadata and fee tier.
Reuse pricing graph rules so jump deltas are comparable token-denominated and USD-banded.
Liquidity-weighted thresholds, cooldown windows, and pair-specific baselines to suppress chatter.
Materialized views for minute/hour buckets feeding Revert UI and partner APIs.
Backtest alerts against known incidents; tune thresholds without redeploying the entire subgraph stack.
WETH/USDC anchors plus intermediate hops weighted by real liquidity depth — not naive geodesic hops through ghost pools — so jump severity reflected economic impact, not raw tick deltas alone.
WETH/USDC anchors plus intermediate hops weighted by real liquidity depth — not naive geodesic hops through ghost pools — so jump severity reflected economic impact, not raw tick deltas alone.
Substreams ingest into ClickHouse gives OLAP-friendly storage for rollups, anomaly scoring, and BI exports without re-querying chain RPC for every dashboard refresh.
Tick math and concentrated liquidity semantics baked into Rust instead of generic % change on spot.
False positives dropped once liquidity concentration was part of the score, not an afterthought.
Cheap storage for long lookbacks enabled “was this spike real?” forensics for support.
Sharing hop logic with the pricing engine kept portfolio and jump products in sync.
We take on a small number of projects at a time. If the problem is hard, we're interested.