On This Page

Signal Surface

Markets and world events become actionable when they stay structured.

Spells combines prediction markets, WorldMonitor events, and factor summaries into one intelligence surface. The goal is not to become a news terminal. The goal is to give users enough context to create a trigger, cast a strategy, or understand why a position needs attention.

Trigger cadence

60s

Active triggers are evaluated every minute against fresh-enough signals.

WorldMonitor factors

5

Growth, liquidity, risk, regulation, and shock are the only canonical factors.

Market pipeline

30 min

Enrichment cadence for metadata, relationships, correlations, and GMX market context.

Freshness rule

Fail closed

Execution-critical stale data does not get the benefit of the doubt.

Growth Context
Liquidity Flow
Risk Stress
Regulation Policy
Shock Disruption
Pipelines + jobs

Signal ingestion is a scheduled pipeline, not a request-time improvisation.

Price refresh, market data, WorldMonitor, trigger evaluation, and clustering all run at different cadences. That separation lets the product keep UI reads fast, preserve last-known-good results, and fail closed when execution-critical freshness is missing.

External feeds Polymarket, RSS, GMX infra Refresh jobs 2m / 30m / 6h cadences Trigger evaluator 60s cycle KV + Neon Cache + analytics TLM Execution handoff

Signal ingestion is layered by freshness

Hot prices refresh every two minutes. Enrichment and event intelligence update less often. Cluster analytics are the slowest, most derived layer.

Evaluation turns signal into action

The trigger evaluator loads active trigger state, respects cooldown metadata, checks freshness, and dispatches execution requests only for matching triggers.

Persistence separates live control from rich query surfaces

Neon stores history and analytics. KV distributes hot reads. The live trigger authority still sits in Durable Objects rather than in replicated query tables.

WorldMonitor model

WorldMonitor compresses noisy events into five durable factors.

Events carry title, source, time, severity, category, geography, and factor impact. But the user does not need a macro research terminal. They need a scan-friendly map, feed, and factor layer that can meaningfully connect to trigger creation.

Growth

Global growth outlook and expansionary pressure.

Liquidity

Monetary conditions, credit availability, and market funding environment.

Risk

Geopolitical and systemic risk appetite moving across positions and markets.

Regulation

Policy and rule-making pressure that changes asset or market behavior.

Shock

Unexpected disruptive events that create abrupt repricing or uncertainty.

Severity model

Critical, high, medium, low, and info are used consistently across feed, map, and downstream alert context.

Trigger semantics + runtime

Trigger state has to stay simple for users and rich enough for operators.

The user sees active, paused, fired, and expired. Runtime logic adds cooldown suppression metadata, versioned state, authoritative DO commits, and outbox replication so a trigger does not accidentally resurrect during recovery.

Canonical user-visible states

  • Active
  • Paused
  • Fired
  • Expired

Runtime requirements behind those states

  • Cooldown remains metadata on an active trigger, not a fifth lifecycle state.
  • Pauses, deletes, DISARM, expiry, and fire side effects must commit atomically in the Trigger Registry.
  • Tombstones prevent stale replay from reviving deleted triggers.
Degraded continuity

The trigger system is built to continue safely through database outages.

Live trigger state comes from the Trigger Registry DOs, not Neon. That lets the evaluator continue from committed control-plane state while Neon catches up later through idempotent replay.

Healthy path
Mutations validate at the Worker, commit in the account’s Trigger Registry DO, append outbox events, and replicate to Neon asynchronously for query richness.
Neon outage path
Evaluator still reads Trigger Registry state. TLM uses its encrypted session mirror. Fire records and deactivation updates wait in DO storage or Queue until Neon returns.
Hard fail-closed rule
If both Neon and the Trigger Registry are unavailable, trigger execution stops. Position monitoring and alerts remain the last safety layer.