Free, on-chain market intelligence for every smart contract. When a walk-forward validated pattern fires on a token you watch, your contract receives pattern type, confidence score, full indicator snapshot, and the specific feeds to watch for confirmation. No LINK, no tier, no expiry — new tokens added on demand.
Subscribe your contract to a token. When a validated market pattern fires, your contract receives the full intelligence package on-chain — pattern type, confidence score, indicator snapshot, analysis, and which Pythia Feeds to watch for confirmation. Fire rate varies by token and pattern — from a handful of high-conviction events per year to a hundred-odd for frequent mean-reversion signals. Silent the other 99% of the time.
One call, free, permissionless. subscribe(keccak256("BTC")) — your contract is on the distribution list for that token.
When a validated pattern fires, your contract gets a VisionFired event with pattern type, confidence, indicators, analysis, and feeds-to-watch.
Read the payload on-chain. Auto-subscribe to confirmation Events, adjust risk parameters, trigger your strategy — your logic, no polling.
Every pattern is validated against years of historical data across thousands of candles. When a Vision fires, it carries the weight of evidence — not opinion.
Frequency is set by each pattern's historical fire rate, not a schedule. No noise, no spam. Silent 99% of the time; speaks only when indicators reach historically meaningful territory.
One subscribe call, Visions for life. No LINK, no fees, no expiry — Pythia's gift to every contract that wants to be smarter.
Every Vision hands your contract the full picture — pattern type, confidence, indicator snapshot, and the specific feeds to watch for confirmation. Enough to act on, no off-chain lookup required.
Oracles give you prices. Pythia gives you intelligence. A Vision tells you WHAT the market is doing, HOW confident the pattern is historically, and WHICH indicators to watch for confirmation.
When a Vision fires, you decide how to act. Watch it with your own indicators, pull ours for confirmation, or subscribe to Events and let your bot handle the trigger the moment thresholds hit — no polling, no babysitting.
Each token is onboarded only after passing its own walk-forward validation. New tokens added on demand — see the live roster below.
Your vault receives a capitulation Vision, auto-subscribes to confirmation Events, and adjusts risk parameters — all on-chain, no human in the loop.
Feed Vision data into your protocol's risk engine. Pattern type + confidence + indicator snapshot = structured intelligence your contracts can act on.
Your agent stays idle until a Vision fires, then acts on pattern type + confidence + indicator snapshot — all read directly from chain. No polling APIs, no prompt-engineering for market context. Intelligence is handed to the agent.
Build notification layers that trigger when specific pattern types fire. Filter by confidence threshold, pattern type, or token.
Every alert — regardless of token — carries the same structured payload. Your contract reads it directly from the on-chain event.
Bullish or bearish bias with a confidence score bounded to the setup's historical performance on this token.
Full indicator state at detection: RSI, EMA, Bollinger position, ATR, VWAP distance, 24h momentum, candle structure. Exactly what Pythia saw.
Two to three sentences explaining what's happening, why confidence is where it is, and what would confirm or invalidate the setup.
Specific Pythia indicator feeds and thresholds to monitor for confirmation — ready to drop straight into a Pythia Events subscription.
Each token gets its own set of validated signals — what fires on BTC won't automatically fire on ETH. Pythia runs walk-forward validation per token before shipping.
2 signals validated across 9 years of BTC history (2017–2026, 75K candles). Every signal passed rigorous walk-forward validation before shipping.
What Pythia sees: BTC has drifted meaningfully below its recent 24h average.
What you get: bullish alert with calibrated confidence. About 2 alerts per week, verified in 9 of the last 10 years.
What Pythia sees: a sharp drop paired with elevated volatility — textbook forced selling.
What you get: high-conviction bullish alert. Rare by design — roughly 7 times a year, dormant for months in calm markets.
2 signals validated across 9 years of ETH history (2017–2026, 75K candles). Same rigor as BTC — only patterns that hold up fold-by-fold across independent years graduate.
What Pythia sees: a sharp drop paired with elevated volatility on ETH — the classic forced-selling pattern.
What you get: high-conviction bullish alert. Roughly 13 times a year, validated in every one of the five years where it fired. Dormant in calm markets.
What Pythia sees: ETH has drifted meaningfully below its recent 24h average.
What you get: bullish alert with calibrated confidence. About 3 alerts per week, validated in 9 of the last 10 years.
1 signal validated across 6 years of SOL history (2020–2026, 49K candles). SOL has shorter exchange history than BTC/ETH and structurally higher volatility, so signals are more frequent.
What Pythia sees: SOL has drifted meaningfully below its recent 24h average.
What you get: bullish alert with calibrated confidence. About 4 alerts per week — SOL fires more often than BTC or ETH because its volatility is higher.
2 signals validated across 7 years of LINK history (2019–2026, 63K candles). Same rigor as BTC and ETH — only patterns that hold up fold-by-fold across independent years graduate.
What Pythia sees: LINK has drifted meaningfully below its recent 24h average.
What you get: bullish alert with calibrated confidence. About 4 alerts per week, validated in 7 of the last 8 years — strongest in BEAR regimes.
What Pythia sees: a sharp drop paired with elevated volatility on LINK — the classic forced-selling pattern.
What you get: high-conviction bullish alert. Fires roughly 20 times a year (more than BTC or ETH because LINK volatility is structurally higher), validated in every one of the six years where it fired.
1 signal validated across 5+ years of AVAX history (2020–2026, 49K candles). Same rigor as BTC, ETH, SOL, LINK — only patterns that hold up fold-by-fold across independent years graduate.
What Pythia sees: a sharp drop paired with elevated volatility on AVAX — the classic forced-selling pattern.
What you get: high-conviction bullish alert. Roughly 21 times a year, validated in every one of the five years where it fired. Unique among shipped capitulation signals: also fires in sideways markets.
2 signals validated across 8 years of BNB history (2017–2026, 73K candles). Same rigor as BTC, ETH, SOL, LINK, AVAX — only patterns that hold up fold-by-fold across independent years graduate.
What Pythia sees: BNB has drifted meaningfully below its recent 24h average.
What you get: bullish alert with calibrated confidence. About 3 alerts per week, validated in 9 of the last 10 years — the strongest pullback edge of any token currently live on Pythia.
What Pythia sees: a sharp drop paired with elevated volatility on BNB — the classic forced-selling pattern.
What you get: high-conviction bullish alert. Roughly 15 times a year, validated in every one of the five years where it fired. Conviction is dialed lower in bear regimes where the historical edge narrows.
2 signals validated across 7 years of merged history (2019–2026, 60K candles, MATIC→POL rename in Sept 2024). Same rigor as every other live token. POL volatility cycles are structurally larger, so signals fire more often.
What Pythia sees: POL has drifted meaningfully below its recent 24h average.
What you get: bullish alert with calibrated confidence. About 5 alerts per week — the highest pullback fire rate of any token currently live.
What Pythia sees: a sharp drop paired with elevated volatility on POL — the classic forced-selling pattern.
What you get: high-conviction bullish alert. Roughly 39 times a year, validated in every one of the four years where it fired. Positive across bull, bear, and sideways regimes.
Silent roughly 99% of the time. Pythia only speaks when market conditions are historically meaningful.
One subscribe call per token, no LINK, no fees, no expiry. Unsubscribe any time.
One real market event = one alert. Pythia won't spam the same signal repeatedly while the condition persists.
Confidence scores are bounded by the pattern's real historical performance on this token. No extrapolation, no open-ended guessing.
Subscribe to VisionFired events — free, permissionless, Chainlink-native.
0x39407eEc3Ba80746BC6156eD924D16C2689533Ed
Pattern codes appear in the patternType field of VisionFired events. New patterns are added only after they pass walk-forward validation across 9 years of history; old ones may be sunset if their out-of-sample performance degrades. The catalog evolves — for the current list of pattern names + codes + descriptions, fetch the live source rather than freezing it here.
/feed-status.json → visions.patternsget_visions_info (catalog) or get_vision_payload(vision_id) (specific fired Vision)/// @notice Emitted when AI detects a backtested pattern
event VisionFired(
bytes32 indexed tokenId, // keccak256 of token name, e.g. keccak256("BTC")
uint8 patternType, // Pattern code — resolve via /feed-status.json -> visions.patterns or get_visions_info MCP tool
uint8 confidence, // Confidence score within pattern's historical range
uint8 direction, // 1 = BULLISH
uint256 price, // Token price at detection (18 decimals)
bytes payload // ABI-encoded: indicators, analysis, feeds-to-watch
);
| Field | Type | Description |
|---|---|---|
tokenId | bytes32 | Indexed. Token identifier — keccak256("BTC") |
patternType | uint8 | Pattern code from the table above |
confidence | uint8 | Confidence score within the pattern's historical range |
direction | uint8 | Signal direction — 1 = BULLISH |
price | uint256 | Token price at detection time (18 decimals) |
payload | bytes | ABI-encoded intelligence: indicator snapshot, analysis text, feeds-to-watch |
A production-ready example showing how to react to Visions on-chain. When a Vision fires, the contract auto-subscribes to confirmation Events — hands-off.
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;
import "./interfaces/IPythiaEventRegistry.sol";
import "./interfaces/IPythiaVisionRegistry.sol";
/**
* @title VisionVaultGuard
* @notice Automated risk layer that reacts to Pythia Visions.
*
* STATE MACHINE:
* IDLE --> ALERT --> WATCHING --> CONFIRMED --> IDLE
* (vision) (events (enough (auto-reset
* fires) subscribed) confirmations) after cooldown)
*/
contract VisionVaultGuard is ConfirmedOwner {
enum State { IDLE, ALERT, WATCHING, CONFIRMED }
State public state;
// Step 1: Subscribe to Visions (free, one-time)
function subscribeToVisions() external onlyOwner {
visionRegistry.subscribe(keccak256("BTC"));
}
// Step 2: Relay bot calls this when VisionFired is detected
function processVision(
uint8 patternType, uint8 confidence, uint8 direction,
uint256 price, FeedWatch[] calldata feeds, string[] calldata meanings
) external onlyOwner {
// Store Vision data, transition to ALERT
// Auto-subscribe to each recommended feed as a Pythia Event
for (uint256 i = 0; i < feeds.length; i++) {
uint256 eventId = eventRegistry.subscribe(
feeds[i].feedName, eventDays,
feeds[i].condition, feeds[i].threshold
);
}
// Transition to WATCHING
}
// Step 3: Bot reports when confirmation Events fire
function reportConfirmation(uint256 eventId, int256 value) external onlyOwner {
// Mark confirmation, check if enough received
// If threshold met --> CONFIRMED, emit ActionReady
}
// Step 4: External contracts read state
function isActionReady() external view returns (bool) {
return state == State.CONFIRMED;
}
}
Full 382-line contract with tests on GitHub.