Hedge your Canton book without leaving Canton.

Interest-rate, credit, and cross-currency swaps that settle on the same ledger as the trade. Dealer-shaped screens your desk already knows, on Daml Finance, with the regulator and CSA wired in from day one.

View the source on GitHub →

IRSForge workspace, leg composer with cashflows, risk and CSA panels
The workspace, onchain. Leg composer, cashflows, risk, and CSA in one screen.

The Gap

Canton settles ~$9 trillion a month. None of it is hedged on-chain.

Broadridge DLR alone clears around $7.5 trillion of repo every month on Canton. Add tokenized treasuries, private credit, and the new wave of stablecoin issuance and the network sits on roughly $9 trillion of monthly settlement volume. None of it is hedged onchain.

Rates desks holding tokenized exposure today have one option: leave the ledger, hedge via CME or LCH, and accept settlement risk on the gap. When tokenized markets run 24/7 and cleared rates desks shut on weekends, the gap is the trade.

If your desk runs intraday repo on DLR, you are already on Canton. Today the hedge for that book leaves the chain.

ON CANTON Tokenized treasuries Repo (Broadridge DLR) Private credit · stablecoins no on-chain hedging OFF CANTON CME · LCH (cleared) Bilateral OTC

The platform

Three swap families. One Canton-native platform.

Interest Rate Swaps

Reference impl

Fixed-float, OIS, and basis swaps on the Daml Finance V0 swap instrument. NY Fed SOFR fetcher ships in the box; ESTR, SONIA, and any other index plug in through one oracle seam, no Daml or TypeScript edits.

SOFR, ESTR, SONIA. Act/360. 24/7 settlement.

Credit Default Swaps

Reference impl

Single-name CDS on the same lifecycle: ISDA-shaped premium and contingent legs, quarterly Act/360, payout = (1 − recovery) × notional, proposal-accept flow, regulator projection. The demo seeds credit as a flat scalar; a real feed plugs in through the same provider seam SOFR uses.

Quarterly Act/360. Single-name. Pluggable credit feed.

Cross-Currency Swaps

Reference impl

Fixed-float XCCY with notional exchange (initial and final) plus per-leg coupons in each leg’s own currency, on the same Daml Finance lifecycle and CSA infrastructure as IRS. USD/EUR ships in the demo with onchain FxSpot for reporting-currency translation; new pairs are a YAML edit.

Fixed-float. Notional exchange. Onchain FxSpot.

Parity

Same screens. Same numbers. Onchain.

The leg composer, cashflows, risk and scenario tabs, blotter, and CSA ladder match the SWPM and MARS workflow your traders already run. Built for the desktop the terminals were built for.

IRSForge workspace, leg composer with cashflows
Workspace. Build the leg, watch cashflows, risk, and scenarios update live.
IRSForge blotter, open positions table
Blotter. Open positions, mark-to-market, and P/L across the desk.
IRSForge CSA ladder, collateral schedule
CSA. The variation-margin ladder a desk runs every morning, onchain.
IRSForge lifecycle, events timeline
Lifecycle. Every event, every cashflow, time-stamped on Canton.

Pedigree

Built on the language ISDA picked for derivatives in 2018.

Since 2018, ISDA and Digital Asset have jointly developed an open-source reference library in Daml, including a working IRS and CDS lifecycle implementation under the ISDA Common Domain Model (source). IRSForge sits one layer above that. It consumes Daml Finance, Digital Asset's derivatives library that encodes the same ISDA conventions, and wires the lifecycle, oracle, and settlement chain around the templates as shipped. Nothing reimplemented.

"We don't reimplement Daml Finance interfaces. We use them."

Tour

What the reference implementation looks like.

Workspace, risk tab
Workspace, risk tab. Key-rate DV01 and sensitivities recompute on every keystroke.

Build a swap in seconds.

Currency, notional, day-count, frequency, index. The leg composer covers what SWPM users expect, in ISDA-shaped form. Cashflows, valuation, and risk update live as you type.

FpML import modal
FpML import. Paste the XML from your booking system, no re-keying.

Propose to a counterparty.

Build from the composer or paste FpML straight from your booking system. Either way the trade lands as a Daml Finance instrument and waits for counterparty acceptance. Proposed, accepted, or rejected, all onchain.

CSA, counterparty management
CSA. Counterparty drawer with the variation-margin schedule.

CSAs, onchain.

Every counterparty pair tracks variation margin, posted collateral, threshold, and minimum transfer amount in a signed CSA contract. Calls fire when exposure drifts. The operator countersigns.

Workspace, risk tab key-rate DV01 sensitivities
Risk. Key-rate DV01 across the curve plus bucketed sensitivities.

Risk on every leg.

Key-rate DV01, bucketed sensitivities, theta. Inspect a position's exposure against a parallel rate shock, a curve shift, or a custom scenario. The same numbers a rates desk runs in MARS.

