description |
---|
A quick introduction to Push Protocol |
Push Protocol (previously EPNS) is the world’s first decentralized communication & notification protocol for Web3.
Using the protocol, any smart contract, dApp, or backend service can send on-chain or off-chain notifications tied to the wallet addresses of users in a gasless, multichain, open, and platform-agnostic way.
Being an open communication middleware, notifications can be integrated and shown on any crypto wallet, mobile app, browser extension, or dApps enabling a native communication layer for Web3.0
Quick Guide to Getting Started with Push Protocol 🛣
- Any user who activates themselves on the protocol to send a notification is called a Channel.
- In other words, a Channel is any service (protocol, dApp, or even web2 service) that wants to send notifications out to web3 usernames (wallet addresses).
- A wallet address can create only one Channel on the protocol.
- A channel is free to delegate (or revoke delegates) sending notifications functionality to any other wallet addresses on their behalf.
- Creating a channel requires 50 PUSH, Channel info (Channel name, Image, description, CTA), and some ETH.
- Channels can send notifications to their users(wallet addresses) in a number of ways, including:
- Javascript SDK (Gasless. Best for automated logic from dApp / Backend)
- Showrunners Framework (Scaffold/Gasless. Best for automated logic via scaffold backend)
- Smart contract to Smart contract (requires gas, Best for instant on-chain events, piggybacks on an on-chain transaction via Interface ABI call)
- Manually from Push dApp (Gasless, Best for manual logic)
- Users can gaslessly opt-in to receive notifications from these Channels. See the entire walkthrough here.
- Opted-in users are called subscribers of the Channels. Subscribers of the Channel receive notifications from those Channels in their Inboxes.
- Non-opted users or non-subscribers of the Channel aren't alerted when they receive a notif from a non-subscribed channel, instead, it lands in their spam folder.
- Currently, we have Staging and Prod dApp that interfaces with EPNS Protocol to enable communication & notifications.
{% tabs %} {% tab title="Channels" %} 🖥 Learn everything about channels, their working mechanisms, and how to create one.
{% content-ref url="concepts/create-your-notif-channel/" %} create-your-notif-channel {% endcontent-ref %}
{% content-ref url="developer-guides/create-your-notif-channel/" %} create-your-notif-channel {% endcontent-ref %} {% endtab %}
{% tab title="Notifications" %} 🔔 Explore all about notifications, their types, the different ways of sending and receiving notifications as well as other imperative details.
{% content-ref url="concepts/web3-notifications/" %} web3-notifications {% endcontent-ref %}
{% content-ref url="developer-guides/sending-notifications/" %} sending-notifications {% endcontent-ref %}
{% content-ref url="developer-guides/receiving-notifications/" %} receiving-notifications {% endcontent-ref %}
{% content-ref url="developer-guides/sending-notifications/notification-payload-types/" %} notification-payload-types {% endcontent-ref %} {% endtab %}
{% tab title="SDK" %} ⚙ Understand the key features of EPNS SDK and how to use it in your own project easily.
{% content-ref url="developer-tooling/push-sdk/" %} push-sdk {% endcontent-ref %}
{% content-ref url="developer-tooling/push-sdk/epns-sdk-starter-kit.md" %} epns-sdk-starter-kit.md {% endcontent-ref %} {% endtab %}
{% tab title="Push Chat" %} 📝 Learn about the details of Push Chat and how to easily integrate it.
{% content-ref url="concepts/push-chat-for-web3.md" %} push-chat-for-web3.md {% endcontent-ref %}
{% content-ref url="developer-guides/integrating-push-chat.md" %} integrating-push-chat.md {% endcontent-ref %}
{% content-ref url="developer-tooling/push-sdk/sdk-packages-details/epnsproject-sdk-uiweb/push-support-chat.md" %} push-support-chat.md {% endcontent-ref %} {% endtab %}
{% tab title="Showrunners" %} 🛠 Learn about the showrunners framework and how to use it to build out notifications for your specific use cases.
{% content-ref url="developer-tooling/showrunners-framework/" %} showrunners-framework {% endcontent-ref %}
{% content-ref url="developer-guides/sending-notifications/using-showrunners-scaffold-gasless.md" %} using-showrunners-scaffold-gasless.md {% endcontent-ref %} {% endtab %} {% endtabs %}