Continuum.

Doc 05 — MVP

Five Daml templates, one atomic Batch.

The MVP is a working continuation close on Canton: a Daml model where each LP's election stays private, a single Close choice settles assets, cash, and units all-or-nothing through a Daml Finance Batch, and the LPAC and regulator receive a need-to-know fairness window. A reusable EligibilityCredential lets a buyer cleared on one deal join the next in a click. A Next.js front end renders one view per party against a LocalNet of mocked institutions.

The Daml engine

Four templates carry the deal from terms to settled close. Elections are held on per-LP contracts — the privacy guarantee is the Canton ledger's, not the application's.

ContinuationDeal Posted by the GP. Holds the continuation-vehicle terms, the roster of participating parties, and the observer set. The deal contract is the root that the Close choice settles against.
LPElection One contract per LP, signed by that LP. Carries a sealed roll-vs-exit election and the rolled amount.per-LP privateNo other LP — and no operator — is a stakeholder, so no other party can read it.
BuyerCommitment Signed by the secondary buyer. Commits a price and funding the exiting LP cannot see until the close resolves it.
EligibilityCredential A long-lived, reusable credential a buyer holds once — KYC / accreditation / qualified-purchaser status — selectively disclosed to a GP only when the buyer opts into that deal.reused across dealsThe network primitive: onboard once, bid into many closes. It reuses the participant, never the capital.
Close A consuming choice on ContinuationDeal, exercisable once elections and the commitment are in. It validates the book and assembles a single Daml Finance Batch — settled atomically or not at all.

The Close choice

The Close choice is the whole thesis in one transaction: it builds the settlement instructions and submits them as one Batch. There is no intermediate state in which some legs have moved and others have not.

Daml — illustrative shape of the settling choice
-- Consuming choice on ContinuationDeal, exercised by the GP once
-- every LPElection and the BuyerCommitment are on the ledger.
choice Close : ContractId Batch
  with
    elections  : [ContractId LPElection]   -- sealed, per-LP
    commitment : ContractId BuyerCommitment
  controller gp
  do
    -- 1 · asset leg: old fund -> new continuation vehicle
    -- 2 · cash leg:  buyer -> exiting LPs  (CIP-56 cash token)
    -- 3 · unit leg:  new vehicle issues units -> rolling LPs + buyer
    settlement <- buildInstructions elections commitment
    -- one Batch. all legs settle, or none do.
    create Batch with instructions = settlement; ..
Leg 1 · asset

Asset transfer

The portfolio asset moves from the old fund to the new continuation vehicle.

old fund → new vehicle
Leg 2 · cash

Cash to exiting LPs

The buyer's committed cash settles to the LPs that elected to exit.

buyer → exiting LPs
Leg 3 · units

Unit issuance

The new vehicle issues units to the rolling LPs and to the secondary buyer.

new vehicle → rolling LPs + buyer
Atomic All three legs are instructions inside one Daml Finance Batch. The ledger settles every leg or rejects the whole transaction — the partial-close failure mode is structurally removed.

Privacy and the fairness window

Two guarantees come from the same Canton primitive: who is a stakeholder on a contract determines who can see it.

Sub-transaction privacy. Each LPElection is signed only by its LP. No other LP is a signatory or observer, so the roll-vs-exit terms never cross the syndicate. The GP and the operator orchestrate the close without seeing any individual election — they see that elections are in, not what they say.

Selective disclosure. The deal carries observer flags for the LPAC and the prudential regulator. Those parties are added as observers on the settled Batch and the deal record, opening a need-to-know fairness window after the close — provable fairness without exposing the live book or any party's standing terms. This is the Rooz line in code: need-to-know, not anonymity.

The stack

Settlement

Daml Finance Batch

Asset, cash, and unit legs composed as one atomic settlement. The continuation close is a single ledger transaction.

Tokens

CIP-56 cash & units

Cash and continuation-vehicle units are issued as CIP-56 tokens, settled as the cash and unit legs of the Batch.

Front end

Next.js multi-party UI

One view per party — GP, each LP, buyer, regulator. Each renders only what that party is entitled to read.

Integration

JSON Ledger API + TS codegen

The UI talks to the ledger over the JSON Ledger API, with TypeScript types generated from the Daml model so the contract shapes stay in sync.

Environment

Mocked institutions on LocalNet

GP, LPs, buyer, and regulator run as mocked parties on Canton LocalNet — enough to demonstrate the full close end to end.

Scope

One close, fully real

Not a slideware mock: the four templates, the atomic Batch, and the disclosure window all execute on the ledger.

The three-minute demo

Five parties, one ledger. Each pane is a real party view; the operator stays blind throughout. Sealed elections, then the one-click atomic close, then the regulator window.

GPterms
vehicle NAV$420.0Melections in4 / 4 sealed
LP — Apexprivate
my electionROLL · 100%other LPs
LP — Brevanprivate
my electionEXIT · 100%buyer price
Buyercommit
my bid$118.4Mexiting LP
Regulator / LPACwindow
opens atpost-closescopeneed-to-know
0:00–0:30

Setup — five parties, five views

Open the five panes side by side on LocalNet. Establish that GP, three LPs, the buyer, and the regulator each see a different ledger view of the same deal.

0:30–1:15

Sealed elections

Each LP submits a roll-vs-exit election from its own view. Cut between panes to show that no LP can see another's election, and the GP sees only the count, not the contents.

1:15–1:45

Blind buyer commitment

The secondary buyer commits a price. The exiting LP's pane shows the slot redacted — the bid is sealed until the close resolves it.

1:45–2:30

One-click atomic close

The GP exercises Close. Assets move to the new vehicle, cash settles to exiting LPs, units issue to rolling LPs and the buyer — every pane updates from one Batch. Show that there is no intermediate partial state.

2:30–2:50

Regulator window opens

The regulator pane gains its need-to-know view of the settled close for the fairness review — after settlement, scoped to what it is entitled to see, with the operator still blind.

2:50–3:00

The flywheel — deal #2

A second deal opens. The buyer from deal #1 is presented its EligibilityCredential, opts in, and commits in one click — no re-onboarding. Onboarded once, reusable across closes.

Artifacts

Links land here as the build completes ahead of the submission deadline.

The point of the build

The MVP proves one thing end to end: a continuation close can settle as a single private, atomic transaction — with the regulator able to see, and no one able to see what they should not.