Lifecycle, trigger settle
Lifecycle. Trigger then Settle, two transactions, both on Canton.

Cash and rate effects settle separately, by design.

TriggerLifecycle posts the rate effects, Settle moves the cash. Two transactions, atomic per leg, the way ISDA describes IRS settlement. We don't claim atomicity we can't deliver.

Operator, on-chain audit log
Regulator view. Full audit trail with no cross-counterparty leakage.

The regulator sees everything. Counterparties only see their book.

Every swap-related contract carries the regulator party as observer. They get the full lifecycle and every cashflow. Counterparties never see across each other's books. Sub-transaction privacy is Canton's, not ours.

How it works

Three moving parts. One YAML to wire them.

shared-config irsforge.yaml contracts oracle app auth

Trade weekends. Settle when you fix.

No T+1, no clearing window. Cashflows fire whenever the onchain scheduler runs, by default at every fixing date in your YAML schedule. Canton itself is 24/7. The cadence is yours to set.

Audit trail without leakage.

Counterparties see their own positions. The regulator party is observer on every swap-related contract, with the full lifecycle and every cashflow visible to them and nobody else. Privacy is enforced by Canton, not bolted on.

Lands as FpML. Leaves as FpML.

Import trades straight from your booking system, export for SDR or downstream regulatory reporting. The same decoder runs through the live demo, so the round-trip is real, not promised.

The alternatives

The other three options, and what each one costs you.

IRSForgeFork Daml FinanceBuild proprietaryStay off-chain (CME/LCH)
Time to deploy YAML + OIDCMonths of integration6 to 12 monthsN/A, already running
ISDA-shaped templates Daml Finance V0 swap templates, FpML round-tripInherited from Daml FinanceUp to youYes (clearing house)
FpML 5.x round-trip ManualManualThrough clearer
24/7 settlement If you build it✗ closed weekends
Sub-transaction privacy ✓ Canton✓ Canton✓ Canton✗ cleared, public
Open source ✓ AGPL v3.0✓ Apache 2.0 (Finance only)
Canton-native ✓ out-of-boxYes (you wire it)Yes (you wire it)✗ off-ledger

The buying committee

Five seats at the table.

Trading champions. Risk approves. Operations evangelizes. Engineering implements. Compliance unblocks.

Heads of Trading

Hedge T+0 against your T+0 repo book.

Your desk runs SWPM and MARS. IRSForge mirrors that workflow piece for piece, with the same leg composer, the same risk view, the same blotter. The change is the rail: coupons settle on Canton, weekends and all, on the same ledger your repo already lives on.

Heads of Risk

Counterparty and settlement risk on one ledger.

Every CSA pair is a signed contract on the ledger. Variation margin, threshold, and minimum transfer amount are observable, not implied. Settlement risk against off-chain hedges goes away because the hedge no longer leaves the chain. The regulator is wired in as observer, not as a quarterly report.

Heads of Operations

One ledger to reconcile, not two.

Trade economics, lifecycle events, cashflows, and collateral movements live on the same ledger. End-of-day reconciliation across two infrastructures collapses to one. Confirms are a contract state, not an email thread.

CTOs and Engineering Leads

Fork the reference implementation.

AGPL on GitHub. Configure irsforge.yaml, point at your participant, deploy. No fork, no integration project, no committee. Built on Daml Finance interfaces as shipped, not reimplemented. Every extension point is a YAML edit plus a small adapter.

Compliance

Regulator as observer, by construction.

Every swap-related contract lists the regulator as observer at creation. Read access is a Canton primitive, not a separate audit pipeline. Counterparties never see across each other's books, and the regulator sees everything. Sub-transaction privacy is Canton’s, not ours.

Deploy your own

Three files. One deploy.

  1. 01

    Configure irsforge.yaml

    Currencies, parties, rate families, scheduler. One file, single source of truth. Daml configs are regenerated from it.

  2. 02

    Wire OIDC

    Add auth.oidc for your IdP and keep auth.builtin for IRSForge-minted ledger JWTs.

  3. 03

    make deploy

    make generate-daml-config && daml build && deploy the DAR to your participant. Done.

  4. Read the full quickstart →
irsforge.yaml (excerpt)
parties:
  scheduler:
    partyHint: Scheduler
# Phase 6 Stage B: scheduler service + manual-button gating.
# Demo profile keeps `manualOverridesEnabled: true` so a human can drive
# the demo end-to-end. Flip both `enabled` and `manualOverridesEnabled`
# for a production-ish profile (scheduler runs, manual buttons hidden).
scheduler:
  enabled: true
  manualOverridesEnabled: true
  cron:
    trigger: "*/5 * * * * *"
    settleNet: "*/5 * * * * *"
    mature: "*/30 * * * * *"
currencies:
  - code: USD
    label: US Dollar
    calendarId: USD
    isDefault: true
  - code: EUR
    label: Euro
    calendarId: EUR
