How the product works—and how to integrate.
Start with how to interpret a surfaced row, then dig into semantics, the trigger model, channel copy, and finally the narrow public API and webhooks for builders.
How to read a signal
A signal is a time-stamped, evidence-backed observation that something on-chain (or cross-venue) changed in a way the system judged worth surfacing. It packages context, posture, and promotion state—not a filled trade ticket.
What it is not
It is not a guaranteed outcome, not an entry price, not a stop, not a take-profit, and not an instruction to size or execute. Higher bands describe support and clarity around monitoring—not a promise that live execution is appropriate for you.
Alpha, Watch, Guarded, Proof
These describe where a row sits in the product, not a private performance guarantee.
- Alpha — higher-attention lane: the setup cleared more gates; still not auto-tradeable.
- Watch — earlier or thinner context: useful radar, often with more open questions.
- Guarded — visible with explicit limits (lesson, timing-proof, or policy guardrails); read the card copy carefully.
- Proof — a durable public record page (and API object) you can inspect after the fact, including integrity and outcome snapshots when present.
Action, Promote when, Breaks if
On radar-style surfaces you will see compact operator language derived from the same actionability model as the app:
- Action — what posture the row is in right now (observe, wait for confirmation, paper-class candidate, guarded entry path, etc.).
- Promote when — what would have to become true for the row to move to a clearer band (from real upgrade cues, not invented thresholds).
- Breaks if — what would falsify or weaken the setup (invalidations and selected downgrades), stated conservatively.
Why this is not automatically a trade: scoring and promotion gates choose what to show operators and subscribers; they do not know your mandate, leverage, latency, fees, or risk limits. Treat every row as decision support you still have to clear against your own rules.
Product semantics
These terms line up with what you see in-session, on launch radar, and on public proof—so product, alerts, and API fields do not silently mean different things.
- Lanes & maturation — diagnostic labels (e.g. wallet, burst, survivorship) describe evidence shape, not a trade thesis.
- Live vs proof — live radar rows can age; proof pages freeze a published snapshot with verification metadata when available.
- Integrity & outcomes — integrity flags honesty about the record; outcomes summarize what happened after detection without rewriting history.
- Demo / collecting — APIs and performance pages say when data is synthetic or still warming up, instead of implying depth that is not there yet.
Actionability and the trigger model
Actionability is the layer that turns raw fields into short operator lines (action class, posture, upgrades, invalidations). On top of that, triggers add a compact state machine view: where you are, what would improve the band next, what blocks promotion, and what would break the setup—without inventing prices or execution promises.
- Current state & next state — coarse bands (watch, alpha, paper candidate, guarded entry, completed) when the existing row truth supports them; next state is omitted when nothing truthful is nearer.
- Promote when / Breaks if / Blocked by — aligned with on-product copy; blocked lines combine real promotion blockers with confirmation gaps when present.
- Readiness — low / medium / high abstraction for how much is still open before the story is clean; not a second score.
- Runtime policy blocked (workspace launch radar badge, some Telegram execution lines) is separate from promotion Blocked by — the latter is maturation / confirmation truth on the row.
Telegram and alerts
Telegram messages use the same actionability and trigger vocabulary as the app, with shorter caps on public (“Live Intelligence”) routes and richer lines on Pro and Desk. Band headlines still respect product signal feed metadata when it is on the payload.
- Public — tighter copy; emphasizes watch/guarded/proof interpretation over execution claims.
- Pro & Desk — include setup read, next state when known, promote when, breaks if, and blocked-by context within existing size budgets.
- Payloads — accepted deliveries include structured actionability plus signalActionabilityTriggers for downstream formatters.
Public cadence architecture (X / Telegram)
Kahramana's off-site voice should read as operator intelligence, not hype media. The tables below are reference archetypes and deterministic sample renders—not live automation. Full policy and templates live in docs/public-cadence.md and apps/web/lib/publicCadence*.
Prefer silence over noise: use cooldowns, dedupe fingerprints, and sparse-market abstention (see policy helpers). Every proof-linked post should anchor to UTC snapshots and, when applicable, a real proof URL and verification id—never fabricated hashes or performance.
Deterministic examples for operator publishing cadence. Not auto-posted. Terminology: observation, evaluation, decision-grade, guarded execution, execution-ready, blocked path, survivorship, sparse conditions, proof-linked.
Kahramana — observation (proof-linked) Snapshot: May 7, 12:00 PM UTC Cross-venue evaluation completed; no row cleared execution-ready thresholds in this window. Proof-linked record: https://kahramana.io/proof/example-row
Kahramana — blocked path (decision-grade evaluation) Snapshot: May 7, 12:00 PM UTC Execution remained blocked; blocked path stays visible in the public ledger. Liquidity quality remained below the published threshold; guarded execution posture unchanged. Proof-linked record: https://kahramana.io/proof/example-row
Kahramana — outcome resolution (proof-linked) Snapshot: May 7, 12:00 PM UTC Outcome state: loss (24h) Recorded move at evaluation checkpoint: -3.1% (methodology-defined window). Proof-linked record: https://kahramana.io/proof/example-row Verification ID: ver_01HZABCDEF1234567890EXAMPLE
Kahramana — proof publication Snapshot: May 7, 12:00 PM UTC Verification ID (abbrev.): ver_01HZAB…XAMPLE Execution posture: guarded live Proof-linked record: https://kahramana.io/proof/example-row Verification ID: ver_01HZABCDEF1234567890EXAMPLE
Kahramana — radar posture update Snapshot: May 7, 12:00 PM UTC Public slice remains selective: sparse conditions visible; observation pipeline active. Public radar: https://kahramana.io/radar
Kahramana — why this did not qualify (survivorship / decision-grade) Snapshot: May 7, 12:00 PM UTC Survivorship checks did not clear; cross-venue confirmation did not persist under current rules. Proof-linked record: https://kahramana.io/proof/example-row
Kahramana — sparse market window Snapshot: May 7, 12:00 PM UTC Low promotion density is expected—prefer silence over filler posts.
Kahramana — integrity / methodology Snapshot: May 7, 12:00 PM UTC How decision-grade labels apply when checkpoints disagree across windows. Reference: - Methodology: https://kahramana.io/methodology - FAQ: https://kahramana.io/faq
Public API overview
The public HTTP surface stays intentionally small: read-only JSON for the live proof feed, a per-proof record, aggregate performance, and subscription-ready webhook shapes. Responses can report demo or collecting states when that is the honest status.
Returns the public radar feed, including verification, integrity, live state, and outcome classification fields that power the marketing site and integrations.
curl https://kahramana.io/api/signals
{
"generatedAt": "2026-05-18T16:24:06.088Z",
"source": "real",
"fallbackUsed": false,
"items": [
{
"id": "radar_915756bc1b7c",
"verificationId": "proof_29cc6de9e093e153",
"tokenOrPair": "TRX/USDC",
"baseAsset": {
"symbol": "TRX",
"address": "GbbesPbaYh5uiAZSYNXTc7w9jty1rpg3P9L4JeN4LkKc"
},
"quoteAsset": {
"symbol": "USDC",
"address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
},
"chain": "solana",
"venue": "raydium",
"detectedAt": "2026-05-18T16:21:56.000Z",
"publishedAt": "2026-05-18T16:23:12.151Z",
"detectedAtLabel": "May 18, 4:21 PM UTC",
"publishedAtLabel": "May 18, 4:23 PM UTC",
"liquidityUsd": 4399614.74,
"overallScore": 81.05,
"priceChange5mPct": 0,
"priceChange15mPct": 0,
"volumeSpikeRatio": 0,
"recentMovementWindow": "15m",
"rationale": "Overall score is 81 with structural 89, risk 28, and momentum 78.",
"supportPosture": "signal_only",
"supportSummary": "Solana paper execution is available while live execution remains disabled.",
"outcomeSnapshots": [],
"badges": [
"smart_wallet_detected",
"correlated",
"signal_only"
],
"dataSource": "real",
"sourceType": "real",
"integrityStatus": "verified",
"contentHash": "624eae12156f67d56a98ec1a82d256d1965db94cd9d457d99711af137070695e",
"hashVersion": "v1",
"classification": "pending",
"classificationWindow": null,
"liveState": "tracking_now",
"bestReturnPct": null,
"worstReturnPct": null,
"latestReturnPct": null,
"decisionImpact": {
"avoidedLossFlag": false,
"avoidedLossPct": null,
"capturedMoveFlag": false,
"capturedMovePct": null,
"cautionSignalFlag": false,
"blockedProtectionFlag": false,
"impactSummaryLabel": "Tracking now",
"impactSummaryText": "The setup is published and being tracked, but the full decision impact is still forming."
},
"priorityScore": 89,
"priorityLabel": "high",
"priorityReason": "High score, live movement, and recency make this worth immediate operator attention.",
"freshnessState": "fresh",
"freshnessUpdatedAt": "2026-05-18T16:22:39.968Z",
"runtimeProviderMode": "live",
"signalMaturationState": null,
"signalWhyNow": null,
"signalWhatToWatchNext": null,
"signalUncertaintyLine": null,
"signalTier": null,
"signalDeliveredAt": null,
"signalPromotionBlockers": [],
"signalLanes": [],
"walletBacked": false,
"evmAlphaSummary": null,
"publicContentMode": null,
"firstPrivateAudience": null,
"firstPrivateDeliveredAt": null,
"publicRevealStatus": null,
"publicRevealWhatChanged": null,
"publicRevealWhatHappenedSince": null,
"publicRevealDeltaPct": null,
"publicRevealPeakMovePct": null,
"publicRevealPerformanceLine": null,
"productSignalFeed": "alpha",
"signalWhyVisible": null,
"preAlphaBurstLane": null,
"discoveryFlagsPresent": null,
"proofHeadline": "TRX/USDC launch radar signal",
"proofFraming": "This was detected at May 18, 4:21 PM UTC before the outcome.",
"supportExplanation": "The opportunity can still be reviewed, but the current path stops before execution.",
"guardrails": [
{
"guardrailType": "execution_mode_mismatch",
"severity": "warning",
"reason": "Routing produced a pending rather than fully routed signal because binding or requirements are incomplete.",
"detectedValue": null,
"requiredValue": null,
"thresholdLabel": "Detected value"
},
{
"guardrailType": "unsupported_execution_path",
"severity": "info",
"reason": "Execution support on this chain remains intentionally guarded or unsupported.",
"detectedValue": null,
"requiredValue": null,
"thresholdLabel": "Detected value"
}
],
"rationaleSections": [
{
"title": "Why this mattered",
"summary": "The score mix indicates how much structural quality, risk, and momentum support this setup has right now."
},
{
"title": "Decision reasoning",
"summary": "SOLANA launch-style opportunity with sufficient structural and liquidity support. Decision=semi_auto_candidate, structural=89, risk=28, momentum=78.42."
},
{
"title": "Risk context",
"summary": "Risk and control layers are shaping whether this setup can move forward."
},
{
"title": "Strategy posture",
"summary": "The system recommends launch sniper because the opportunity fits that strategy family better than the alternatives."
}
],
"integrity": {
"verificationId": "proof_29cc6de9e093e153",
"publishedAt": "2026-05-18T16:23:12.151Z",
"contentHash": "624eae12156f67d56a98ec1a82d256d1965db94cd9d457d99711af137070695e",
"hashVersion": "v1",
"status": "verified",
"isLocked": true,
"lockedAt": "2026-05-18T16:23:12.151Z",
"lockReason": "public_publish"
},
"outcomeSummary": {
"classification": "pending",
"bestReturnPct": null,
"worstReturnPct": null,
"latestReturnPct": null,
"classificationWindow": null,
"explanation": "Outcome tracking is still in progress. Later checkpoints have not completed yet.",
"completeCheckpointCount": 0,
"pendingCheckpointCount": 4
},
"pair": "TRX/USDC",
"venueName": "raydium",
"sourceBucket": "solana",
"isSurfacedSignal": false,
"surfacedDeliveredAt": null
}
]
}Returns the immutable public proof record for a published item: integrity state, outcome summary, and decision-impact summary when computed.
curl https://kahramana.io/api/proof/radar_915756bc1b7c
{
"id": "radar_915756bc1b7c",
"verificationId": "proof_29cc6de9e093e153",
"integrity": {
"verificationId": "proof_29cc6de9e093e153",
"publishedAt": "2026-05-18T16:23:12.151Z",
"contentHash": "624eae12156f67d56a98ec1a82d256d1965db94cd9d457d99711af137070695e",
"hashVersion": "v1",
"status": "verified",
"isLocked": true,
"lockedAt": "2026-05-18T16:23:12.151Z",
"lockReason": "public_publish"
},
"classification": "pending",
"liveState": "tracking_now",
"decisionImpact": {
"avoidedLossFlag": false,
"avoidedLossPct": null,
"capturedMoveFlag": false,
"capturedMovePct": null,
"cautionSignalFlag": false,
"blockedProtectionFlag": false,
"impactSummaryLabel": "Tracking now",
"impactSummaryText": "The setup is published and being tracked, but the full decision impact is still forming."
},
"outcomeSnapshots": []
}Returns aggregated public proof outcomes. The response stays explicit when the dataset is still collecting or impact summaries are not yet available.
curl https://kahramana.io/api/performance?range=30d
{
"generatedAt": "2026-04-08T00:42:49.175Z",
"source": "real",
"range": "30d",
"segment": "decision_grade",
"collecting": false,
"summary": {
"totalSignalsTracked": 0,
"wins": 0,
"losses": 0,
"neutral": 0,
"pending": 0,
"insufficientData": 0,
"completedOutcomeCount": 0,
"winRate": 0,
"lossRate": 0,
"neutralRate": 0,
"pendingRate": 0,
"insufficientDataRate": 0,
"averageMoveUp": null,
"averageMoveDown": null
},
"impactSummary": {
"blockedProtectedCount": 0,
"favorableFollowThroughCount": 0,
"cautionarySetupCount": 0,
"stillPendingCount": 0,
"available": true
}
}Subscriptions support signal_created, outcome_updated, and proof_integrity_warning. Delivery plumbing stays narrow; shapes below are what we expose today.
curl -X POST https://kahramana.io/api/webhooks/subscribe \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/webhooks/kahramana","eventType":"signal_created"}'{
"eventType": "signal_created",
"generatedAt": "2026-05-18T16:24:06.112Z",
"payload": {
"proofId": "radar_915756bc1b7c",
"verificationId": "proof_29cc6de9e093e153",
"detectedAt": "2026-05-18T16:21:56.000Z",
"tokenOrPair": "TRX/USDC",
"posture": "signal_only",
"score": 81.05
}
}{
"eventType": "outcome_updated",
"generatedAt": "2026-05-18T16:24:06.112Z",
"payload": {
"proofId": "radar_915756bc1b7c",
"verificationId": "proof_29cc6de9e093e153",
"classification": "pending",
"classificationWindow": null,
"latestReturnPct": null,
"liveState": "tracking_now"
}
}{
"eventType": "proof_integrity_warning",
"generatedAt": "2026-05-18T16:24:06.112Z",
"payload": {
"proofId": "radar_915756bc1b7c",
"verificationId": "proof_29cc6de9e093e153",
"integrityStatus": "verified",
"publishedAt": "2026-05-18T16:23:12.151Z"
}
}