Claire de Binare · concept brief

A trade decision you can prove — and remember

How one typical trading event flows through CDB's deterministic, hash-sealed pipeline — and how PHAROS could add a searchable semantic memory beside the audit trail, never inside it.

Audit-first · reproducible hashes Paper / mock only Live-Readiness: NO-GO Prepared for Jannek Büngener
01

A typical trade decision

BTCUSDT trends up; a 1-minute candle closes at 61 200.50, breaking the prior channel high in a confirmed TREND regime. Balance 10 000 USDT, position cap 10%, allocation 0.30, mock execution. Each stage is a real service passing a typed event to the next.

T0 · wsIngest tick MEXC protobuf → market_data
{"symbol":"BTCUSDT","ts_ms":1777593660000,"price":"61200.50","trade_qty":"0.0125","side":"buy"}
T1 · candlesAggregate 1-min candle → stream.candles_1m
{"ts":"1777593660","O":"61180.00","H":"61240.00","L":"61175.00","C":"61200.50","V":"3.875","trades":"212"}
T2 · regimeClassify regime ADX / ATR → stream.regime_signals
ADX 31.48 ≥ 25TREND· ATR 0.84 · 3 bars confirmed
T3 · allocationMap regime → allocation → stream.allocation_decisions
primary_breakout_v1·TRENDallocation_pct 0.30
T4 · signalGenerate signal breakout gate → signals
close 61200.50 > channel highBUY· reason breakout_entry
T5 · riskDecide & seal the decision contract● ALLOW
allocation 0.30 > 0 ✓· kill-switch off ✓· size 0.00490196 BTC· notional 300.00 USDT
input_hash590b65f44a1aae36d039b8e0740b4680c6b8c21d2fed845d6e7057b6c8392d6a
decision_hashe30050dd10d1491e3ee0977951964cde1a13b2fb6dc46f7eea53980a14920408
decision_iddcv1-e30050dd10d1491e
T6 · executionFill mock executor
MOCK_04185512FILLED@ 61212.74 · ~0.02% slippage
T7 · db_writerPersist + close the loop orders · trades · correlation_ledger
fill re-read by allocationstrategy performance updated

The chain DecisionEnvelopeV1 → OrderEnvelopeV1 → FillEnvelopeV1 all carry the same two hashes above. Canonical-JSON (sorted keys, floats to 10 dp) → SHA-256 makes every value reproducible on any machine. Flip one threshold and the seal becomes BLOCK with a reason code (RC_001 regime, RC_020 drawdown, …) — a valid outcome, not an error.

02

Where PHAROS fits

PHAROS already enriches RAFIKI nodes — so the path is CDB → RAFIKI → PHAROS, not a direct coupling. Only sealed, low-frequency artifacts cross the boundary: decisions and regime shifts, never ticks or candles.

CDB · decision sealed (T5) RAFIKI node-JSON PHAROS enrichment searchable decision-memory
PHAROS layer

Enrichment of the sealed decision

off-path · advisory

In — node CDB exports

id: dcv1-e30050dd10d1491e
type: trade_decision
name: BTCUSDT TREND breakout ALLOW
evidence:
  decision_hash: e30050dd…920408
  regime: TREND · alloc: 0.30 · side: BUY
status: sealed

Out — pharos:{} block written back

canonical_name: Trend-Breakout Allow Decision
type: decision_event
resonance_state: aligned
confidence: seed
code: CDB.DECISION.TREND-BREAKOUT-ALLOW

Cube faces — the semantic identity

top · principle
enter momentum only when trend AND allocation both confirm
left · context
regime TREND · ADX 31.48 · ATR 0.84 · alloc 0.30
right · action
order → FILL MOCK_04185512 @ 61212.74
front · expression
OrderEnvelopeV1 BUY 0.00490196 BTC @ 61200.5
back · origin
signal sig-a1b2c3 from primary_breakout_v1
bottom · instance
BTCUSDT 2026-05-01 00:01 · notional 300 USDT
03

The guardrails that make it safe

Never on the hot path

LLM output is non-reproducible — it can never enter the order path, Decimal math, or a contract hash.

Annotation, not evidence

Enrichment sits beside the sealed artifact, keyed by the hash — never part of the audit envelope.

Low-frequency only

Decisions and regime shifts — never ticks or candles. Raw streams would overwhelm PHAROS's batch store.

Data-governance first

PHAROS is co-owned and federated. Trading rationale crossing that boundary is a confidentiality decision — confirm before any export.

NO-GO preserved

Strictly off-path, this layer does not affect Live-Readiness. No live capital, no exceptions.

Recommendation

Run one narrow experiment: export-only decision-memory — CDB → RAFIKI → PHAROS, low-frequency, strictly advisory — after the data-governance question is confirmed. Don't couple the pipeline any further than that.