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.
| Info | XMTP | EPNS |
|---|---|---|
| Messaging | Bi-directional messaging | One-way notifications |
| Participation | Messages can be initiated between any party | Requires channel/subscriber relationship to be set up |
| Chain dependence | Chain-agnostic, requires EVM wallet. Other L1s on roadmap. | Ethereum-only, requires a smart contract to be deployed. Long-term multi-chain roadmap. |
| Consuming messages | Any front-end integrating XMTP can display a wallet's messages | Must use EPNS Dapp or mobile app |
| Sending messages | Any front-end integrating XMTP can send messages | Requires staking to open a channel to send notifications |
| Privacy | Messages are default-encrypted individually, readable only by message participants | Encryption optional; channel owner is responsible for encryption key |
| Message delivery & storage | Messages are immediately processed & stored off-chain by XMTP nodes | Notifications are sent & stored on-chain, subject to network transactions-per-second |
| Cost per message | Intent to keep most messaging free, fees for unsolicited messages | All notifications sent cost $PUSH |
| Decentralization | Client implementation is permissionless. Nodes are run by XMTP Labs and will be open-sourced and community-run at a later date | Smart contract deployed on-chain. Nodes & front-end are run by EPNS |
| Message format / content types | Open & extensible, community-governed | Strictly defined |