rateFamilies:
  SOFR:
    curveIndexId: SOFR/INDEX
    overnightIndexId: SOFR/ON
    tenors:
      - { id: SOFR/ON,  days: 1    }
      - { id: SOFR/1M,  days: 30   }
      - { id: SOFR/3M,  days: 91   }
      - { id: SOFR/6M,  days: 182  }
      - { id: SOFR/1Y,  days: 365  }
      - { id: SOFR/2Y,  days: 730  }
      - { id: SOFR/3Y,  days: 1095 }
      - { id: SOFR/5Y,  days: 1826 }
      - { id: SOFR/10Y, days: 3652 }

Bring your own.

A reference implementation owes you the shape and the seam. Each extension is a YAML edit plus a small adapter; the rest of the stack is unchanged.

  • Auth provider

    auth.provider: oidc for your IdP; auth.builtin stays alongside to mint Canton ledger JWTs.

    BYO Auth →
  • Oracle / data provider

    Implement Oracle.Interface.Provider in Daml + a TS class registered through bootstrap-registrations.ts. Same seam as NY Fed SOFR and the demo stub.

    BYO Oracle →
  • Topology

    topology: network swaps single-sandbox for multi-participant Canton. Same DAR, same UI; per-participant party hosting and JWKS.

    Deploy network →
  • Currencies, indices, ref-names

    Edit currencies: / rateFamilies: / cds.referenceNames: in YAML, run make generate-daml-config. No Daml or TS edits.

    YAML reference →

Questions

Common questions.

Is IRSForge production-ready? +

It's a reference implementation. IRS/OIS/basis are wired end-to-end and tested. CDS templates and lifecycle are real; the pricing inputs run off a flat scalar stub (real credit feeds plug through the same OracleProvider seam used by SOFR). Cross-currency (fixed/float) ships end-to-end including multi-currency CSA mark publishing through the per-(ccy,indexId) curve book; vendor-price validation depth is integrator scope. ASSET-family lifecycle is gated until a price oracle is wired up. Rates desks running real flow should expect to harden the oracle and integrate their own KYC/AML/booking pipeline.

How do I add a currency or rate index? +

One YAML edit (`currencies:` or `rateFamilies:` in irsforge.yaml), then `make generate-daml-config`. No Daml or TypeScript changes needed.

Can I plug in my own OIDC provider? +

Yes. `auth.provider: oidc` points at your IdP for user authentication; `auth.builtin` stays alongside it to mint Canton ledger JWTs (the layering is required because Canton speaks RS256 JWKS, not arbitrary IdP tokens). Schema-enforced. See the BYO Auth recipe in docs.

Can I plug in my own oracle or data provider? +

Yes — three steps and zero forks. (1) Implement the on-ledger `Oracle.Interface.Provider` in a new Daml template (mirror `NYFedProvider.daml`). (2) Add a TS class implementing `OracleProvider` and call `registerProvider` in `bootstrap-registrations.ts`. (3) Reference the provider id in `irsforge.yaml`. The stub provider and the NY Fed SOFR provider both ship through this same seam — see BYO Oracle recipe.

Can I run multi-participant instead of the single-sandbox demo? +

Yes. `topology: network` in irsforge.yaml swaps the single-sandbox topology for a multi-participant Canton deployment with per-participant party hosting. Documented in `docs-site/docs/operations/deploying-production.md`. The demo profile and the production profile run the same DAR.

How does the regulator-observer model work? +

Every swap-related contract includes the regulator party as observer. The regulator sees full lifecycle and cashflows on-ledger; counterparties don't see each other's positions. Sub-transaction privacy is enforced by Canton, not by IRSForge.

What's required from my Canton participant? +

A standard participant node, the IRSForge DAR uploaded, and irsforge.yaml configured with your Canton party identifiers. That's it.

Is settlement really atomic? +

Atomic *per leg*, not across legs. TriggerLifecycle (rate effects) and Settle (cash) are separate transactions by design. Same as how ISDA describes IRS settlement. We don't claim what we don't deliver.

Can I see CDS or CCY end-to-end before integrating? +

IRS and OIS are end-to-end in the demo. CDS books, prices, and lifecycles against a flat scalar stub (2% default probability, 40% recovery); a real credit feed plugs through the same OracleProvider seam used by SOFR. Cross-currency (fixed/float) books, prices, and marks against the multi-currency CurveBook + on-ledger FxSpot. The ledger model and lifecycle are real for all three families.

Does the workspace work on a phone? +

Not for serious use. The blotter, leg composer, and CSA ladder are dense desktop UIs designed for ≥1440px screens, like the Bloomberg/Reuters terminals they mirror. Mobile renders, but trade entry and the action panel assume desktop. A read-only mobile blotter view is on the roadmap.

What's the licensing? +

AGPL v3.0. Use it, fork it, modify it. Ship modifications back if you run it as a service.