Affinidi Messaging
Affinidi Messaging

Privacy-firstsecure communication

Enable communication between people, business and AI agents without exposing identities. End-to-end encrypted channels built on DIDComm and open standards: privacy by default, trust by cryptography.

Traditional communication exposes identities

The hidden costs of centralised messaging platforms

Every connection tracked

Identity Exposure at First Contact

Email, phone, messaging platforms

Sharing your email or phone number to connect means giving away your identity before trust is established.

$50M avg GDPR fine

Metadata Harvesting

EU enforcement data 2024

Who you talk to, when, and how often: metadata reveals your network, patterns, and relationships even when messages are encrypted.

80% vendor lock-in

Platform Dependency

Enterprise messaging survey 2025

We built our AI agent network on Vendor X. Now switching would mean re-implementing every integration.

Zero cryptographic proof

No Identity Verification

Standard messaging protocols

Email says it's from your bank. Is it? Phone number looks right. Is it? No way to verify identity without centralised trust.

100% central control

Centralised Message Routing

WhatsApp, Slack, Teams architecture

Every message flows through vendor servers. They can read metadata, throttle access, or shut you down entirely.

No AI agent standard

Fragmented AI Communication

AI agent ecosystem 2026

Your AI assistant can't securely talk to other agents. No standard protocol, no interoperability, no trust layer.

Privacy-first discovery. Cryptographic trust.

Everything you need to build secure, private communication

Privacy-first discovery

Establish secure connections using passphrases or QR codes, no emails, phone numbers, or personal identifiers required.

Customers and partners connect without sharing sensitive identifiers. Reduce compliance risk from the first touchpoint.

End-to-end encrypted channels

Built on the DIDComm v2.1 protocol, it ensures messages are end-to-end encrypted between the sender and recipient.

With zero‑knowledge message routing, your conversations remain fully private, no third‑party access, no hidden data extraction.

Multi-party communication

Support group and broadcast messaging patterns with encrypted group channels. Orchestrate workflows across people, systems, and AI agents without centralized control.

Ideal for supply chains, healthcare networks, partner ecosystems, and multi‑agent systems where trust and confidentiality are critical.

Self-hostable mediator

Run your own DIDComm Mediator on your infrastructure using our open‑source implementation. Deploy via AWS Marketplace with one click, or choose a fully managed option.

Move seamlessly between self‑hosted and managed deployments without changing your application code.

Verifiable credential exchange

Exchange W3C Verifiable Credentials over encrypted channels. Request proof of identity, authorisation, or attestations before establishing trust.

Verify who you're communicating with using cryptographic proofs, without relying on a central authority needed; trust is mathematical.

AI agent communication

Enable secure discovery and communication between AI agents, assistants, and autonomous systems.

Build AI agent marketplaces, autonomous supply chain networks, or intelligent customer service ecosystems with built-in trust.

Open standards foundation

Built on DIDComm v2.1 protocol. Fully interoperable with any standards-compliant system.

Future‑proof your communication stack with open standards that evolve with the ecosystem, not a single vendor.

Measurable outcomes for privacy-first communication

Regulatory compliance by design

GDPR, CCPA, HIPAA compliance built into the architecture. Minimise PII collection, enable data portability, and provide cryptographic audit trails.

Zero PII for discoveryPortable message historyCryptographic audit logs

AI agent ecosystems

Enable autonomous agents to discover, connect, and transact securely. Build marketplaces, supply chain networks, or service ecosystems without centralised control.

Agent-to-agent discoveryEncrypted multi-party workflowsVerifiable agent credentials

Break vendor lock-in

Own your infrastructure or switch providers without rewriting code. Open standards mean you control costs, data residency, and vendor relationships.

Self-host or cloudStandards-based portabilityPredictable infrastructure costs

Ship secure communication in hours, not months

15 lines to secure connection

Initialise Meeting Place SDK, deploy a Mediator, and establish an encrypted channel in minutes. No cryptography expertise required.

Deploy your own mediator

One-click AWS Marketplace deploy or self-host open-source Mediator. Run on your infrastructure without vendor dependencies.

AWS Marketplace readyOpen-source MediatorDocker/Kubernetes support

Multi-language SDKs

Meeting Place SDK in Dart (Flutter), with TypeScript and Rust coming soon. Build for mobile, web, backend, or embedded systems.

Dart SDK available nowTypeScript (Q2 2026)Rust (Q2 2026)

How we're different

