<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Shyaamal Tripathi</title>
    <description>The latest articles on DEV Community by Shyaamal Tripathi (@shyaamal1108).</description>
    <link>https://dev.to/shyaamal1108</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1115933%2F66b43628-d712-4e1d-84a9-c5c517f9c530.jpg</url>
      <title>DEV Community: Shyaamal Tripathi</title>
      <link>https://dev.to/shyaamal1108</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shyaamal1108"/>
    <language>en</language>
    <item>
      <title>Web3 Communication : A Research Article</title>
      <dc:creator>Shyaamal Tripathi</dc:creator>
      <pubDate>Wed, 25 Oct 2023 12:10:11 +0000</pubDate>
      <link>https://dev.to/shyaamal1108/web3-communication-a-research-article-eai</link>
      <guid>https://dev.to/shyaamal1108/web3-communication-a-research-article-eai</guid>
      <description>&lt;p&gt;Let's deep dive into what we mean when we say Web3 communication.&lt;/p&gt;

&lt;h2&gt;
  
  
  What do we mean by communication here?
&lt;/h2&gt;

&lt;p&gt;If we talk about general Web2-powered apps and stuff, they all have a communication layer. By communication layer, we mean how these apps communicate with their users and notify them about whatever recent information might be needed. Like trading apps notifying the users about recent market developments, food ordering apps notifying about the placed orders and so on. &lt;/p&gt;

&lt;p&gt;Web3 has brought in the concept of decentralization and  user network focused and user network powered internet which has revolutionized conventional communication models. Owing to this, communication undergoes a massive transformation with the involvement of blockchain technology which is very different than the traditional scape.&lt;/p&gt;

&lt;h2&gt;
  
  
  Web2 and Web3 communication
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1Jo0A1qU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oqifrrjh68vf2hl4abi5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1Jo0A1qU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oqifrrjh68vf2hl4abi5.png" alt="Image description" width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When we think about the difference between Web2 and Web3 applications, a void within the realm of Web3 becomes apparent: &lt;strong&gt;the absence of robust communication services&lt;/strong&gt;. Web2 applications offer a wide array of integrated communication tools, such as instant messaging, social media platforms, and email services, which facilitate seamless interactions and connections among users. &lt;/p&gt;

&lt;p&gt;In contrast, Web3 applications are still in the early stages of development when it comes to incorporating and offering these vital communication services. The transition to Web3 represents an ongoing journey, aiming to bridge this communication gap and enable decentralized, secure, and privacy-focused modes of interaction within the evolving web landscape.&lt;/p&gt;

&lt;h2&gt;
  
  
  Players in the spotlight
&lt;/h2&gt;

&lt;p&gt;-&lt;strong&gt;Status&lt;/strong&gt;: Status is an open-source messaging platform that specializes in delivering secure and private messaging via the Ethereum blockchain. Its core mission is to present a decentralized substitute for conventional messaging applications.&lt;/p&gt;

&lt;p&gt;-&lt;strong&gt;RetroShare&lt;/strong&gt;: RetroShare stands as a decentralized, open-source communication platform that prioritizes security, allowing users to engage in private messaging, share files, participate in forums, and more.&lt;/p&gt;

&lt;p&gt;-&lt;strong&gt;Flow&lt;/strong&gt;: Flow is a blockchain platform designed for building Web3 applications, and companies are exploring its use for creating decentralized communication tools.&lt;/p&gt;

&lt;p&gt;-&lt;strong&gt;Solana Ecosystem Projects&lt;/strong&gt;: Several projects within the Solana blockchain ecosystem are exploring decentralized communication solutions, including me&lt;/p&gt;

&lt;p&gt;These were some of the organization building some awesome stuff for the Web3 communication layer. &lt;/p&gt;

&lt;h2&gt;
  
  
  About Push Protocol
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mfUMk5iB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8mdb1lp4mui62scehmow.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mfUMk5iB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8mdb1lp4mui62scehmow.jpg" alt="Image description" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Push is a communication protocol designed for the entire web3 ecosystem, offering decentralized communication. Its primary objective is to empower users by enabling them to receive notifications for activities, whether they occur on-chain or off-chain.&lt;/p&gt;

&lt;p&gt;Talking about some of its features:-&lt;/p&gt;

