Skip to main content

Important Concepts

Before you begin sending your web3 native notifications from your protocol to wallets. It's important to learn few core concepts to help understand it better.

What is a Channel?

Any protocol that activates itself on Push protocol is known as a channel and gains the capability of sending notifications.

The creation of a channel is a one-time process. Channel creation happens on the Ethereum blockchain and any other chains you want the channel to be.

Note: One wallet address can only create one channel only the protocol.

Who can send notifications?

1. Channel Owners: The owners of a particular channel can send notifications to their subscribers.

2. Channel Delegates: Channel owners can allow any particular wallet address to send notifications on behalf of their channel.

How to receive notifications?

Push ties notifications (and all other forms of communication) to your wallet in an open yet secure way. This means that notifications can be received by any crypto wallets or crypto frontend that has integrated Push Protocol. Here are some of our favorites!

Types of supported wallet address (Account)

Push Notification is chain agnostic and even supports messaging wallet addresses, NFT addresses, all evms (and even non-EVM in the future). Below is the list of evergrowing standards that Push is compatible with, either of which you can use as per your requirements —

Standard Wallet Address

  • Standard Wallet Address - Standard wallet is supported and used by default
  • usage - 0x99A08ac6254dcf7ccc37CeC662aeba8eFA666666
// Sending to standard wallet address - defaults to EVM format
await userAlice.channel.send(["0x99A08ac6254dcf7ccc37CeC662aeba8eFA666666"], {
notification: {
title: "Hello World",
body: "Web3 native notification!",
},
});

Chain Specific Wallet Address

  • Chain Agnostic Wallet Address - Pass {chain_standard}:{chainId}:{account_id} format to use this instead of standard wallet address. SDK converts all normal wallet address to chain agnostic ones by default.
  • usage - eip155:1:0x99A08ac6254dcf7ccc37CeC662aeba8eFA666666
  • usage - eip155:11155111:0x99A08ac6254dcf7ccc37CeC662aeba8eFA666666
  • usage - eip155:137:0x99A08ac6254dcf7ccc37CeC662aeba8eFA666666
// Sending to chain agnostic wallet address, support eip155 currently
await userAlice.channel.send(
["eip155:1:0x99A08ac6254dcf7ccc37CeC662aeba8eFA666666"],
{
notification: {
title: "Hello World",
body: "Web3 native notification!",
},
},
);

Lens profile / Cyberconnect profile / Any NFT profile

  • NFT profile - Pass nft:{chain_standard}:{nftChainId}:{nftContractAddress}:{nftTokenId}
  • usage - nft:eip155:11155111:0x42af3147f17239341477113484752D5D3dda997B:2:1683058528
// Sending to nft format, any nfts supported including .lens, .crypto, .polygon or your crypto punks
await userAlice.chat.send(
"nft:eip155:11155111:0x42af3147f17239341477113484752D5D3dda997B:2:1683058528",
{
notification: {
title: "Hello World",
body: "Web3 native notification!",
},
},
);