Category Traditional Messaging Affinidi Messaging
Connection Discovery Share email or phone number to connect Passphrase or QR code discovery, with no PII
Identity Exposure Personal identifiers required by default Privacy‑first connections without revealing identity
Message Encryption TLS in transit; provider can access content End-to-end DIDComm encryption
Metadata Privacy Provider can observe communication patterns Mediator cannot decrypt or correlate messages
Identity Verification Trust centralized directories and accounts Cryptographic proof using Verifiable Credentials (VCs)
Infrastructure Control Vendor-hosted only Self-host or fully managed, your choice
AI Agent Support No standard protocol Built for agent-to-agent communication
Vendor Lock-In Proprietary APIs and data formats Open standards (DIDComm, W3C DIDs)
Compliance Posture PII storage, consent and audits required GDPR/HIPAA by design, minimal PII
Interoperability Restricted to a single ecosystem Works with any DIDComm compliant system

Build privacy-first communication in 3 steps

From SDK setup to encrypted DIDComm messaging in minutes

1

Install DIDComm dependencies

# pubspec.yaml
dependencies:
  didcomm: ^2.3.3
  ssi: ^3.6.0# Cargo.toml
[dependencies]
affinidi-messaging-sdk = "0.15"
affinidi-messaging-didcomm = "0.12"
affinidi-tdk-common = "0.4"
2

Initialize SDK and create DID

import 'package:didcomm/didcomm.dart';
import 'package:ssi/ssi.dart';

// Initialize DID manager with key store
final didManager = DidKeyManager(
  wallet: PersistentWallet(InMemoryKeyStore()),
  store: InMemoryDidStore(),
);

// Generate key and create DID
await wallet.generateKey(keyId: keyId, keyType: KeyType.p256);
await didManager.addVerificationMethod(keyId);
final didDoc = await didManager.getDidDocument();use affinidi_messaging_sdk::{ATM, config::ATMConfig};
use affinidi_tdk_common::TDKSharedState;
use affinidi_did_common::{DID, PeerCreateKey};

// Initialize messaging SDK
let tdk = Arc::new(TDKSharedState::default().await);
let atm = ATM::new(ATMConfig::builder().build()?, tdk.clone()).await?;

// Create DID with verification and encryption keys
let keys = vec![
    PeerCreateKey::from_multibase(PeerKeyPurpose::Verification, v_key),
    PeerCreateKey::from_multibase(PeerKeyPurpose::Encryption, e_key),
];
let (did_peer, _) = DID::generate_peer(&keys, None)?;
3

Create and send encrypted message

// Create and encrypt message
final message = PlainTextMessage(
  id: Uuid().v4(),
  type: Uri.parse('https://example.com/protocols/1.0'),
  from: clientDid, to: [recipientDid],
  body: {'msg': 'Hello, secure world!'},
);

final signer = await didManager.getSigner(clientDid);
final encrypted = await DidcommMessage.packIntoSignedAndEncryptedMessages(
  message, keyType: keyType,
  recipientDidDocuments: [recipientDidDoc], signer: signer,
);

// Send via mediator
await mediatorClient.sendMessage(encrypted);// Create and encrypt message
let message = Message::build(
    Uuid::new_v4().to_string(),
    "https://example.com/protocols/1.0".to_string(),
    json!({"msg": "Hello, secure world!"}),
)
.to(recipient_did.clone())
.from(client_did.clone())
.finalize();

let (encrypted, _) = message.pack_encrypted(
    &recipient_did, Some(&client_did), Some(&client_did),
    &tdk.did_resolver, &tdk.secrets_resolver,
    &PackEncryptedOptions::default(),
).await?;

// Send via ATM
atm.send_message(&profile, &encrypted, &sha256::digest(&encrypted)).await?;

Cookie Preferences

We use cookies to enhance your experience. You can manage your preferences below. For more information, read our Cookie Policy.

Strictly Necessary Always Active

These cookies are essential for core website functions such as security, session integrity, and cookie preference storage. They cannot be disabled.

  • _cf_bm: Distinguishes humans from bots (Cloudflare) · 30m
  • _cfuvid: Ensures secure browsing (Cloudflare) · Session
  • __hs_initial_opt_in: Prevents HubSpot's banner · 7 days
  • _gtm_debug: GTM debug mode (testing only) · Session
Analytics

These cookies help us understand how visitors interact with the site so we can improve content and performance. All data is aggregated and anonymous.

  • _ga, _gid, _gat: Google Analytics · Session – 2 years
  • __hstc, hubspotutk, __hssrc: HubSpot visitor tracking · 13 months
  • __hs_opt_out: HubSpot opt-out preference · 6 months
Marketing & Targeting

These cookies allow us and our partners to serve personalised ads and measure campaign performance.

  • _gcl_au, _gcl_dc: Google Ads conversion tracking · 90 days
  • IDE: Google Display Network personalisation · 1 year
  • _fbp: Meta / Facebook remarketing · 90 days
  • li_gc, _li_fat_id, bcookie: LinkedIn tracking · 1–24 months
  • guest_id, personalization_id: Twitter/X analytics · 2 years