Skip to main content

Daml Finance Interfaces

IRSForge consumes Daml Finance as a library. The page below maps every Daml Finance interface and concrete template that IRSForge imports, with file references into contracts/src/. Nothing on this list is reimplemented in IRSForge.

The list is grouped by Daml Finance domain. Within each group, "Used in" lists the IRSForge files that import the interface; for the production swap families this is the complete set, not a sample.

Common types

Daml.Finance.Interface.Types.Common.V3.Types

The shared identifier and key types: Id, InstrumentKey, AccountKey, HoldingStandard, Quantity. Every IRSForge module that touches a Daml Finance contract imports from here.

Date and schedule conventions

Daml.Finance.Interface.Types.Date.V3.{DayCount, Calendar, Schedule, RollConvention, DateOffset}

ISDA-shaped date math. IRSForge consumes the conventions as shipped, no shadow types.

Helper: Daml.Finance.Util.V4.Date.RollConvention.addPeriod — used in Swap/Types.daml for ISDA-correct period arithmetic.

Accounts

Daml.Finance.Interface.Account.V4.{Account, Factory}

Custodian-and-owner accounts. IRSForge consumes the interface; the concrete Daml.Finance.Account.V4.Account template is also instantiated for cash and instrument accounts during seeded setup.

Holdings

Daml.Finance.Interface.Holding.V4.{Holding, Fungible, Factory}

Cash and asset holdings. IRSForge uses Fungible everywhere a swap moves cash, and Holding to inspect the underlying when batching settlements.

Concrete template: Daml.Finance.Holding.V4.TransferableFungible is the holding implementation seeded by IRSForge's setup scripts; the production code path then operates against the Fungible interface only.

Cash instruments

Daml.Finance.Interface.Instrument.Token.V4.{Factory, Types}

Used to mint cash instruments per currency at setup time. The concrete Daml.Finance.Instrument.Token.V4.Factory is instantiated for each YAML-defined currency; runtime code references the interface.

Floating-rate primitives

Daml.Finance.Interface.Instrument.Types.V2.FloatingRate

FloatingRate and ReferenceRateTypeEnum (including CompoundedIndex for OIS-style indices).

Swap instrument families

Daml.Finance.Interface.Instrument.Swap.V0.*

This is the heart of the consumption. IRSForge consumes one factory and one Types module per swap family, and instantiates the matching concrete factory at setup time. The V0 namespace is what Digital Asset ships today.

FamilyInterface factoryTypesIRSForge proposal
Interest RateInterestRate.FactoryInterestRate.TypesSwap/Proposal.daml, Swap/OisProposal.daml
Credit DefaultCreditDefault.FactoryCreditDefault.TypesSwap/CdsProposal.daml
CurrencyCurrency.FactoryCurrency.TypesSwap/CcySwapProposal.daml
Foreign ExchangeForeignExchange.FactoryForeignExchange.TypesSwap/FxSwapProposal.daml
AssetAsset.FactoryAsset.TypesSwap/AssetSwapProposal.daml
FpMLFpml.FactoryFpml.Types, Fpml.FpmlTypesSwap/FpmlProposal.daml, Swap/BasisSwapProposal.daml, Swap/XccyFixedFloatProposal.daml, Swap/FpmlAdapter.daml

All six factories are registered alongside their concrete implementations in Setup/InitImpl.daml and Setup/CashSetup.daml.

Lifecycle

Daml.Finance.Interface.Lifecycle.V4.{Rule.Lifecycle, Event, Effect, Observable.NumericObservable}

The Evolve engine. IRSForge wires its scheduler-authority sister choices around these interfaces; the lifecycle math is Daml Finance's.

Concrete: Daml.Finance.Claims.V3.Lifecycle.Rule is the claims-tree implementation, registered at setup and exercised by IRSForge's scheduler delegation.

Settlement

Daml.Finance.Interface.Settlement.V4.{Factory, RouteProvider, Batch, Instruction, Types}

The Calculate to Discover to Instruct to Allocate-and-Approve to Settle chain. IRSForge does not reimplement this; it constructs the steps and exercises Daml Finance's choices.

Concrete: Daml.Finance.Settlement.V4.Factory and Daml.Finance.Settlement.V4.RouteProvider.SingleCustodian are instantiated by Setup/CashSetup.daml.

Reference data

Daml.Finance.Data.V4.{Numeric.Observation, Reference.HolidayCalendar, Time.DateClockUpdate}

The on-ledger reference data primitives. IRSForge's Oracle/ modules wrap Observation for rate publishing; HolidayCalendar and DateClockUpdate are used at setup time.

What we add, not what we replace

The interfaces above are everything IRSForge consumes. What sits on top of them, in IRSForge's own modules, is:

  • Per-family proposal templates (*Proposal.daml) that compose Daml Finance factory choices into an Accept and ProposeAccept-AcceptAck flow.
  • A scheduler-authority lifecycle path (Swap/Workflow.daml, sister choices like TriggerLifecycleByScheduler, CreateFixingEventByScheduler) that closes the Evolve-delegation gap without modifying Daml Finance's Rule.Lifecycle.
  • A signed CSB collateral model (Csa/Csa.daml, Csa/Netting.daml) that uses Daml Finance's settlement chain underneath.
  • An Oracle.Interface.Provider extension point so third parties can register data providers without forking IRSForge.
  • A regulator-as-observer pattern threaded through every swap-related contract.

None of these reimplement Daml Finance. Each one consumes the interface as shipped.

See also