Unlocking the Power of Push Protocols in Smart Contracts
Published: 2023-10-25 15:21:31

## Push Protocol: Decentralized Web3 Communication and Notification System

## Introduction

**What is Push?**

Push Protocol is a decentralized communication and notification system designed for Web3. It enables dApps, smart contracts, backends, and other protocols to communicate both on-chain and off-chain across multiple blockchain networks in a gasless and platform-agnostic manner. The current suite of products includes Push Notifications, Push Chat, Group Chat, NFT Chat, and Push Video, all aimed at enhancing interaction within the Web3 ecosystem.

## Push Smart Contract

For the protocol to be chain-agnostic and truly decentralized, Push smart contracts play a major role. These contracts are divided into two main categories: Push Core and Push Communicator.

### Push Core

**Push Core Contract**

The Push Core protocol serves as the central smart contract responsible for managing critical functions, including channel creation, governance, modifications to channel states, fund management, and incentive mechanisms, among other essential features. This smart contract is deployed exclusively on the Ethereum blockchain.

**Channels**

For any user service, product, or protocol seeking to function as a service for sending notifications or engaging with their users, it is necessary to initiate the process by creating Channels within the Push Core smart contract. A few important points regarding Channels:

- Channel creation happens only on the Ethereum Chain.
- One wallet address can create only one channel on the protocol.
- A channel can have one of the following states: Inactive, Activated, Deactivated, or Blocked.
- Creation of a channel requires 50 $PUSH tokens.

**Fund and Fee Pool in Core Contract**

State variables within the core contract are specifically crafted to monitor and record incoming funds, including:
- CHANNEL_POOL_FUNDS
- PROTOCOL_POOL_FEES
- ADD_CHANNEL_MIN_FEES
- FEE_AMOUNT
- MIN_POOL_CONTRIBUTION

*Note*: All imperative actions or transactions in the Push Core Contract require the native $PUSH tokens.

### Core V2 Smart Contract Staking

The staking feature allows $PUSH token holders to stake their tokens in the core contract and earn rewards from the Fee Pool. Key details about Push Fee Pool Staking:
- It's an epoch-based staking system.
- Rewards are distributed within epochs, each lasting approximately 21 days.
- Stakers can participate at any time, and longer-held $PUSH tokens are rewarded more.
- The total claimable rewards in an epoch rely on the Fee Pool.

### Push Communication Contract

**Push Communicator Contract**

The Push Communicator protocol differs from the Push Core smart contract in that it is intended for deployment on multiple blockchain networks. It encompasses functionalities that enable users to perform actions such as subscribing to channels, unsubscribing from channels, and sending notifications. This contract can be implemented on various blockchain networks, extending beyond the Ethereum blockchain.

**Incentivized Chat Request**

The Incentivized Chat Request feature empowers users to customize their chat experience by implementing a one-time fee in ($PUSH) tokens for individuals who wish to send them Push Chat requests. This feature grants users greater control over their chat interactions and enables them to monetize their engagement on the platform.

### Push Smart Contracts Github Link

For more detailed information and access to the Push Smart Contracts, you can visit the [Push Smart Contracts GitHub repository](https://github.com/ethereum-push-notification-service/push-smart-contracts).

## Conclusion

In conclusion, the Push Protocol represents a significant advancement in the Web3 ecosystem, offering a decentralized communication and notification system that bridges the gap between blockchain networks in a gasless and platform-agnostic manner. With a suite of products and the use of $PUSH tokens, Push Protocol aims to enhance interaction within the Web3 space, presenting a promising player in the evolution of blockchain communication and interaction.