Docs / resolution
Resolution windows + rugs
Once a Call is extracted, the resolver re-prices its contract at increasing intervals and records both peak and realized return.
Cadence
| Call age | Poll interval | What we record |
|---|---|---|
| 0 - 1h | 5 min | current price, peak so far |
| 1h - 24h | 30 min | +1h, +6h, +24h return checkpoints |
| 24h - 7d | 1h | +7d return when it lands |
| 7d - 30d | 6h | +30d return |
| 30d+ | daily | archive resolution |
Sources
- DexScreener — primary. Covers ETH/Base/BSC/Solana/Polygon/Arbitrum. No API key required.
- Birdeye — fallback for Solana if DexScreener is missing a pair (API key optional, free tier OK).
- GeckoTerminal — fallback for long-tail EVM tokens.
Rug detection
A Call is marked rugged when:
- Liquidity drops below $1k from a previous > $10k
- No swaps in 24h on a pair that had > 100 swaps in the prior 24h
- Realized return drops below -90% AND can't recover above -70% within 1h
Rugs map to realizedReturnPct = -100 in the scoring engine. Peak return is preserved so admins can still see "this went +500% before rugging."
Edge cases
- Multi-pair tokens. If a token trades on 3 different DEXs, we pick the highest-liquidity pair at call time and stick with it.
- Migration. If liquidity moves from V2 to V3 mid-call, we follow it. The Call record retains the original pair address; the outcome record tracks the active one.
- Bridged/wrapped variants. A call on bridged-PEPE on Base does not resolve to native PEPE on Ethereum. Chain matters.