&lt;p&gt;-&lt;strong&gt;Push Notifications&lt;/strong&gt;: Through the Push Protocol, a robust and decentralized push notification solution is provided, granting the ability for blockchain projects, decentralized applications (dApps), and service providers to send real-time push notifications to their users via an open network, enhancing their communication capabilities.&lt;/p&gt;

&lt;p&gt;-&lt;strong&gt;Push Chat&lt;/strong&gt;: Push Chat stands as a web3 messaging protocol that facilitates the exchange of messages between wallet addresses, eliminating the necessity of traditional personal identifiers such as phone numbers or email addresses. It elevates security and privacy levels above those found in standard messaging applications and introduces unique web3 messaging features, including the capability to create token-gated experiences, engage in anonymous conversations, securely associate communication with your cryptographic keys, and much more.&lt;/p&gt;

&lt;p&gt;-&lt;strong&gt;Push DAO&lt;/strong&gt;: Precisely the Push Protocol DAO supports the Push Protocol through grants, community and ecosystem. There are many ways to get involved in it like the Push Grants Program, Push Ambassadors Program, Push Bug Bounty Program, Rockstars of Push and Push Missions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Synthesis
&lt;/h2&gt;

&lt;p&gt;In the transition from Web2 to Web3, the communication landscape is undergoing a significant transformation. Web2 apps provide integrated communication tools for instant messaging, social interaction, and more, while Web3 is still evolving in this regard. Innovative projects like Status and RetroShare are filling the void by offering secure, decentralized messaging and communication. The Push Protocol is at the forefront of enabling Web3 communication, providing robust push notifications and introducing a novel messaging experience with Push Chat. The Push DAO supports these efforts through various programs, fostering the growth of Web3 communication.&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;p&gt;The resource that I mostly referred to was &lt;a href="https://www.youtube.com/@pushprotocol"&gt;Push Protocol YouTube channel&lt;/a&gt; and some general stuff available about the topic on the Internet.&lt;/p&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>development</category>
      <category>community</category>
    </item>
    <item>
      <title>All about Push Protocol : The Communication Protocol of Web3</title>
      <dc:creator>Shyaamal Tripathi</dc:creator>
      <pubDate>Tue, 24 Oct 2023 20:06:23 +0000</pubDate>
      <link>https://dev.to/shyaamal1108/all-about-push-protocol-the-communication-protocol-of-web3-48j3</link>
      <guid>https://dev.to/shyaamal1108/all-about-push-protocol-the-communication-protocol-of-web3-48j3</guid>
      <description>&lt;p&gt;Herein the blog we will discuss about some key features of Push protocol, how you can get started with it and some other technical insights.&lt;/p&gt;

&lt;h2&gt;
  
  
  What exactly is Push Protocol??
&lt;/h2&gt;

&lt;p&gt;Push is a communication protocol designed for the entire web3 ecosystem, offering decentralized communication. Its primary objective is to empower users by enabling them to receive notifications for activities, whether they occur on-chain or off-chain.&lt;/p&gt;

&lt;p&gt;Web3 departs from the conventional client-server model, reducing the centralization of control over information and data. However, in the context of the web3 experience, anticipating meaningful and valuable interactions becomes impractical without a robust communication method. In essence, &lt;strong&gt;a DAO lacking effective communication&lt;/strong&gt; becomes a dysfunctional organization, just as a &lt;strong&gt;metaverse devoid of communication&lt;/strong&gt; runs counter to its purpose. Similarly, within De-Fi, the absence of communication leads to inevitable mistakes.&lt;/p&gt;

