Skip to main content
Version: 1.2

Supported Platforms

As an open standard, FDC3 can be implemented on any platform and in any language.

All that is required is a "desktop agent" that supports the FDC3 standard, which is responsible for co-ordinating application interactions.


For web applications to be FDC3-enabled, they need to run in the context of an agent that makes the FDC3 API available to the application. This desktop agent is also responsible for launching and co-ordinating applications. It could be a browser extension, web app, or full-fledged desktop container framework.


FDC3 offers the @finos/fdc3 npm package that can by used by web applications to target operations from the API Specification in a consistent way. Each FDC3-compliant desktop agent that the application runs in, can then provide an implementation of the FDC3 API operations.

npm install @finos/fdc3
yarn add @finos/fdc3
pnpm install @finos/fdc3


// declare FDC3-compliant data
const instrument = {
type: 'fdc3.instrument',
id: {
ticker: 'AAPL',
ISIN: 'US0378331005',

// invoke an action in another application, with the required data
const result = await fdc3.raiseIntent('ViewAnalysis', instrument)

// join the red channel and broadcast data to subscribers
await fdc3.joinChannel('red')

// set up a listener for incoming data
const listener = fdc3.addContextListener('', contact => { })

For details about the available API operations, see the API Referennce.


The FDC3 standard does not define wire formats for communication. Hence, for native applications to be FDC3-enabled, they need to make use of a library (e.g. a DLL in .Net or JAR file in Java) that provides them with an implementation of the FDC3 API. FDC3-enabled native applications are therefore specific to particular desktop container frameworks (or other suitable environments) that provide the necessary libraries.

Despite this limitation, implementing support for FDC3 in a native application can allow it to interact with a wide variety of FDC3-enabled web applications.