Important context for this document: the
engine is already built and runs 24/7 in
production. The 16 months of research, the 21,954
recorded scans, the 36+ integrated APIs, the 12-layer
pipeline, the 21 structured outputs per scan — all of that
already exists and already operates. What we are
pivoting is not the engine but the
consumption surfaces on top of it:
a new dashboard (app.tradit.co) and an
MCP server (mcp.tradit.co) that expose the
engine to humans and AI agents. We are not
building from scratch — we are exposing what already works.
Tradit redefines itself as a signal engine for humans also connectable to the AI agents those humans already operate. The wave of open frameworks like OpenClaw, the maturation of prediction markets (Polymarket and Kalshi as operational pillars for the informed retail trader) and the consolidation of MCP as the standard for feeding agents with context define the moment. Tradit enters as an Agent Market Intelligence player: the layer that decides which signals to emit, how to present them to a human via dashboard and how to deliver them to an agent via MCP, on top of the same engine that is already running.
This page is the operational scope of the pivot — what gets built on top of the existing engine, in what order, and how each feature maps to the real outputs the engine already produces every 15 minutes. This is not a wishlist: it is the list of surfaces that make the engine consumable for users and agents — from auth to MCP, from Telegram alerts to the 21 structured outputs the engine emits, each with its visual representation.
TL;DR of scope
The pivot is structured around 7 functional areas:
- Onboarding & Auth — open registration without invitation, multi-method
- Web Dashboard (
app.tradit.co) — Market Pulse, per-asset views, watchlist, chat - Multi-channel alerts — email, Telegram, Discord, webhook
- MCP / Terminal (
mcp.tradit.co) — the native surface for agents and power users - Engine outputs — the intelligence the user consumes
- Cross-asset universe — crypto + equities + commodities + macro + prediction markets
- Compliance & disclosures — legal research/educational framing
1. Onboarding & Auth
1.1 User registration — open without invitation
Decision: open registration from day one. No waitlist, no invite-only, no manual approval. The friction of "wait for your invitation" kills the viral funnel.
- Email + password (bcrypt, no plaintext)
- Magic link (passwordless, better for mobile)
- Optional OAuth providers: Google, GitHub, Apple
- Mandatory email verification (anti-bot, anti-fraud)
- Captcha on signup (Cloudflare Turnstile — invisible if heuristic passes)
- Optional 2FA (TOTP)
- JWT sessions with refresh token, httpOnly + sameSite cookie
Minimal anti-abuse (does not block legitimate flow):
- Rate limit per IP on signup endpoint
- Email-domain whitelist; disposable email flag
- Device fingerprint to detect multi-account
- Manual review only if suspicious pattern (more than N signups from the same IP block within X minutes)
1.2 First-run experience
- Brief onboarding: what a Read is, what abstention is, how to configure a watchlist
- Sample reads loaded (BTC + ETH + SOL + Polymarket FOMC) so the user sees the product in action
- Immediate CTA to connect Telegram for alerts
- Secondary CTA to try the MCP (instructions for Claude Desktop / Cursor)
1.3 Account management
- Basic profile (name, email, timezone, preferences)
- Email change with verification
- Password reset
- Delete account (GDPR — required)
- Data export (GDPR — history of reads consulted, configured alerts)
2. Web Dashboard app.tradit.co
2.0 Validated UX patterns
Before the page list, the UX patterns we know work (validated by competitors like Rallies) that Tradit replicates rather than reinventing the wheel:
| Pattern | Origin | How Tradit uses it |
|---|---|---|
| Bottom bar tab navigation | Rallies | Tradit uses Home / Chat / Discover / Watchlist / Inbox |
| Per-asset embedded chat ("Ask anything about SNAP…") | Rallies | In /asset/:symbol, chat scoped to the asset always visible |
| Notifications/Inbox as dedicated tab | Rallies, Twitter, IG | Every user alert lands here, not scattered across email + Telegram + push without a home |
| Idea to scan / natural language input | Rallies (Stocks tab) | Discover uses the same pattern: NL → engine processes → ranked results |
| Quick-start prompts on empty state | Rallies, ChatGPT, Claude | Tradit replicates the pattern in global and scoped chat |
| Demo portfolio without auth | Rallies, Coinbase, Robinhood | Demo watchlist visible to visitors |
| Asset detail with price + chart + tabs | Rallies, Yahoo Finance | Overview / Pressure / Drivers / Events / History / Sentiment |
| Discover with tabs by category | Rallies | Active reads / New coins / Upcoming events / Polymarket spreads |
| Insights button on home | Rallies | CTA in Market Pulse for chat scoped to market state |
| "Get notified" sticky bottom CTA | Rallies (Discover/Arena) | On public pages for conversion to signup |
2.1 Required pages
| Page | Purpose |
|---|---|
| Public landing | Positioning, calibration scoreboard, sample reads |
/login /signup | Auth flows |
/pulse (post-login home) | Global Market Pulse, regime, top 3 shifts, upcoming events, cross-asset feed |
/asset/:symbol | Per-asset view: read, pressure breakdown, drivers, events, history |
/watchlist | Configurable watchlist with individual read |
/chat | Chat with the engine — NL questions, returns reads |
/daily | Daily summary — what happened in the market in the last 24h, drivers, events, shifts, and dominant narrative |
/calendar | Macro + crypto-native event calendar with interpretation |
/track-record | Public calibration scoreboard — Brier, reliability, hit rate |
/reads/:id | Historical Read auditable by ID — verified outcome |
/alerts | Alert configuration |
/settings | Account, MCP API keys, preferences |
/docs/methodology | How the engine works, data sources, limitations |
2.2 Core UI components
- PressureBars — bipolar danger/opportunity bars by domain
- RegimeGauge — current regime thermometer with confidence
- DirectionalReadCard — visual Read render with collapsible conditionals
- EventTimeline — upcoming events calendar with estimated impact
- SessionClock — active session indicator (ASIA / EU / US / weekend)
- CrossAssetMatrix — grid with oil, gold, DXY, equities and how they cross with crypto
- AbstentionBadge — visual when the read recommends abstention
- HistoricalRead — past read render with confirmed/invalidated outcome
- DriversPanel — drivers + counter-drivers with relative weights
- ScenarioConditional — conditional scenarios with explicit triggers
2.3 Global search
- Topbar search — finds assets, events, glossary concepts
- Autocomplete with indexed assets
- Semantic search of historical reads (via Lance/sift)
2.4 Watchlist — the user's central asset
The watchlist is where the user configures what matters to them. It is the center of gravity of the product: it defines which assets they receive push notifications for, which Reads are prioritized in their Market Pulse, what coverage the engine dedicates to them.
Capabilities:
- Addable universe: crypto majors, memecoins, tokenized stocks, equities (MSTR, COIN, SPY, mega-caps), commodities (oil, gold, gas), indices (DXY, VIX), prediction market events, ETFs (IBIT, FBTC, GBTC). Mix crypto + traditional + prediction markets in a single list.
- Sortable by: probable direction shift, attention, narrative divergence, active counter-narrative, abstention on/off, conviction LOW→HIGH.
- Grid + list view — UI switch by preference.
- Custom alerts per asset — each asset in the watchlist can have its own config: shift threshold, event type, preferred channel. "Notify me only if SOL flips regime".
- Tags / categories — group by personal theme.
- Comparison view — select 2-4 assets, see Reads side by side under current regime + cross-asset matrix between them.
- Bulk operations — export watchlist to CSV/JSON, import from TradingView/Coinglass.
- Demo watchlist for visitors without auth — preset BTC, ETH, SOL, MSTR, gold, FOMC event.
- Cross-device sync — the watchlist lives on the backend, not in local storage.
Access via MCP:
tradit_watchlist_get() → current user's assets
tradit_watchlist_add(symbol) → add asset
tradit_watchlist_remove(symbol) → remove asset
tradit_watchlist_state() → Reads for all assets 2.5 Chat — the research module
Inspired by Google Finance Research / Claude / Polymarket — the user asks questions in natural language, receives structured Reads as a response. It is the conversational channel of the same intelligence delivered by web/alerts/MCP.
Core features:
- Persistent conversations with history sidebar (ChatGPT/Claude style).
- "New conversation" prominently placed.
- Quick-start prompts when chat is empty:
- "What is BTC doing right now?"
- "Is there liquidation cascade risk this week?"
- "Compare BTC vs ETH under current regime"
- "Is funding overheated?"
- "What moved the market today?"
- "What is the Tradit vs Polymarket spread on the next FOMC?"
- Inline Reads in responses — embeds DirectionalReadCard, PressureBars, EventsAnticipatedPanel directly in the conversation.
- Conversation memory — remembers thread context.
- Provenance footer — "Powered by tradit-engine-0.8.1, scan_id: …"
Two modes:
- Global chat (
/chat) — broad market questions, comparisons, events. - Asset-scoped chat (in
/asset/:symbol) — embedded chat box, pre-loaded context.
3. Multi-channel alerts
3.1 Supported channels
| Channel | Note |
|---|---|
| Postmark / Resend, transactional | |
| Telegram bot | Deep link bind, single bot |
| Discord webhook | URL configured by the user |
| Generic webhook (POST JSON) | Tradit POSTs to user's URL, full Read payload |
| Browser push (PWA) | Service worker |
| Mobile app push | Roadmap — deferred to native app |
| Roadmap — deferred |
3.2 Configurable event types
- Regime flip anticipation — the regime is about to change
- Liquidation cascade brewing — conditions preceding mass liquidations
- Crowding detected — funding + OI + sentiment simultaneously overloaded
- Probable direction shift — material change in the read
- Narrative divergence — public narrative contradicts structure
- No-trade window opening — macro events / volatility shock
- Invalidation triggered — the invalidation level of an active read was hit
- Catalytic event anticipation — funding normalization, options expiry vol, fed volatility
- Whale trap / stop-hunt detected — cross-asset manipulation patterns
- Polymarket vs Tradit spread > threshold
- Institutional ETF flow > threshold — BlackRock/Fidelity accumulating or selling
3.3 Per-user configuration
- Granular selection: which types × which assets × which channels
- Custom thresholds per type (e.g. "shift > 15%", "liq cascade > $50M")
- Quiet hours (e.g. silence 22:00-07:00 user timezone)
- Fatigue throttling (max N alerts/hour of same type)
- Test alert button (sends a sample to verify channel)
3.4 Alert payload
- Source Read ID
- Subject + tagline + direction + invalidation
- Direct link to
/reads/:idfor detail - UTC timestamp + active session
- Summarized cross-asset context (1-2 lines)
3.5 Email — the default channel
Email is the leveling channel: all users receive their alerts by email unless they opt into another channel.
Email types:
- Real-time alerts — triggered by configured events. Punchy subject line: "⚡ BTC: probable direction shift detected". Body with Read preview + CTA to dashboard.
- Daily digest (opt-in, default off) — one daily email with a day summary.
- Weekly Substack auto-summary — editorial newsletter.
- Calibration notifications — opt-in, when a material read is confirmed or invalidated.
- Transactional account — password resets, account changes.
Stack: Postmark or Resend. SPF/DKIM/DMARC configured. Unsubscribe link in every non-transactional email.
3.6 Telegram — the preferred channel for crypto-native users
The crypto-native cohort (~30-50% of ICP) lives on Telegram. Offering alerts on Telegram is zero friction — they are there 14 hours a day.
Bind mechanics:
- Single official bot:
@TraditBot. - Settings → "Connect Telegram" → unique deep link
t.me/TraditBot?start=token_xyz. - User opens Telegram → Start → bot binds their
chat_idto Tradit user_id. No password.
Bot capabilities:
- Receive alerts push per config
- Basic commands:
/pulse→ market state/read BTC→ asset Read/watchlist→ watchlist state/eventos→ next 48h of event-risk/abstener→ toggle abstention mode/silencio 2h→ temporary quiet hours
- Inline buttons on alerts: "View full Read", "Configure similar alert", "Mute this type 1h"
Telegram alert example:
⚡ BTC — Shift de dirección probable
Régimen: TRENDING_DOWN (62% confidence)
Cambio: bear pressure subió 28% → 41% últimas 4h
Driver: oil reversal +3.3% + ETF outflows -$612M
Escenario condicional:
BEARISH_REVERSAL 35% si pierde $73,426
Stop sugerido: $73,500 (1x leverage)
[Ver Read completa] [Silenciar 1h] [Más info]
read_id: read_2026_05_06_btc_001 3.7 Recommended channel by profile
| Profile | Recommended channel | Why |
|---|---|---|
| Mia (entry-level) | Email + Telegram | Email for educational daily digest, Telegram for live alerts |
| John (intermediate) | Telegram + Discord webhook | Speed above all, already lives in crypto groups |
| Daniel (AI-native builder) | Generic webhook + Telegram | Webhook to integrate with his stack |
| Lucy (Polymarket investor) | Telegram + Email | Telegram for Polymarket vs Tradit spread alerts |
4. MCP / Terminal mcp.tradit.co
The native surface for agents and power users — the same engine, exposed as MCP tools.
4.1 Architecture
- Standalone service at
mcp/tradit/(mirror ofmcp/sift/) served atmcp.tradit.co - Protocol: Model Context Protocol (Anthropic standard)
- Transport: SSE (Server-Sent Events) + stdio for clients that support it
- Auth: OAuth 2.1 + dual API key
4.2 Exposed tools (v1)
| Tool | Returns |
|---|---|
tradit_market_pulse() | Global directional Read: regime + probable direction + drivers + event-risk window |
tradit_read(symbol, horizon?) | Synthesized directional Read for an asset |
tradit_watchlist_state(symbols[]) | Reads for watchlist or filtered universe |
tradit_pressure_breakdown(symbol) | Pressure by domain — danger + opportunity |
tradit_divergences() | Active divergences (narrative vs price, sentiment vs flow, Kalshi vs Polymarket) |
tradit_event_calendar(window?) | Upcoming macro + crypto-native events with interpretation |
tradit_no_trade_warnings() | Active no-trade windows |
tradit_compare(symbols[]) | Directional comparison between assets |
tradit_capital_sizing(symbol, capital, risk_tolerance) | Suggested position size + leverage + stop |
tradit_prediction_market_spread(event_id) | Spread between Polymarket/Kalshi and internal triangulation |
tradit_etf_flows(window?) | On-chain ETF flows by issuer |
tradit_session_context() | Active session + next transition + most active actor |
tradit_cross_asset_state() | Current state of oil/gold/DXY/equities/yields |
4.3 Documentation & DX
mcp/tradit/README.mdwith quickstart (Claude Desktop + Cursor)- Usage examples per tool (curl + Python SDK + TypeScript SDK)
- Reference docs auto-generated from JSON schemas
- Tool version changelog (semver)
- Sandbox endpoint for testing
- "Try it" interactive page at
mcp.tradit.co
4.4 SDKs
- Python SDK (
pip install tradit) — for LangChain, AutoGen - TypeScript SDK (
npm install @tradit/sdk) — for Cursor + custom builds
5. Engine outputs — what the user consumes
5.1 The Read (canonical object)
{
id, subject, btc_price, session,
regime, regime_confidence, temperature, conviction,
net_direction: { bearish, neutral, bullish },
pressure: { FUNDING_CARRY, LIQ_CASCADE, EQUITY_RISK, SENTIMENT_DELTA, INSTITUTIONAL_FLOW },
abstention_policy: { should_abstain, abstention_score, abstention_reasons },
surprises: [{ signal, error, magnitude, quality }],
contra_narrative: { strength, summary, contradictions },
scenarios: [{ name, probability, action, conditions }],
events_anticipated: [{ event, window, historical_proximity }],
hypotheses: [{ id, type, direction, score, lifecycle }],
agent_constraints: { framing, disclaimers, reading_instruction },
provenance: { data_sources, engine_version, evidence_url },
render: { narrative, tagline }
} 5.2 Four renders of the same Read
| Channel | Render |
|---|---|
| Web | Visual component with collapsible drivers, gauges, "explain me" panel |
| MCP | Full JSON returned to the tool call |
| Alert | Compressed payload: subject + tagline + direction + invalidation + link |
| Chat | Long narrative generated from structured fields |
5.3 Read types in the engine
| Type | Example |
|---|---|
asset_scenario | Probabilistic distribution for an asset over a horizon |
event_probability | Tradit probability vs Kalshi/Polymarket on a discrete event |
regime_state | Current macro/crypto regime read |
divergence_alert | Detected divergence (Kalshi vs Polymarket, retail vs institutional) |
narrative_shift | Dominant narrative change detected |
contrarian_signal | Counter-narrative override triggered |
whale_trap_detection | Stop-hunt / manipulation pattern detected cross-asset |
no_trade | Explicit "do not act" output with reasons |
5.4 Read lifecycle
- Every Read has a
horizon(e.g. 24-72h) - Upon expiry, engine evaluates outcome → marks
confirmed/invalidated/partial - Public track record is updated
- Public URL per ID — auditable by anyone
5.5 Engine-derived features — UI mapping
The 007 engine already runs every 15 min and produces a rich set of JSON artifacts per scan. Each one has a natural representation in the consumable product.
A. Quick Read — the 1-line version of the state
{
"pressure_summary": "BEARISH 26% | NEUTRAL 72% | BULLISH 2%",
"contra_narrative": "Datos dicen MIXED PERO: etf_strong_outflows",
"surprises": "oi_change HIGH",
"position": "none"
} UI: QuickReadHeader — the "ticker line" of the current market state, always visible.
B. Net Direction as probabilistic distribution
"net_direction": { "bearish": 0.26, "neutral": 0.72, "bullish": 0.02 } UI: NetDirectionBar — horizontal tri-color bar with percentages. This is not a directional prediction — it is a pressure distribution.
C. Conviction & Temperature
conviction: LOW / MEDIUM / HIGHtemperature: LOW / MEDIUM / HIGH (when "decisions start to matter")regime: RANGING / TRENDING_UP / TRENDING_DOWN / CAPITULATION / RECOVERYregime_confidence: 0.0 - 1.0 (with disclaimer if <0.30)
UI: RegimeGauge — visual thermometer + confidence label.
D. Pressure breakdown by domain (5 domains)
"pressure": {
"LIQ_CASCADE": { "danger": 0.28, "opportunity": 0.00, "label_d": "LOW" },
"EQUITY_RISK": { "danger": 0.25, "opportunity": 0.00, "label_d": "LOW" },
"FUNDING_CARRY": { "danger": 0.57, "opportunity": 0.28, "label_d": "MODERATE" },
"SENTIMENT_DELTA": { "danger": 0.28, "opportunity": 0.00, "label_d": "LOW" },
"INSTITUTIONAL_FLOW": { "danger": 0.23, "opportunity": 0.13, "label_d": "LOW" }
} UI: PressureBars — 5 bipolar bars (danger in red, opportunity in green) with LOW/MODERATE/HIGH labels.
E. Abstention policy with explicit reasons
"abstention_policy": {
"should_abstain": true,
"abstention_score": 1.00,
"abstention_reasons": [
"softmax_gap_low",
"pressure_neutral_dominant",
"regime_confidence_low",
"entropy_high"
],
"original_top": "SHORT_PERP",
"original_probability": 0.328
} UI: AbstentionBadge — prominent banner when abstention is active, with tooltip that expands the reasons.
F. Surprises — deviations vs baseline
"surprises": [
{ "signal": "oi_change", "error": -0.304, "magnitude": "HIGH", "quality": 1.0 }
] UI: SurprisesPanel — list of signals that deviated from the EMA baseline in this scan.
G. Contra-narrative — when data contradicts the story
"contra_narrative": {
"strength": "MODERATE",
"summary": "Los datos dicen MIXED PERO: etf_strong_outflows",
"contradictions": [{ "signal": "etf_strong_outflows", "actual": "$-51.5M net outflows", "significance": 0.8 }]
} UI: ContraNarrativePanel — alert when structural data contradicts the public narrative.
H. Hypothesis tree — active hypotheses tree
"hypotheses": [
{ "id": "H-DF-202604140208-2fx", "type": "DEFORMATION", "direction": "NEUTRAL", "score": 0.6, "lifecycle": "WEAKENING" },
{ "id": "H-FR", "type": "FEAR_REGIME", "direction": "BULLISH_REVERSAL", "score": 0.43, "lifecycle": "STRENGTHENING" },
{ "id": "H-WT", "type": "WHALE_TRAP", "direction": "BEARISH", "score": 0.62, "lifecycle": "STRENGTHENING" }
] UI: HypothesisTreePanel — view of active hypotheses with score, direction, lifecycle (FORMING / STRENGTHENING / WEAKENING / DEAD), and declared kill condition.
Dedicated page: /hypotheses — explore the full tree.
I. Streaks tracking — what is accumulating
"streaks": {
"funding_neg_above_10": { "count": 2089, "since": "2026-04-14T18:09:54Z" },
"consecutive_abstentions": { "count": 1686, "since": "2026-04-14T21:30:42Z" }
} UI: StreaksRibbon — bar showing "what is running".
J. Conditional scenarios with triggers
"scenarios": [
{ "name": "RANGE_CONTINUE", "probability": 1.00, "action": "HOLD" },
{ "name": "BULLISH_BREAKOUT", "probability": 0.25, "action": "LONG",
"conditions": { "price_above": 74168, "volume_above": 0.80, "cross_exchange": true } },
{ "name": "BEARISH_REVERSAL", "probability": 0.25, "action": "SHORT",
"conditions": { "price_below": 73426, "liq_cascade": true, "funding_flip": true } }
] UI: ScenariosPanel — conditional scenarios with explicit triggers. When the user configures an alert on a scenario, the engine notifies if the triggers are met.
K. Events anticipated — upcoming catalysts with track record
"events_anticipated": [
{ "event": "options_expiry_volatility", "window": "T-12h", "historical_proximity": 0.98 },
{ "event": "funding_normalization", "window": "T-8h", "historical_proximity": 0.76 },
{ "event": "fed_volatility", "window": "T-2h", "historical_proximity": 1.00 }
] UI: EventsAnticipatedPanel — upcoming catalytic events with their historical proximity track record by type.
L. Polarity flips — when the same data reads differently
Example from real log: "oil_change reads RISK_ON (oil dropping during geo crisis suggests de-escalation, not demand collapse)".
UI: PolarityFlipBadge — indicator when a signal is being read with inverted polarity vs the default, with contextual explanation.
M. Narrative heartbeat (PRISMA)
"prisma": {
"heartbeat": 0.81,
"state": "ESCALATE",
"cooldown": "BYPASS",
"watchlist": ["blackrock", "sec"],
"top_news": "Trump hints Iran talks, Amazon-Globalstar deal..."
} UI: NarrativeHeartbeatPanel — public narrative pulse with state (NORMAL / ESCALATE / SATURATION), actor watchlist, and top news.
N. Multi-exchange consensus
Example: "17/22 neg (77% count, 91% weighted). Smart money: +0.005% (institutional neutral). Dispersion: 0.006% (low)."
UI: MultiExchangeConsensus — what fraction of exchanges confirm the reading (count + weighted), dispersion between exchanges, aggregated smart-money funding.
O. Track record by event type
"by_event": {
"funding_extreme": { "n": 9, "hits": 4, "avg_proximity": 0.58 },
"liquidation_cascade": { "n": 12, "hits": 2, "avg_proximity": 0.22 },
"funding_normalization": { "n": 11, "hits": 9, "avg_proximity": 0.76 },
"options_expiry_volatility": { "n": 54, "hits": 52, "avg_proximity": 0.98 },
"fed_volatility": { "n": 2603, "hits": 2596, "avg_proximity": 1.00 },
"equity_drop": { "n": 78, "hits": 0, "avg_proximity": 0.02 }
} UI: TrackRecordTable at /track-record — table by event type. Honest: shows events where the engine performs well (fed_volatility 100%) and where it does not (equity_drop 0%).
P. Oracle ladder — action distribution
"oracle": {
"baseline": "WAIT",
"current_ladder": "PROBE",
"wait": 0.65,
"spot_long": 0.20,
"short": 0.09,
"best_non_wait": "spot_long (LOW)",
"shadow_mode": true
} UI: OracleLadder — distribution over available actions, with the "best non-wait" forced as reference.
Q. Reading instruction to the agent
"agent_constraints": {
"framing": "OBSERVER",
"disclaimers": [
"Regime confidence is 19% — treat classification as tentative, not definitive",
"Contra-narrative is MODERATE — dominant direction may be misleading"
],
"reading_instruction": "This data describes market state. High temperature or extreme values are informational, not calls to action."
} Disclaimers are rendered in every Read (web + alert + MCP) automatically. This is literally the legal framing encoded into the engine output.
R. Replay engine — re-execute any historical scan
The 21,954 recorded scans (each ~18KB JSON) are reverse archaeology — re-executable with new code to see how the current engine would reason over past data.
- Consumer feature:
/scan/:id— public view of any historical scan. "What did Tradit read on April 7 at 14:00 UTC?" - Builder feature:
tradit_replay_scan(scan_id)MCP tool — an agent can request re-execution of a historical scan.
S. Stress test CLI / endpoint — "what breaks if"
tradit stress-test "BTC=50000"
# → shows which signals would activate, which hypotheses would flip, which scenarios would trigger UI: /stress-test — "what if" input: price, event, forced regime. Useful for the user to simulate extreme scenarios without waiting for the market to deliver them.
T. Diagnose — audit over a time window
Endpoint: tradit_diagnose(window_start, window_end) MCP tool + /diagnose page. Returns: scan count, regime distribution, abstention %, activated/dead hypotheses, anticipated vs occurred events.
U. Sift semantic search — similar situations
Search across 21,954 historical scans: "When did the market have a configuration similar to today?"
UI: semantic search integrated into the global chat. Like "Show me past scans where pressure was similar to right now" → returns 5-10 similar scans with outcome. Available via chat and tradit_find_similar_scans() MCP tool.
6. Cross-asset universe from day one
6.1 First-order assets
Crypto:
- BTC, ETH, SOL, BNB, HYPE, XRP, ADA, AVAX, SUI (top 20 liquidity)
- High-volume memecoins (WIF, BONK, PEPE, etc.)
Tokenized stocks (Ondo / xStocks):
- AAPL-token, TSLA-token, MSFT-token, NVDA-token, GOOGL-token, AMZN-token, META-token, AMD-token
US Equities (via API):
- MSTR, COIN (crypto-correlated, leading indicators)
- RIOT, MARA, CLSK (mining stocks)
- SPY, QQQ, IWM, VIX/UVXY (indices and volatility)
- NVDA, AMD, TSLA, META, GOOGL, AAPL, MSFT, AMZN (mega-cap tech)
Commodities:
- Oil (USO + Yahoo CME), gold (PAXG), natural gas
Macro:
- DXY (UUP), US 10Y bonds, M2 money supply (FRED)
Prediction markets (pillar):
- Kalshi monthly/annual event ladders
- Polymarket consensus pricing by event
- Polymarket vs Tradit spread detection as signal
Institutional ETF flows:
- BlackRock IBIT (Dune Analytics)
- Fidelity FBTC, Grayscale GBTC, ARK ARKB, 21Shares, etc.
Event calendar:
- FOMC, CPI, NFP, ECB, BoJ
- Mega-cap earnings
- Tariff decisions
- Halvings, token unlocks, governance votes
6.2 New coin listings
When shipped — dedicated feature:
- Discovery feed of coins listed in the last 7d on major exchanges
- Engine Read on each new coin: initial liquidity, first 24-72h of pressure, emerging narrative, divergence with established coins
- Rug-pull / pump-and-dump flags based on feedback engine patterns
7. Compliance & disclosures
7.1 Automatic legal framing
- Disclaimer in the footer of every dashboard page
- Disclaimer in every MCP response (field
agent_constraints.disclaimers) - Disclaimer in every alert email
- Disclaimer in every Substack post
Base text (reviewed by counsel pre-launch):
Tradit provides market intelligence and research tools for educational purposes only. Not financial, investment, tax, or legal advice. Past performance and probabilistic readings do not guarantee future results.
7.2 Privacy & GDPR
- Cookie banner with granular opt-in (analytics, marketing, functional)
- Privacy policy + ToS published before charging dollar one
- DPA available for EU enterprise users
- Data export endpoint
- Account deletion endpoint (30-day period for anti-fraud, then full purge)
7.3 Product language
| Use | Avoid |
|---|---|
| read, context, conditions, scenario | buy signal, BUY/SELL |
| probable direction, anticipation | guaranteed prediction, certainty |
| invalidation, abstention | guaranteed, certain |
| suggested sizing | guaranteed return, win rate |
7.4 Encoded product boundaries
- NO connection to user's broker
- NO trade execution
- NO portfolio personalization
- NO blind BUY/SELL recommendations
- NO return guarantees
- NO personalized financial advice
8. Editorial & brand
8.1 Weekly Substack
- Weekly regime analysis
- Notable reads (confirmed + invalidated)
- Notes when a material read fails
- Consistent, human editorial voice
8.2 X / Twitter — Brand Broadcast
- Posts on significant market events (regime flip, cascade brewing, divergence detected)
- Format: emoji + label + shock number + read screenshot + link
- Regular cadence, ramp-up on event-heavy days
8.3 Public Calibration Scoreboard
app.tradit.co/track-record— always on- Rolling Brier 7d / 30d / 90d / all-time
- Reliability diagram
- Hit rate by read type
- Comparison vs market consensus where applicable
8.4 Methodology page
app.tradit.co/methodology- How the engine works (without secrets)
- Data sources
- Declared limitations
- Engine version changelog
9. Infrastructure & ops
9.1 Hosting
- API: DigitalOcean App Platform
- Dashboard: Cloudflare Pages
- MCP server: DigitalOcean (droplet)
- Engine: dedicated worker fleet on DigitalOcean
- Database: PostgreSQL managed (DigitalOcean)
- Valkey: managed for cache + rate limits
- LanceDB: local for semantic search
9.2 Observability
- Error tracking: Sentry
- Product analytics: PostHog
- Uptime: Better Uptime
- Logs: Grafana Loki
- Engine metrics: Prometheus + Grafana
9.3 Persistent processes (PM2)
- Recurring main scan
- Daily label generator
- Liquidations WebSocket daemon 24/7
- Expired read resolver (updates track record)
9.4 Security
- HTTPS everywhere (HSTS)
- Global + per-user API rate limiting
ENCRYPTION_KEYrotation policy- Secrets in vault (DigitalOcean secrets manager)
- Audit log for critical actions (MCP key generation, account changes)
- Pre-launch pen test
10. Success metrics
Adoption
- Signups
- DAU / MAU
- MCP activations (how many users connect Claude / Cursor)
Engagement
- Reads consulted per user / week
- Alerts configured / user
- Chat queries / user
- Weekly return (% of users who return 2+ times/week)
Product
- Read accuracy by type (public on track-record)
- Time-to-first-value (how long it takes a new user to understand a Read)
- NPS
- Cohort retention
Frequently asked questions
Does Tradit only cover Bitcoin?
No. The research phase and 16 months of backtesting focused on Bitcoin because it is the asset with the greatest data depth for validating methodology (1.16M 1m candles, 36+ APIs, mature derivatives, active prediction markets and an unmatched liquidity universe in crypto). But the product opens from day one to the main cryptocurrencies (ETH, SOL, majors), stocks and tokenized stocks (MSTR, COIN, mining stocks, mega-cap tech), commodities (oil, gold, gas), macro (DXY, US 10Y bonds, M2) and the cross-asset narrative layer (Google News, Brave, prediction markets, macro calendars). The engine was designed to triangulate between domains — a Bitcoin read without that context stops being representative of the product.
What is MCP and how does the AI agent integration work?
MCP (Model Context Protocol) is the open standard that
Anthropic published in 2024 so that any AI agent —
Claude, ChatGPT with MCP support, Cursor, LangChain agents
or open frameworks like OpenClaw — can
connect to external tools and consume their context in
real time, without custom integrations. Tradit exposes the
engine via MCP at mcp.tradit.co.
This implies an important model shift: Tradit no longer manages the user's portfolio by connecting to their exchange API. It does not execute trades, does not touch operation keys, does not assume responsibility for the user's capital decisions. What Tradit delivers is the structured intelligence layer — regime, cross-asset drivers, conditional scenarios, calibrated narrative — so the user's agent (whether a Claude / advanced GPT, a local open-source model or a low-cost agent) decides with context, not narrative.
The shift removes a layer of legal and operational responsibility that was never the product's real edge, and focuses us on what the research proved actually works: the engine. The agent — own or third-party — becomes the client. Tradit becomes the intelligence that client consumes to make better trading decisions.
Closing. This list is operational and syncs with the strategic vision of the pivot and market research. Every feature maps to a real engine output that already runs 24/7 — the work is exposing that intelligence with good UX, not building from scratch.