&lt;p&gt;Therefore Web3 needs a Web2 type of communication system. Here comes the savior &lt;strong&gt;Push Protocol&lt;/strong&gt;. Push notifications and messaging solve these problems and are building the communication layer for Web3.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features of Push Protocol
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ib_uhRy9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tlv1f5uhikhkqjo59y8q.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ib_uhRy9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tlv1f5uhikhkqjo59y8q.jpg" alt="Image description" width="800" height="585"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's talk about some of the features of the Push Protocol.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Push Notifications&lt;/strong&gt;: The Push Protocol offers a resilient and decentralized push notification solution, empowering blockchain projects, decentralized applications (dApps), and service providers to deliver real-time push notifications to their users via an open network.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Push Chat&lt;/strong&gt;: Push Chat stands as a web3 messaging protocol that facilitates the exchange of messages between wallet addresses, eliminating the necessity of traditional personal identifiers such as phone numbers or email addresses. It elevates security and privacy levels above those found in standard messaging applications and introduces unique web3 messaging features, including the capability to create token-gated experiences, engage in anonymous conversations, securely associate communication with your cryptographic keys, and much more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Push DAO&lt;/strong&gt;: Precisely the Push Protocol DAO supports the Push Protocol through grants, community and ecosystem. There are many ways to get involved in it like the Push Grants Program, Push Ambassadors Program, Push Bug Bounty Program, Rockstars of Push and Push Missions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sN0NFiRj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i1ywftebu3al7zfvf6rc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sN0NFiRj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i1ywftebu3al7zfvf6rc.png" alt="Image description" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting started with Push Chat
&lt;/h2&gt;

&lt;p&gt;A small but brief description has already been provided about Push Chat. Now let's deep dive.&lt;/p&gt;

&lt;p&gt;Push chat opens up some of the native Web3 experiences that were not possible before such as:&lt;/p&gt;

&lt;p&gt;-Sending direct messages (DMs) with various message formats, including GIFs, Embeds, Payments, and more.&lt;/p&gt;

&lt;p&gt;-Integrating web3-native chat directly into your front end, eliminating the need for users to navigate to external platforms.&lt;/p&gt;

&lt;p&gt;-Establishing group chats for community interactions.&lt;/p&gt;

&lt;p&gt;-Implementing conditional or gated access for joining groups or sending messages.&lt;/p&gt;

&lt;p&gt;-Facilitating re-engagement through a push notification protocol while offering a user interface (UI) reminiscent of popular Web2 platforms like WhatsApp or Telegram.&lt;/p&gt;

&lt;p&gt;-Ensuring compatibility across different blockchains, encompassing EVMs, non-EVMs, wallet addresses, NFT profiles, and more.&lt;/p&gt;

&lt;p&gt;-Supporting video and audio calls within both direct messages and group chats.&lt;/p&gt;

&lt;p&gt;The SDKs (Software Development Kits) of Push Chat are &lt;strong&gt;JavaScript, React, React Native, Dart, Kotlin&lt;/strong&gt; and &lt;strong&gt;Swift&lt;/strong&gt;. The message types include &lt;strong&gt;text, images, files, media embeds&lt;/strong&gt; and &lt;strong&gt;reactions&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;// Install Libraries&lt;br&gt;
npm install @pushprotocol/restapi@latest @pushprotocol/socket@latest ethers@^5.7&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Import libraries
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;// Import restapi for function calls  &lt;br&gt;
// Import socket for listening for real time messages&lt;br&gt;
import { PushAPI } from '@pushprotocol/restapi';&lt;br&gt;
import { createSocketConnection, EVENTS } from '@pushprotocol/socket';&lt;br&gt;
// Ethers v5 or Viem, both are supported&lt;br&gt;
import { ethers } from 'ethers';&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Initialize chat
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;// Creating a random signer from a wallet, ideally this is the wallet you will connect&lt;br&gt;
const signer = ethers.Wallet.createRandom();&lt;br&gt;
// Initialize wallet user, pass 'prod' instead of 'staging' for mainnet apps&lt;br&gt;
const userAlice = await PushAPI.initialize(signer, { env: 'staging' });&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Send message
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;// This will be the wallet address of the recipient &lt;br&gt;
  const toWalletAddress = ethers.Wallet.createRandom().address;&lt;br&gt;
  // Send a message to Bob&lt;br&gt;
  const aliceMessagesBob = await userAlice.chat.send(toWalletAddress, {&lt;br&gt;
    content: 'Hello Bob!',&lt;br&gt;
    type: 'Text',&lt;br&gt;
  });&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Stream / Real-time updates / Socket
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;// Create Socket Connection&lt;br&gt;
const pushSDKSocket = createSocketConnection({&lt;br&gt;
  user: signer.wallet,&lt;br&gt;
  socketType: 'chat',&lt;br&gt;
  socketOptions: { autoConnect: true, reconnectionAttempts: 3 },&lt;br&gt;
  env: 'staging',&lt;br&gt;
});&lt;br&gt;
// To listen to real time message&lt;br&gt;
pushSDKSocket.on(EVENTS.CHAT_RECEIVED_MESSAGE, (message) =&amp;gt; {&lt;br&gt;
  console.log(message);&lt;br&gt;
});&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting started with Push Notifications
&lt;/h2&gt;

