DalpheSEC 17a-4 WORM · SOC 2 Type II · Reg D 506

Investor relations AI that won't get you fined.

Dalphe is a chat assistant for private fund managers. It classifies every message, gates restricted content, delivers documents via expiring signed links, refuses personalized advice, and writes an append-only audit log of every disclosure — out of the box.

Start 30-day free trialSee how it works

No credit card · Onboard in under a day · Cancel anytime

Three pillars

Three things every IR channel needs.
Three things off-the-shelf chat doesn't do.

The compliance work isn't a feature flag or a system-prompt instruction. It's the order of the pipeline, the shape of the database, and what the model is allowed to see at each step.

01

Classify before retrieve.

Every inbound message is tagged by Haiku before a single retrieval query runs. Public, semi-sensitive, restricted, prohibited — the routing decision is made by code that's never seen the response.

02

Gate before compose.

Restricted content requires accredited-investor verification (Parallel Markets, or your provider). Prohibited content returns the refusal template, every time. The model never gets the chance to be helpful at the wrong moment.

03

Audit on every transition.

Postgres append-only ledger with a database trigger refusing UPDATE and DELETE. Mirrored to S3 with Object Lock. 7-year retention shaped per SEC Rule 17a-4(e)(2). The log is the product.

How it works

Five-step pipeline. Same order, every conversation.

Dalphe doesn't trust the model to be careful. The order is enforced in code: classify before retrieve, gate before retrieve, retrieve before compose, compose under quotation caps, audit on every transition.

  1. 1

    Classify

    Haiku tags the message: public / semi-sensitive / restricted / prohibited. Low-confidence falls through to the refusal template.

  2. 2

    Gate

    Restricted content requires accredited-investor verification. Prohibited returns a safe alternative.

  3. 3

    Retrieve

    RAG with ABAC at the SQL layer. firm_id and disclosure_level live in the WHERE clause, never in app code.

  4. 4

    Compose

    Sonnet generates. Source quotations hard-capped at 14 words. Personalized advice returns a refusal regardless of context.

  5. 5

    Audit

    Every transition writes an append-only row. UPDATE / DELETE blocked at the trigger level. 7-year cold archive.

Why this works

Compliance isn't policy. It's a database constraint.

Anything enforced in application code can be disabled by a hotfix. Anything enforced by a database trigger requires a migration that someone has to write down. Migrations are how compliance survives a sprint.

postgres/migrations/0007_audit_worm.sql
-- audit_event is append-only. UPDATE and DELETE are rejected at the trigger
-- level so a hotfix in application code can't accidentally permit them.

CREATE OR REPLACE FUNCTION audit_no_mutate() RETURNS trigger AS $$
BEGIN
  IF (tg_op = 'UPDATE' OR tg_op = 'DELETE') THEN
    RAISE EXCEPTION 'audit_event is append-only (WORM)';
  END IF;
  RETURN new;
END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER audit_event_worm
  BEFORE UPDATE OR DELETE ON audit_event
  FOR EACH ROW EXECUTE FUNCTION audit_no_mutate();

Try Dalphe with your fund for 30 days.

No credit card. Upload your offering documents, embed the widget on your IR page, and watch the audit log fill up in real time.

White-glove onboarding
We ingest your PPM & tear sheets within hours.
CCO read-only dashboard
They watch the audit log from day one.
Cancel anytime
Your audit log is yours to export, always.