Data Feeds
Data feeds are the pipelines Sorin uses to ingest real-time information from markets, news sources, on-chain activity, and other signal sources. Each feed streams events continuously, and you can attach reactions to any feed — rules that tell Sorin what to do when specific events arrive.
Feeds and reactions are what turn Sorin from a passive assistant into an always-on agent. You configure the pipelines once; Sorin watches them forever.

What a Data Feed Is
A data feed is a named, configured source of real-time events. Every feed has:
Name
Human-readable label (e.g., "Binance ticker price", "Diplomacy & ceasefire updates").
Type
The category of data — Market, News, Social, On-chain, etc.
Runtime
The underlying connector that fetches the data (e.g., binance-ticker-price, Google News RSS, Polymarket Markets).
Description
What the feed produces, so future-you remembers what it's for.
Status
Whether the feed is live, in pilot, or paused.
Health
Whether the feed's runtime is currently ingesting successfully.
Reactions
The automated rules attached to this feed.
You can run many feeds in parallel. Each feed is independent — pausing one does not affect the others.
Feed Status
A feed is always in one of these states:
Active
Live and ingesting. Any configured reactions will fire on qualifying events.
Pilot
Ingesting for evaluation only. Reactions can run, but the feed is marked as not yet production-trusted.
Paused
Halted. No ingestion and no reactions firing until resumed.
Health is separate from status. A feed can be Active but Unhealthy — meaning it's configured to run but the runtime is having trouble (API outage, credential issue, rate limiting). Health indicators appear next to every feed in the directory.
Feed Types
Data feeds are grouped by the kind of information they carry:
Market
Exchange APIs, tickers, order books
Binance ticker price, Binance 24h, Polymarket Markets
News
RSS aggregators, newswire
Google News RSS feeds for geopolitics, policy, energy
Social
WebSocket streams, mention APIs
Real-time social mention streams for major tickers
On-chain
Indexers, RPC endpoints, event watchers
Wallet activity, DEX flows, governance events
Type is used for filtering the directory and for reasoning about a feed's role in your overall automation setup.
The Data Feeds Directory
The directory is the single place you manage every feed. From the Customize → Data Feeds view, you can:
Search feeds by name or description
Filter by type (Market, News, Social)
Filter by kind (the specific runtime)
Filter by status (Active, Pilot, Paused)
Expand any feed to see its reactions
Pause, configure, or delete a feed inline
The header shows live counts — how many feeds are active, how many are healthy, how many are in pilot or paused, and how many reactions have triggered in the current window.
Reactions
A reaction is an automated rule attached to a data feed. When an event from the feed matches the reaction's filter, Sorin runs the reaction's "do" — typically reviewing the event against your mandate, determining impact on your positions, and executing any warranted trades or adjustments.
Reactions are how you move from "Sorin is watching" to "Sorin is doing." Without them, a feed just logs events.
Anatomy of a Reaction
Every reaction has four configurable sections:
When
The filter that determines whether an incoming event triggers the reaction.
Always — every event from the feed triggers the reaction
Custom filter — only events matching a specified condition trigger
Use Always when the feed itself is pre-filtered to just what you care about. Use a custom filter when one feed carries many event types and you only want to react to some.
Do
The natural-language instruction Sorin executes when the filter matches. This is where you tell Sorin what the reaction is for.
Good examples:
"Review binance ticker price events against the mandate, determine impact on positions, and execute any warranted trades or adjustments."
"Summarize the news item, check if any open positions are affected, and alert me if material."
"Check whether the social mention volume crosses the threshold for the referenced ticker and, if so, open a pilot-sized position."
Rate Limit
The coarse guardrail that prevents a reaction from firing too often.
At most X times per {minute, hour, day} — cap total executions in a rolling window
Rate limits are a safety net. Even if a feed is flooded with events, the rate limit caps how many times the reaction can actually run.
Advanced
Fine-grained throttling and scoping controls:
Workspace
The workspace the reaction runs in. Scopes the reaction's view of context and positions.
Trading Bot (optional)
Ties this reaction to a specific Trading Bot. If set, any trades execute under that bot's policy and custody. If not set, the reaction runs globally.
Cooldown (seconds)
Minimum wait between consecutive reaction runs. Protects against event bursts.
Max per window
Caps the number of executions within the Window duration.
Window (seconds)
The rolling window over which Max per window applies.
Debounce (seconds)
If more events arrive within this window, Sorin waits for the stream to quiet down before firing once. Useful for collapsing bursts of near-duplicate events.
{% hint style="info" %} Start with conservative rate limits. It's easier to loosen throttling after you've watched a reaction behave than to clean up after a runaway loop. Pilot mode plus a tight cooldown is a good starting posture. {% endhint %}
Example: Reacting to a Market Event

Feed: Binance ticker price (Market, Active, Healthy)
Reaction:
When: Always
Do: "Review binance ticker price events against the mandate, determine impact on positions, and execute any warranted trades or adjustments."
Rate limit: At most 10 times per hour
Workspace: (scoped to a specific workspace)
Trading Bot: No wallet — run globally
Cooldown: 300 seconds
Max per window: 10
Window: 3600 seconds
Debounce: 0 seconds
What this does:
Every Binance ticker price event triggers a reaction. Sorin reviews the event against the workspace's mandate and, if warranted, proposes or executes a trade. The rate limit caps the reaction at 10 runs per hour; the cooldown enforces at least 5 minutes between runs; and the window limits total runs to 10 in any rolling hour.
If the feed briefly floods with events (a fast move, many updates in a few seconds), the throttle absorbs the spike instead of firing ten times in a minute.
Adding a Data Feed
From the Data Feeds directory, click + to add a new feed.
You'll configure:
Name — how you'll refer to it
Type — Market, News, Social, On-chain
Runtime — the specific connector to use (depends on what's available; additional runtimes can come from installed Skills)
Description — one-liner explaining what the feed produces
Credentials or configuration — API keys, symbols to track, RSS URLs, etc., depending on the runtime
New feeds default to Pilot status so you can watch them for a while before trusting them.
Adding a Reaction
Expand any feed in the directory and click + Add reaction. The reaction editor walks through When → Do → Rate limit → Advanced, with sensible defaults at each step.
A feed can have any number of reactions. It's often cleaner to have several narrowly-scoped reactions than one broad one — easier to tune, pause, or replace individually.
Last updated