&lt;p&gt;Again a small but brief introduction about Push notifications has been already provided above. So now let's deep dive.&lt;/p&gt;

&lt;p&gt;Push Protocol is constructing the Web3 communication foundation, enabling dApps, smart contracts, and backends to transmit real-time notifications directly linked to a user's wallet address, known as Web3 usernames. This bridges a crucial Web3 infrastructure gap, enhancing the daily interaction for blockchain users. The notifications, or any other forms of communication, remain off-chain and free of gas costs in most instances, except when a smart contract initiates them, resulting in a slightly elevated gas fee for on-chain transmission.&lt;/p&gt;

&lt;p&gt;The SDKs (Software Development Kits) of Push Notifications are &lt;strong&gt;JavaScript, React, React Native, Dart, Kotlin&lt;/strong&gt; and &lt;strong&gt;Swift&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;// Install Libraries&lt;br&gt;
npm install @pushprotocol/restapi@latest ethers@^5.7&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Import libraries
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;// Import restapi for function calls&lt;br&gt;
import { PushAPI } from '@pushprotocol/restapi'&lt;br&gt;
// Ethers v5 or Viem, both are supported&lt;br&gt;
import { ethers } from 'ethers'&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Initialize User
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;// Creating a random signer from a wallet, ideally this is the wallet you will connect&lt;br&gt;
const signer = ethers.Wallet.createRandom()&lt;br&gt;
// Initialize wallet user, pass 'prod' instead of 'staging' for mainnet apps&lt;br&gt;
const userAlice = await PushAPI.initialize(signer, { env: 'staging' })&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Send Notification
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;// Requires user to have a channel, see Create Channel section for more info&lt;br&gt;
// ['*'] sends to all wallets who have opted in to your channel&lt;br&gt;
const response = await userAlice.channel.send(['*'], {&lt;br&gt;
  notification: { &lt;br&gt;
    title: 'You awesome notification', &lt;br&gt;
    body: 'from your amazing protocol' &lt;br&gt;
  }&lt;br&gt;
})&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Stream / Real-time updates / Socket
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;// To listen to real time notifications&lt;br&gt;
userAlice.stream.on('STREAM.NOTIF', (data) =&amp;gt; {&lt;br&gt;
  console.log(data)&lt;br&gt;
})&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Real-world use cases
&lt;/h2&gt;

&lt;p&gt;Various projects have integrated Push and are solving some of the potential challenges in the Web3 industry at present, let's have a look at some.&lt;/p&gt;

&lt;p&gt;-Shapeshift DAO relies on Web3 notifications to ensure its members remain informed about governance proposals and voting progress.&lt;/p&gt;

&lt;p&gt;-Bancor, a protocol dedicated to on-chain trading and liquidity, leverages Web3 notifications to deliver community updates directly to users' wallets whenever new opportunities arise.&lt;/p&gt;

&lt;p&gt;-The Lens protocol, a social media platform, enhances user experience by utilizing push notifications to provide users with the most user-centric and top-notch experience possible&lt;/p&gt;

&lt;h2&gt;
  
  
  What if I face any problem??
&lt;/h2&gt;

&lt;p&gt;What to do in case of problems??&lt;/p&gt;

&lt;p&gt;-Thoroughly go through the &lt;a href="https://push.org/docs/"&gt;documentation&lt;/a&gt; of Push Protocol before starting anything or in between&lt;/p&gt;

&lt;p&gt;-Join the &lt;a href="https://discord.gg/pushprotocol"&gt;Discord&lt;/a&gt; server to discuss that issue&lt;/p&gt;

&lt;p&gt;-Raise an issue on the Push &lt;a href="https://github.com/ethereum-push-notification-service/push-sdk/issues"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's it, folks if you loved the blog then please like it coz that keeps me motivated to write more such blogs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CEOCEuvs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/63k1hhmvv89qs796lywc.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CEOCEuvs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/63k1hhmvv89qs796lywc.gif" alt="Image description" width="498" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>web3</category>
      <category>community</category>
      <category>development</category>
    </item>
  </channel>
</rss>
