# Meeting Place SDK

> Composable Dart and Flutter packages for building consent-gated, end-to-end encrypted messaging and audio/video calls between humans, organisations, and AI agents.

Building private, consent-gated communication between humans, AI agents, and organisations requires coordinating DID-based identity, DIDComm message transport, peer discovery, and optionally real-time audio/video. Each layer introduces protocol complexity, and assembling them from primitives takes months.

Meeting Place SDK is a suite of composable Dart and Flutter packages built on DIDComm v2.1, Matrix, and W3C Verifiable Credentials. Each package covers a single concern, from low-level mediator transport and peer discovery through to high-level Matrix group chat and audio/video calling, and all packages can be used independently or layered together.

A minimal deployment needs only meeting_place_core and meeting_place_chat for DIDComm individual messaging. A full Matrix deployment adds meeting_place_matrix for group rooms and meeting_place_livekit_flutter for audio/video calls. [Explore the SDK packages →](#sdk-references)

## Architecture

Both the Core SDK and Matrix SDK implement the MeetingPlaceCoreSDK interface. The Matrix SDK creates a Core SDK internally, injecting Matrix as the channel transport instead of the default DIDComm transport. Chat SDK and Credentials SDK work with either implementation. LiveKit Flutter Plugin requires the Matrix SDK for call signalling.

## Key Features

DIDComm v2.1 individual messaging

Wraps DIDComm channels into a high-level API with message history, reactions, attachments, and contact card exchange.

Matrix group and direct-message rooms

Provides persistent, E2EE Matrix rooms for both group chats and direct messages, with full message history sync.

Audio/video calling in Flutter

Adds LiveKit-powered calls to Matrix rooms, using Matrix RTC for signalling and per-participant end-to-end encryption.

Credential exchange

Issues and exchanges Relationship Cards (R-Cards) and Verifiable Relationship Credentials (VRCs) over DIDComm channels, with optional Human ZKP for liveness proof.

Multi-DID identity

Each user holds multiple DIDs, keeping interactions in separate contexts private from one another.

Consent-gated connections

All channels require mutual consent before establishment, preventing unsolicited inbound messages.

## SDK References

Each package can be used independently. Select a package to view its API reference and code samples.

      [

Matrix →

Matrix transport for the Meeting Place SDK, enabling native end-to-end encrypted individual and group chats, rich messaging features, and optional audio/video calling via LiveKit.

      ](/dev-tools/meeting-place/matrix.md)

      [

Chat →

Built on top of the core Meeting Place SDK that utilises Decentralised Identifier (DID) and DIDComm Messaging v2.1 protocol to send secure and private messages with end-to-end encryption.

      ](/dev-tools/meeting-place/chat.md)

      [

Credentials →

A Dart SDK for exchanging Relationship cards (R-Cards), Verifiable Relationship Credentials (VRCs), and optionally proving human liveness without sharing biometric data via Human Zero Knowledge Proof (Human ZKP). Built on DIDComm v2.1 and W3C Verifiable Credentials.

      ](/dev-tools/meeting-place/credentials.md)

      [

Core →

The core package implementing the Control Plane and Mediator SDK, including managing multiple digital identities for better privacy and anonymity in digital interactions.

      ](/dev-tools/meeting-place/core.md)

      [

Mediator →

Enables participants to connect and authenticate with mediators, such as the DIDComm mediator, to send messages and connection offers. Mediator does not store permanently the messages and the content is not visible to the mediator.

      ](/dev-tools/meeting-place/mediator.md)

      [

Control Plane →

Enables participants to publish connection offers, allowing other participants to connect and communicate with them securely. It is an interface that integrates with the Affinidi Meeting Place API service.

      ](/dev-tools/meeting-place/control-plane.md)


## Pages in this section

- [Chat](/dev-tools/meeting-place/chat.md): Built on top of the core Meeting Place SDK that utilises Decentralised Identifier (DID) and DIDComm Messaging v2.1 protocol to send secure and private messages with end-to-end encryption.


- [Core](/dev-tools/meeting-place/core.md): The core package implementing the Control Plane and Mediator SDK, including managing multiple digital identities for better privacy and anonymity in digital interactions.


- [Mediator](/dev-tools/meeting-place/mediator.md): Enables participants to connect and authenticate with mediators, such as the DIDComm mediator, to send messages and connection offers. Mediator does not store permanently the messages and the content is not visible to the mediator.


- [Credentials](/dev-tools/meeting-place/credentials.md): A Dart SDK for exchanging Relationship cards (R-Cards), Verifiable Relationship Credentials (VRCs), and optionally proving human liveness without sharing biometric data via Human Zero Knowledge Proof (Human ZKP). Built on DIDComm v2.1 and W3C Verifiable Credentials.


- [Control Plane](/dev-tools/meeting-place/control-plane.md): Enables participants to publish connection offers, allowing other participants to connect and communicate with them securely. It is an interface that integrates with the Affinidi Meeting Place API service.


- [Matrix](/dev-tools/meeting-place/matrix.md): Matrix transport for the Meeting Place SDK, enabling native end-to-end encrypted individual and group chats, rich messaging features, and optional audio/video calling via LiveKit.




