Push Protocol is a web3 communication network, enabling cross-chain notifications and messaging for dapps, wallets, and services.🚀
Push Protocol, previously known as EPNS, is a Web3 communication protocol that enables any dApps, smart contracts, backends, or protocols to communicate both on-chain and off-chain via user wallet addresses in an open, gasless, multichain, and platform-agnostic fashion.
Being an open communication middleware, Push is building a suite of products to enable notifications, chats, streaming, and more. We currently have two major products, Push Notifications and Push Chat.
Push SDK provides an abstraction layer to integrate Push protocol features with your Frontend as well as Backend
PUSH SDK is a Javascript based Monorepo of packages that helps developers to
- build PUSH features into their DApps
- Notifications
- Chat
- Group Chat
- Push NFT Chat
- Video Calls
- get access to PUSH Push Nodes APIs
- render PUSH Notifications UI
without having to write a lot of boilerplate code. All the heavy lifting is done by the SDK, so that you the developer can focus on building features and bootstrap a DApp with PUSH features in no time!
The SDK provides a suite of solutions for different problems. It is written in Typescript and supports React, React Native, Plain JS, Node JS based platforms. (We are adding support for more!)
It is also built on top of standard Web3 packages like ethers
, @web3-react
Click on the packages to view more details.
- @pushprotocol/restapi
- @pushprotocol/uiweb
- @pushprotocol/socket
- @pushprotocol/uiembed
- @pushprotocol/reactnative
Sample Usage
How to use a package from the SDK?
Let's take @pushprotocol/restapi
as an example.
Open a teminal and enter
mkdir sdk-quickstart
cd sdk-quickstart
# at sdk-quickstart, hit enter for all if no change from default intended
yarn init
# or NPM
npm init
If you want to use ES6 Modules syntax then inside package.json
set “type” to “module”.
# install the sdk "restapi" package & its peer dependencies in your app
yarn add @pushprotocol/restapi ethers
# or NPM
npm install @pushprotocol/restapi ethers
touch main.js
For CommonJS Syntax
// import in main.js
const PushAPI = require("@pushprotocol/restapi");
OR
For ES6 modules Syntax
// import in main.js
import * as PushAPI from "@pushprotocol/restapi";
// use a feature from restapi package,
// here "getFeeds" gets all the notifications for the user address provided
const main = async() => {
const notifications = await PushAPI.user.getFeeds({
user: 'eip155:11155111:0xD8634C39BBFd4033c0d3289C4515275102423681', // user address in CAIP
env: 'staging'
});
// log the notifications
console.log('notifications: \n\n', notifications);
}
main();
Then to run this code open terminal and type
node main
- Website To checkout our Product.
- Docs For comprehensive documentation.
- Blog To learn more about our partners, new launches, etc.
- Discord for support and discussions with the community and the team.
- GitHub for source code, project board, issues, and pull requests.
- Twitter for the latest updates on the product and published blogs.
Push Protocol is an open source Project. We firmly believe in a completely transparent development process and value any contributions. We would love to have you as a member of the community, whether you are assisting us in bug fixes, suggesting new features, enhancing our documentation, or simply spreading the word.
- Bug Report: Please create a bug report if you encounter any errors or problems while utilising the Push Protocol.
- Feature Request: Please submit a feature request if you have an idea or discover a capability that would make development simpler and more reliable.
- Documentation Request: If you're reading the Push documentation and believe that we're missing something, please create a docs request.
Read how you can contribute HERE
Not sure where to start? Join our discord and we will help you get started!
Check out our License HERE