Skip to main content

What are the differences between XMTP and EPNS?

Authors: @mg0716 @saulmc

XMTP is a purpose-built generalized communication protocol enabling wallet-to-wallet messaging.

EPNS is a protocol for push notifications that Dapps can integrate with to send notifications to subscribers.

InfoXMTPEPNS
MessagingBi-directional messagingOne-way notifications
ParticipationMessages can be initiated between any partyRequires channel/subscriber relationship to be set up
Chain dependenceChain-agnostic, requires EVM wallet. Other L1s on roadmap.Ethereum-only, requires a smart contract to be deployed. Long-term multi-chain roadmap.
Consuming messagesAny front-end integrating XMTP can display a wallet's messagesMust use EPNS Dapp or mobile app
Sending messagesAny front-end integrating XMTP can send messagesRequires staking to open a channel to send notifications
PrivacyMessages are default-encrypted individually, readable only by message participantsEncryption optional; channel owner is responsible for encryption key
Message delivery & storageMessages are immediately processed & stored off-chain by XMTP nodesNotifications are sent & stored on-chain, subject to network transactions-per-second
Cost per messageIntent to keep most messaging free, fees for unsolicited messagesAll notifications sent cost $PUSH
DecentralizationClient implementation is permissionless. Nodes are run by XMTP Labs and will be open-sourced and community-run at a later dateSmart contract deployed on-chain. Nodes & front-end are run by EPNS
Message format / content typesOpen & extensible, community-governedStrictly defined