TradFi Bridge
The complete integration layer between on-chain Solana tokens and the traditional financial system — event routing, settlement, regulatory filing, and operational monitoring.
Overview
The TradFi Bridge is not a single service. It is the entire integration layer that connects the on-chain world of Solana programs and CrossSecurities to the traditional financial system — Clearstream settlement, SWIFT messaging, SEC regulatory filings, investor notifications, and revenue distribution. Every service that touches an external system or translates between on-chain events and off-chain actions lives here.
The bridge is composed of five cooperating services, each running as a grain or sidecar within the Sandstorm/Melusina OS environment:
| Service | Role | Interfaces |
|---|---|---|
| Solana Event Watcher | Subscribes to on-chain program events, routes them to the correct grains | Solana WebSocket RPC → Cap'n Proto grain calls |
| Clearstream Adapter | ISIN registration, settlement instructions, daily reconciliation | SWIFT MT5xx, ISO 20022, Clearstream REST API |
| Notification Service | Email, webhook, and in-app notifications to all participants | SMTP / Sandstorm email, WebSocket hub, broker webhook endpoints |
| Revenue & Distribution Bridge | Routes waterfall outputs to on-chain holders and bankable holders | sails_distributions program → Clearstream corporate actions |
| Regulatory Filing Service | Generates Form D XML, Blue Sky filings, AML/SAR reports, K-1 documents | SEC EDGAR, state regulators, compliance grain journal |
All bridge services share two non-negotiable constraints: every action is logged to an append-only journal with 7-year retention, and every service must tolerate restarts via deterministic journal replay. If a grain crashes mid-operation, it recovers to exact state on restart. No data loss. No missed events.
Architecture
The bridge services form a directed pipeline. On-chain events flow in through the Solana Event Watcher, fan out to the appropriate grains, and ultimately produce off-chain effects — settlement instructions, notifications, regulatory filings, and distribution payments.
┌──────────────────────┐
│ Solana Programs │
│ (sails_securities, │
│ sails_crossconv, │
│ sails_distributions│)
└──────────┬───────────┘
│ WebSocket RPC (program events)
▼
┌──────────────────────┐
│ Solana Event │
│ Watcher (Go grain) │
│ │
│ Routes events to: │
├──────────┬───────────┤
│ │ │
▼ ▼ ▼
┌────────┐ ┌────────┐ ┌────────────────┐
│Offering│ │CrossConv│ │DAO Manager │
│Grain │ │Operator │ │Grain │
└───┬────┘ └───┬────┘ └───┬────────────┘
│ │ │
│ ▼ │
│ ┌────────────────┐ │
│ │Clearstream │ │
│ │Adapter (Go) │ │
│ │ │ │
│ │MT540/MT542 │ │
│ │ISO 20022 │ │
│ └───┬────────────┘ │
│ │ │
▼ ▼ ▼
┌──────────────────────────────┐
│ Notification Service (Go) │
│ Email · Webhook · WebSocket │
└──────────────────────────────┘
The Powerbox capability system governs all inter-grain communication. The Event Watcher holds capabilities to the Offering Grain, CrossConversion Operator, DAO Manager, Broker Grain, and Investor Grains. Each capability is a persistent SturdyRef — surviving grain restarts and session boundaries. No service can call another service it hasn't been explicitly granted access to.
Solana Event Watcher
The Solana Event Watcher is a Go grain that subscribes to program events via WebSocket RPC and routes them to the appropriate grain for processing. It is the single entry point for all on-chain activity into the off-chain platform.
Service: solana-watcher (Go, runs as grain)
├── Subscribe to program events via WebSocket RPC
├── Route events to appropriate grains:
│ ├── SecurityMinted → Offering Grain (update cap table)
│ ├── CrossConversionRequested → CrossConversion Operator
│ ├── DistributionPaid → Investor Grains (notify)
│ ├── ComplianceViolation → DAO Manager (alert)
│ └── TransferCompleted → Broker Grain (settlement confirmation)
├── Maintain local event log for replay
└── Health monitoring & reconnection logic
Event Routing Table
| On-Chain Event | Source Program | Destination Grain | Action |
|---|---|---|---|
SecurityMinted |
sails_securities |
Offering Grain | Update cap table, record new investor position, trigger subscription confirmation notification |
CrossConversionRequested |
sails_crossconversion |
CrossConversion Operator | Initiate CrossConversion workflow — KYC validation, Trustee authentication, Clearstream settlement |
DistributionPaid |
sails_distributions |
Investor Grains | Notify investors of available distribution, update portfolio view, trigger tax document generation |
ComplianceViolation |
sails_securities |
DAO Manager | P0 alert to compliance team, log violation details, potentially freeze affected accounts |
TransferCompleted |
sails_securities |
Broker Grain | Confirm secondary trade settlement, update broker commission records, notify both counterparties |
Connection Management
The watcher maintains a persistent WebSocket connection to the Solana RPC node. Connection resilience is critical — a dropped connection means missed events, which means the off-chain state drifts from on-chain reality.
- Reconnection: Exponential backoff with jitter — 1s, 2s, 4s, 8s, up to 60s max. On reconnect, the watcher replays events from the last confirmed slot using the local event log.
- Multi-RPC failover: Configurable list of RPC endpoints. If the primary fails three consecutive health checks, the watcher switches to the next endpoint.
- Local event log: Every event received is written to the grain's append-only journal before routing. On crash recovery, the journal replay re-delivers any events that were received but not yet acknowledged by their destination grain.
- Deduplication: Each event carries a unique
(slot, tx_signature, log_index)tuple. Destination grains reject duplicate deliveries idempotently.
Watcher Configuration
# solana-watcher.toml
[rpc]
endpoints = [
"wss://api.mainnet-beta.solana.com",
"wss://sails.rpcpool.com"
]
reconnect_max_sec = 60
health_check_sec = 10
[programs]
securities = “SAILSec111111111111111111111111111111111”
crossconversion = “SAILCross1111111111111111111111111111111”
distributions = “SAILDist11111111111111111111111111111111”
[routing]
security_minted = “offering-grain”
cross_conversion = “crossconv-operator”
distribution_paid = “investor-grains”
compliance_violation = “dao-manager”
transfer_completed = “broker-grain”
Notification Service
The Notification Service is a Go grain that delivers messages to every participant in the platform — investors, brokers, trustees, issuers, and compliance officers. It supports three delivery channels: email, webhooks, and in-app WebSocket push.
Service: notification-grain (Go)
├── Email (via Sandstorm email capability or external SMTP)
│ ├── Investor subscription confirmations
│ ├── Distribution payment notifications
│ ├── CrossConversion status updates
│ ├── KYC status changes
│ └── Regulatory notices
├── Webhook notifications to broker systems
└── In-app notifications via WebSocket hub
Notification Types
| Notification | Trigger | Recipients | Channels |
|---|---|---|---|
| Subscription Confirmation | SecurityMinted event |
Investor, placing Broker | Email, in-app, broker webhook |
| Distribution Available | DistributionPaid event |
All token holders for the offering | Email, in-app |
| CrossConversion Status | Operator state transitions | Requesting investor, Trustee | Email, in-app |
| KYC Status Change | KYC grain workflow completion | Investor, compliance officer | Email, in-app |
| Compliance Alert | ComplianceViolation event |
DAO Manager, compliance team | Email (P0), in-app, PagerDuty webhook |
| Regulatory Notice | Filing deadline, regulatory update | Issuer, compliance officer | |
| Reconciliation Report | Nightly reconciliation completion | Trustee, Platform Operator | Email, in-app |
Email Delivery
The notification grain uses the Sandstorm email capability when available, falling back to external SMTP (e.g., SendGrid, SES) for high-volume delivery. All emails are template-driven, rendered server-side with Go’s html/template package. Templates are versioned in the grain’s journal — every email sent is reproducible from the journal state at send time.
- Delivery tracking: Message ID, send timestamp, delivery status, and bounce handling are logged per recipient.
- Rate limiting: Per-recipient rate limits prevent notification fatigue. Distribution notifications for the same offering are batched into a single daily digest if the investor holds positions in multiple tranches.
- Unsubscribe: Regulatory notices and compliance alerts cannot be unsubscribed. All other notification categories support per-investor preference management.
Webhook Delivery
Broker systems receive real-time event data via authenticated HTTPS webhooks. The notification grain signs each webhook payload with the broker’s shared HMAC secret. Delivery uses at-least-once semantics with exponential backoff retries (1s, 2s, 4s, up to 5 minutes). Brokers must respond with HTTP 2xx within 10 seconds or the delivery is retried.
In-App WebSocket
Real-time notifications are pushed to connected clients via WebSession_WebSocketStream — the Cap’n Proto WebSocket interface native to Sandstorm grains. Each grain maintains its own WebSocket hub. When a notification targets a specific investor, the notification grain sends it to that investor’s Self-Service Grain, which pushes it to any connected browser sessions.
Revenue & Distribution Bridge
The Distribution Bridge connects the on-chain sails_distributions waterfall program to the bankable side of the platform. When revenue enters and the waterfall executes, token holders on-chain claim their distributions directly from the program. But investors who have converted to ISIN-identified securities via CrossConversion are not on-chain — their positions live at Clearstream. The Distribution Bridge ensures they receive their pro-rata share through traditional corporate action channels.
Distribution Flow
- Revenue enters the Operating Series — Cash from the underlying asset (rent, revenue, interest) is deposited into the Operating Series account via the
deposit_revenueinstruction on thesails_distributionsprogram. - Waterfall executes — The
execute_waterfallinstruction distributes funds per tranche priority:- Senior debt holders
- Investor distributions (pro-rata by token holding)
- Platform fee (1%)
- Excess to Treasury Series
- On-chain holders claim — Investors holding tokens in their wallets call
claim_distributionto pull their allocation. The program tracks claims via a bitmap per epoch to prevent double-claiming. - Bankable holders receive corporate actions — For investors whose tokens are locked in the CrossConversion lockbox, the Distribution Bridge calculates their pro-rata share based on lockbox position records and instructs the Clearstream Adapter to issue a corporate action (ISO 20022
seev.031notification followed byseev.035movement confirmation) crediting the investor’s Clearstream cash account. - Reconciliation — The
reconcileinstruction on the distributions program cross-checks on-chain claim records with Clearstream corporate action confirmations. Total distributed must equal total waterfall output for the epoch. The Trustee signs the reconciliation report.
Bankable Distribution Detail
| Step | System | Action |
|---|---|---|
| 1. Identify bankable holders | CrossConversion Lockbox (PDA) | Query all investors with locked tokens for this offering — these are the bankable holders who cannot claim on-chain |
| 2. Calculate pro-rata amounts | Distribution Bridge (grain) | For each bankable holder: (locked_tokens / total_supply) × epoch_distribution |
| 3. Issue corporate action | Clearstream Adapter | Generate ISO 20022 seev.031 corporate action notification → Clearstream processes cash credit to each investor’s securities account |
| 4. Confirm settlement | Clearstream | Returns seev.035 movement confirmation per investor — cash credited |
| 5. Record on-chain | Distribution Bridge | Writes Clearstream confirmation hashes to the distribution record PDA — proving bankable holders were paid for this epoch |
Regulatory Filing Service
The Regulatory Filing Service is a Go grain (compliance-grain) responsible for generating the documents and data feeds that regulators require. Every offering on the platform operates under a specific regulatory exemption — Reg D 506(b), Reg D 506(c), Reg S, Reg A+, or Reg CF — and each exemption carries its own filing and reporting obligations.
Service: compliance-grain (Go)
├── Form D Filing (SEC) — generate XML for EDGAR
├── Blue Sky State Filings — track per-state exemptions
├── Reg S Compliance — non-US investor tracking
├── AML/SAR Reporting — suspicious activity flagging
├── Cap Table Reporting — ownership snapshots for tax season
├── K-1 Generation — for LLC pass-through taxation
└── Audit Export — full audit trail in standard format
Form D (SEC EDGAR)
Every Reg D offering must file Form D with the SEC within 15 days of first sale. The compliance grain generates the complete Form D XML document conforming to the SEC’s EDGAR schema, populated from on-chain offering state and issuer metadata stored in the Offering Grain journal.
- Initial filing: Auto-generated when the first
SecurityMintedevent is recorded for a Reg D offering. Pre-populated with Series LLC details, offering terms, exemption type, and issuer information. - Annual amendments: The grain tracks the 12-month filing anniversary and generates amendment XML with updated sales totals, investor counts, and use-of-proceeds data.
- Human review: All generated filings are routed to the compliance officer for review and approval before EDGAR submission. The grain surfaces the filing in the DAO Manager compliance dashboard with a review/approve/reject workflow.
Blue Sky State Filings
Reg D offerings require notice filings in each state where securities are sold. The compliance grain tracks investor jurisdictions (from KYC credential metadata — jurisdiction hash, not raw PII) and maintains a per-state filing status matrix.
| Data Point | Source | Purpose |
|---|---|---|
| Investor state | KYC Credential NFT jurisdiction hash | Determine which states require notice filing |
| Filing deadline | State-specific rules (typically 15 days post-sale) | Generate deadline alerts for compliance officer |
| Filing fee | State fee schedule (maintained in grain config) | Calculate total filing costs per offering |
| Filing status | Compliance grain journal | Track pending / submitted / accepted / rejected per state |
AML/SAR Reporting
The compliance grain monitors transaction patterns for suspicious activity. When the sails_securities transfer hook or the KYC grain flags anomalous behavior — unusual transfer volumes, rapid CrossConversion cycling, jurisdiction mismatches — the grain generates a Suspicious Activity Report (SAR) draft for compliance officer review. SAR filing is never automated; the grain produces the draft, the compliance officer decides whether to file.
K-1 Tax Documents
Because the Wyoming DAO Series LLC structure uses pass-through taxation, every investor who received distributions during the tax year needs a Schedule K-1. The compliance grain generates K-1 documents by combining:
- On-chain distribution records (amounts per epoch, per investor)
- Clearstream corporate action confirmations (for bankable holders)
- Investor tax identification data (stored encrypted in the KYC grain journal — accessed via Powerbox capability, never copied)
K-1 documents are generated annually, routed to the issuer’s tax preparer for review, and delivered to investors via the Notification Service.
Monitoring & Health
The TradFi Bridge spans two fundamentally different systems — a blockchain with deterministic state and a traditional settlement infrastructure with batch processing and business-hours operations. Monitoring must cover both sides and the connection between them.
Solana Program Monitoring
| Metric | Source | Alert Threshold |
|---|---|---|
| Instruction success rate | Solana Event Watcher | < 99.5% over 5-minute window → P1 |
| Compute unit usage | Transaction metadata | > 80% of limit per instruction → P2 |
| Account size | On-chain account data | > 90% of allocated space → P2 |
| Event delivery latency | Watcher journal timestamps | > 30s from slot confirmation to grain delivery → P1 |
| WebSocket connection status | Watcher health check | Disconnected > 60s → P0 |
Grain Health
| Metric | Source | Alert Threshold |
|---|---|---|
| CPU utilization | Sandstorm OS metrics | > 80% sustained for 5 minutes → P2 |
| Memory usage | Sandstorm OS metrics | > 90% of grain allocation → P1 |
| Journal size | Grain storage metrics | > 80% of storage quota → P2 |
| WebSocket connections | Per-grain hub metrics | > 1,000 concurrent connections per grain → P2 |
| Journal replay time | Grain restart metrics | > 30s replay duration → P2 (journal compaction needed) |
CrossConversion Reconciliation Dashboard
A real-time dashboard that visualizes the core 1:1 invariant across every offering with CrossConversion enabled:
- Per-offering view: On-chain lockbox state (
tokens_locked) vs. Clearstream position report (isin_outstanding). Green when matched, red on any discrepancy. - Historical trend: Lockbox and Clearstream totals plotted over time. Any divergence is immediately visible.
- Last reconciliation timestamp: Time since the last Trustee-signed reconciliation per offering. Stale reconciliation (> 36 hours) triggers a P1 alert.
- Pending conversions: CrossConversion requests in flight — submitted but not yet confirmed by Clearstream. Pending > 4 hours triggers a P1 alert.
Alerting Tiers
| Tier | Response Time | Examples | Notification Channels |
|---|---|---|---|
| P0 — Immediate | < 15 minutes | Supply invariant mismatch, security breach, Solana program failure, Clearstream settlement rejection | PagerDuty, SMS, email to Platform Operator + Trustee + compliance |
| P1 — Urgent | < 1 hour | KYC service degradation, Clearstream API timeout, threshold signing failure, stale reconciliation, event delivery latency | PagerDuty, email to on-call engineer + Platform Operator |
| P2 — Operational | < 24 hours | Elevated error rates, approaching account size limits, certificate expiration within 30 days, journal compaction needed | Email to engineering team, in-app dashboard alert |
Next Steps
- Clearstream Integration — Deep dive into the Clearstream Adapter: ISIN registration, SWIFT settlement, reconciliation, and communication protocols
- Hybrid Architecture — The CrossConversion Engine: lockbox contract, conversion flows, and the 1:1 invariant
- ISIN Conversion — The complete CrossConversion lifecycle from on-chain to bankable and back
- Distributions API — Waterfall configuration, revenue deposit, and distribution claiming
- Compliance Framework — KYC credentials, jurisdiction rules, and transfer enforcement
- Platform Overview — The three-pillar architecture and grain types