Skip to main content
Push Protocol
· 3 min read

Empower Your Wallet, App, or Platform with Push Delivery Nodes⚡

Cover image of Empower Your Wallet, App, or Platform with Push Delivery Nodes⚡

Simplify Web3 Notifications for Your App with Push Delivery Nodes — A One-Stop Solution for Mobile, Desktop or Extension. These Decentralized Nodes Connect Web3 and Web2, Allowing Your Platform to Receive Notifications from Validating and Indexing Storage Nodes, Tied Directly to Your Wallet Address and Multi-Chain Identity

What are the Delivery Nodes?

Push Delivery Nodes serve as a decentralized solution for connecting web3 and web2. They allow any centralized or decentralized platform to receive communications from Push Storage Nodes, which validate and index all communications and link them to a user’s wallet address and multi-chain identity.

Developers can run these nodes on their backend to connect their web2 infrastructure to web3 communication, allowing for extended communication beyond web3 wallet addresses to web2 platform users. Push Delivery Nodes enable mapping any web2 device token or platform username to a specific web3 wallet address, which can then send alerts to web2 or web2.5 platforms.

Examples of platforms that can be reached include crypto wallet apps, mobile apps, browser extensions, Telegram and Discord bots, email alerts, and more.

For a pure web3 experience, listening to Push Storage Nodes or utilizing their RPC endpoints/SDK is the best option. However, if you’re a developer looking to extend these communication experiences to centralized platforms, you need to use Push Delivery Nodes.

Docusaurus Image

7 Steps for Getting Started With the Delivery Node Module🌱

Prerequisites

  • MYSQL (Version >= 5.7)
  • Redis (Version >= 6.0)
  • Docker (For local setup)
  • Google FCM Account Setup

Step 1: Clone Push delivery node repo

Git clone can be found here: https://github.com/push-protocol/push-delivery-node.git

Step 2: Environment configuration

Refer env sample file. The MYSQL DB credentials and Redis URL needs to be updated. The remaining conf need not be edited as of now.

If you use docker-compose for the local setup MYSQL DB and Redis config can be left as it is.

# REDIS
REDIS_URL=redis://localhost:6379
# DELIVERY NODE MYSQL DATABASE
DELIVERY_NODE_DB_HOST=localhost
DELIVERY_NODE_DB_NAME=dbname
DELIVERY_NODE_DB_USER=user
DELIVERY_NODE_DB_PASS=pass
DELIVERY_NODE_DB_PORT=3306

Step 3. a: Infra setup: (local)

The docker-compose will bring up the MYSQL, Redis, and PHPMyAdmin containers for the Delivery Node.

docker compose up

Step 3. b: (Alternate) infra setup: (Production)

  • Host MYSQL and Redis Separately
  • Add MYSQL and Redis credentials in the .env file

Step 4: FCM project setup

Step 5: Build the delivery node project

You should then be able to build the project using:

cd push-delivery-node
npm install

Step 6: Start the delivery node project

You should be able to start the server using:

cd push-delivery-node
npm start

Step 7: Device registration

  • An endpoint is hosted as part of the delivery node project, which can be used for device registration.
  • Below is the API to create a mapping between the wallet address and the device token for which the messages need to be delivered.
  • <delivery_node_url> is the base URL of the Delivery node you have hosted.

Below is the curl request of this endpoint

curl - location - request POST 'https://<delivery_node_url>/apis/v1/pushtokens/register' \
- header 'Content-Type: application/json' \
- data-raw '{
"wallet": "eip155:0x35B84d6848D16415177c64D64504663b998A6ab4",
"device_token": "device_token",
"platform": "android"
}'
PUSH Documentation: Integrating notifications via Push Delivery Nodes

Push Support

If at any point you find yourself needing assistance and help with getting set up, Push has a team of helpful developers ready when you need it.

Come join us in Discord where you can get assistance and meet other devs who are building with Push👉 https://discord.com/invite/pushprotocol

Push SNS Module for Delivery Node

We have also launched the Push SNS Module for the delivery nodes, which instantly allows any developer to receive notifications, chats, or any other form of web3 communication directly to the platform they are building with the help of webhooks.

You can find more details here.

What’s next for Push Delivery Nodes?

  • Dockerization
  • Analytics
  • Monitoring APIs
  • Support Push Chat

Be a part of the conversation by sharing this article

About Push Protocol
Push is the communication protocol of web3. Push protocol enables cross-chain notifications and messaging for dapps, wallets, and services tied to wallet addresses in an open, gasless, and platform-agnostic fashion. The open communication layer allows any crypto wallet / frontend to tap into the network and get the communication across.
Twitter
Discord
YouTube
Linkedin

We use cookies to personalize your experience. Learn more in our Privacy Policy.