title | description | author | status | type | category | subcategory | created |
---|---|---|---|---|---|---|---|
ENS support in Push Notifications | Sending notifications by specifying receiverās ENS domains rather than Eth Address | Aman Gupta amangupta200103@gmail.com | Draft | Standard | PRC | Notification | 2022-12-09 |
-
Abstract - Ethereum Name Service (ENS) support should be added while sending Push Notification from DApp / SDK, which enables the sender channel to specify an ENS domain as receiver rather than providing the Eth Address.
-
Motivation - Since ENS domains map human-readable names to machine-readable identifiers such as āEthereum Address,ā it makes sending notifications much easier and seamless without the need of storing, remembering, and copy/pasting the long addresses
-
Specification - While sending a notification, a channel should be able to specify either an Ethereum address or an ENS Domain as a receiver (Note - There can also be multiple ens domains as receivers for a subset notification). The Push Node should be able to resolve these ENS domains and send the notifications to the specified address.
-
Rationale - ENS is the most widely integrated blockchain standard, which can help make Push Notifications to be more user-friendly and simpler to use by eliminating copying and pasting long addresses. Two approaches were discussed for this feature which mainly differs in resolving the ENS domains part. The first approach suggests resolving the domains on DApp / SDK itself and send to Push Nodes as simple address whereas the second approach suggests the responsibility of resolving ENS domains should be on Push Nodes to maintain uniformity as push nodes notifications can have multiple sources (contract/graph etc). The latter approach is chosen due to the above reason.
-
Reference Implementation -
{
"notification": {
"title": "The title of your message displayed on screen (50 Chars)",
"body": "The intended message displayed on screen (180 Chars)"
},
"data": {
"type": "4"
"sectype": null
"asub": "[Optional] The subject of the message displayed inside app (80 Chars)",
"amsg": "[Optional] The intended message displayed inside app (500 Chars)",
"acta": "[Optional] The cta link parsed inside the app",
"aimg": "[Optional] The image url which is shown inside the app",
"etime": "[Optional] if given, notif will be deleted after this in epoch"
"hidden" :"[Optional] if given, notif will not show in user feed"
},
"recipients": [
abc.eth: null,
bcd.eth: null,
...
xyz.eth: null
}