OpenViSTAI · Agents · Blockchain · Crypto
Menu
Protocols

DM3

DM3 is an open-source, TypeScript-based decentralized messaging protocol using web3 services including ENS and IPFS. Its repository contains React UI components, a web app, a delivery and storage service, and a library of protocol functionality.

Independent OpenViST project profile, based on linked sources.

DM3 — OpenViST project profile in Protocols.
OpenViST project illustration. See the linked sources for product details.
Understand the project

Practical overview

When it fits

Use DM3 when building a web3 messaging client or integrating messaging into a dApp and you want protocol components for ENS-based profiles, encrypted messages, and delivery-service routing.

Who it is for

  • Web dApp teams adding dm3 messaging UI through React components.
  • Developers building a client compatible with the dm3 protocol.
  • Teams creating a message delivery and storage service.

Documented uses

  • Add dm3 messaging components to a web dApp.
  • Build a web messaging client around the protocol.
  • Create and publish delivery-service profiles through ENS.
  • Create and publish user profiles with public signing and encryption keys and delivery-service references.
  • Deliver, receive, decrypt and verify messages.
Before you choose

Requirements & limits

The public repository identifies the project as open source under the BSD-2-Clause license.

  • The protocol uses ENS for registry records and references IPFS among its web3 services.
  • User profiles include public signing and encryption keys and delivery-service ENS names.
  • Receiving clients can use delivery-service WebSockets for new-message events or fetch messages via REST.
  • The receiving delivery service-to-client communication and message-store design are outside the dm3 Message Transport Protocol.
  • The repository is written in TypeScript and provides React UI components.

Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.

Source-based practical guide

Publish a DM3 delivery-service profile

Create the profile data and publish it in the delivery service’s ENS text record.

Before you start

  • A delivery-service endpoint URL
  • An ENS domain for the delivery service
  • The dm3 protocol functions and an on-chain publication path

Steps

  1. Create a delivery-service profile and its corresponding keys with createDeliveryServiceProfile, using the service endpoint URL.

  2. Convert the profile to a data URI with createJsonDataUri.

  3. Publish that URI as the ENS network.dm3.deliveryService text record on the delivery service’s ENS domain.

Expected outcome

The delivery-service profile is published in the specified ENS text record.

Guide limitations

  • The documented steps cover profile creation and publication, not deployment or operation of a delivery service.
  • The repository describes a delivery service as buffering messages; it does not include the client-to-service communication details in the message transport protocol.
Evidence and transparency

Sources & review

Source record details
Source availability
Active
Sources checked
15 October 2026
Original website title
dm3-org/dm3 · Official homepage title · retained in its source language