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:

Property
What It Defines

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:

Status
Meaning

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:

Type
Typical Runtimes
Example Feeds

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:

Control
What It Does

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:

  1. Name — how you'll refer to it

  2. Type — Market, News, Social, On-chain

  3. Runtime — the specific connector to use (depends on what's available; additional runtimes can come from installed Skills)

  4. Description — one-liner explaining what the feed produces

  5. 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