Pythia Visions

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.

1

Subscribe

One call, free, permissionless. subscribe(keccak256("BTC")) — your contract is on the distribution list for that token.

2

Receive

When a validated pattern fires, your contract gets a VisionFired event with pattern type, confidence, indicators, analysis, and feeds-to-watch.

3

React

Read the payload on-chain. Auto-subscribe to confirmation Events, adjust risk parameters, trigger your strategy — your logic, no polling.

Backtested, Not Speculative

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.

Quiet By Design

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.

Free Forever

One subscribe call, Visions for life. No LINK, no fees, no expiry — Pythia's gift to every contract that wants to be smarter.

Action-Ready Payload

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.

What Makes Visions Unique

Intelligence, Not Just Data

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.

Vision, Then Automate

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.

Multi-Token, Multi-Chain

Each token is onboarded only after passing its own walk-forward validation. New tokens added on demand — see the live roster below.

What you can build

Automated Vault Guards

Your vault receives a capitulation Vision, auto-subscribes to confirmation Events, and adjusts risk parameters — all on-chain, no human in the loop.

Risk Dashboards

Feed Vision data into your protocol's risk engine. Pattern type + confidence + indicator snapshot = structured intelligence your contracts can act on.

Autonomous Agent Triggers

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.

Alert Systems

Build notification layers that trigger when specific pattern types fire. Filter by confidence threshold, pattern type, or token.

What's in every Vision

Every alert — regardless of token — carries the same structured payload. Your contract reads it directly from the on-chain event.

Direction & confidence

Bullish or bearish bias with a confidence score bounded to the setup's historical performance on this token.

Current market snapshot

Full indicator state at detection: RSI, EMA, Bollinger position, ATR, VWAP distance, 24h momentum, candle structure. Exactly what Pythia saw.

Plain-English analysis

Two to three sentences explaining what's happening, why confidence is where it is, and what would confirm or invalidate the setup.

Feeds to watch next

Specific Pythia indicator feeds and thresholds to monitor for confirmation — ready to drop straight into a Pythia Events subscription.

Tokens with Visions live

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.

BTC — Bitcoin

2 signals validated across 9 years of BTC history (2017–2026, 75K candles). Every signal passed rigorous walk-forward validation before shipping.

Pullback setup

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.

Capitulation setup

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.

ETH — Ethereum

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.

Capitulation setup

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.

Pullback setup

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.

SOL — Solana

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.

Pullback setup

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.

LINK — Chainlink

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.

Pullback setup

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.

Capitulation setup

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.

AVAX — Avalanche

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.

Capitulation setup

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.

BNB — Binance Coin

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.

Pullback setup

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.

Capitulation setup

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.

POL — Polygon

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.

Pullback setup

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.

Capitulation setup

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.

How Visions behave

Rare by design

Silent roughly 99% of the time. Pythia only speaks when market conditions are historically meaningful.

Free forever

One subscribe call per token, no LINK, no fees, no expiry. Unsubscribe any time.

Deduplicated

One real market event = one alert. Pythia won't spam the same signal repeatedly while the condition persists.

Historically bounded

Confidence scores are bounded by the pattern's real historical performance on this token. No extrapolation, no open-ended guessing.

Integrate Visions

Subscribe to VisionFired events — free, permissionless, Chainlink-native.

Vision Registry Contract

Polygon Mainnet 0x39407eEc3Ba80746BC6156eD924D16C2689533Ed

View on Polygonscan

Detected Patterns

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.

  • Live JSON: /feed-status.jsonvisions.patterns
  • MCP tool: get_visions_info (catalog) or get_vision_payload(vision_id) (specific fired Vision)

VisionFired Event

Solidity
/// @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
);
FieldTypeDescription
tokenIdbytes32Indexed. Token identifier — keccak256("BTC")
patternTypeuint8Pattern code from the table above
confidenceuint8Confidence score within the pattern's historical range
directionuint8Signal direction — 1 = BULLISH
priceuint256Token price at detection time (18 decimals)
payloadbytesABI-encoded intelligence: indicator snapshot, analysis text, feeds-to-watch

VisionVaultGuard — Example Consumer

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.

Solidity
// 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.