Appendix B · 5-Minute Walkthrough Script

One paragraph per slide. Read the deck out loud in five.

Nine paragraphs anchored to the nine slides on the deck page. The blockquoted prose is the spoken narration. Pace ~130 wpm with comfortable screen dwell. Refreshed against the codebase 2026-04-27.

5:00 total 654 words narration 9 slides

The Walkthrough

Nine slides, one continuous take.

Slide 0 · Cover00:00 → 00:25

Canton Network + the layer above it

On screen: deck cover (slide-0).

Hello, I'm Naim. Over the last few weeks I've built a workflow platform for institutional tokenisation that sits on top of HydraX's regulated rails and a Canton synchronizer. Thesis in one sentence: Canton owns the shared truth, we own the path that gets there. It's live on Railway, five Daml scripts run green.

Slide 1 · The Thesis00:25 → 01:00

Canton owns the rails. We own the layer above.

On screen: trust-boundary diagram (slide-1).

The whole presentation hangs on this slide. Clean trust boundary down the middle. On the left, Canton — multi-party truth on Daml, sub-transaction privacy, atomic cross-institution commits. On the right, the application layer — five role-scoped React portals, workflow state machines with SLA timers, approval ceremonies that gate on-chain commands, plus notification, KYC, and audit fabric. The browser never holds rails credentials.

Slide 2 · Three Canton Primitives01:00 → 01:30

Canton in three primitives

On screen: three pillars (slide-2).

Why Canton. Three primitives. First, selective disclosure — signatories see full state, observers get a scoped view, no global state. Privacy by design, the way regulated finance actually needs it. Second, atomic interop — trade and settlement commit together across domains, all-or-nothing, no reconciliation glue between institutions. Third, multi-party coordination — issuer, distributor, custodian, regulator each get authorisation rules enforced by the contract itself.

Slide 3 · How Canton Is Wired01:30 → 02:00

Four-layer wiring

On screen: participant nodes + synchronizer (slide-3).

Quick wiring diagram. Four layers. Top — the application, our portals and orchestration. Below, participant nodes — each institution runs one, holding its private slice. Below that, the synchronizer — Canton's sequencing fabric, the thing that orders multi-party commits. Underneath, Daml — the contract language and runtime. Commands flow down, events flow back up. Our code only ever talks to the participant node.

Slide 4 · Boundary02:00 → 02:30

Where Canton stops vs what the app must do

On screen: boundary table (slide-4).

The boundary slide — load-bearing. Canton handles shared truth, atomic transitions, signatory disclosure, multi-party authorisation. Canton does not handle SLA timers, retry policy, human approvals with escalation, KYC pipelines, audit outside the ledger, role-aware UI, or notifications. Every one of those is on the app side. Put SLA logic inside Daml and you regret it within a week. Recreate Canton's commits in your app and you regret it forever.

Slide 5 · Three Planes Above the Rails02:30 → 03:05

Rails · Orchestration · UX

On screen: three-plane stack (slide-5).

Above the rails, three planes. Plane one, rails. Two adapters — hydrax-adapter and canton-adapter — translate domain commands into HydraX REST calls and Daml commands. The hydrax-adapter mock now covers issue, subscribe, transfer custody, settle, and NAV. The canton-adapter ships an in-memory ledger with parties, commands, and event polling. Plane two, orchestration. Nine Go and Node services — workflow, approval, audit, notify, integration, BFF, market-data, plus the two adapters — each owning one concern. Plane three, UX. Five React portals — issuer, distributor, investor, ops, admin — same component library, role-scoped at the route.

Slide 6 · End-to-End Flow03:05 → 03:55

One subscription, end to end

On screen: investor → workflow → approval → notify → rails → audit (slide-6).

One workflow end-to-end. An investor opens the portal, submits a subscription. workflow-svc validates and forwards to approval-svc, which opens the ceremony, starts an SLA timer, routes to approvers. notify-svc fans out an email and a toast. The approver clicks accept; workflow-svc reads the lifecycle as approved and calls hydrax-adapter, which posts to the HydraX issuance endpoint. canton-adapter commits the Daml command on the synchronizer. The event flows back through audit-svc, the UI refreshes, the investor sees their subscription allocated. Submit to ledger — every state change provable, attributable, replayable. That's the whole product in one diagram.

Slide 7 · Status03:55 → 04:25

Status, grounded in commits

On screen: status grid (slide-7).

Status, grounded in commits. Five Daml scripts green. Nine backend services with health checks, persistence, per-service tests. Five React portals live across three Railway services — institutional landing, Canton homework site, original prototype. Auth substrate complete: passkeys, magic-link over SMTP, dev login removed. Subscription lifecycle and approvals persisted in Postgres. Q3 credit FSM wired. The mocked HydraX adapter is a deliberate bet — workflow ships now, real API drops in later.

Slide 8 · Trade-offs and Roadmap04:25 → 05:00

Disciplined now, expanding next

On screen: trade-offs + roadmap (slide-8).

Trade-offs and roadmap. Today, scope is disciplined — single synchronizer, mocked rails, demo-mode portals, no secondary market UX. Right cut for v1. Next — ship portal auth UI, connect the real HydraX adapter when the API drops, harden audit-svc for institutional retention, start a pilot with a real issuer and distributor. Four open PRD questions: rails surface, product type, tenant persona, pricing. Decision memos exist for each. None block the stack. The rails are yours. The layer above is moving. Thank you.

Verification · Refreshed 2026-04-27

Pacing math.