{"id":21529196,"url":"https://github.com/everx-labs/evernode-nq","last_synced_at":"2025-10-24T16:47:55.530Z","repository":{"id":99747304,"uuid":"448620054","full_name":"everx-labs/Evernode-NQ","owner":"everx-labs","description":"Everscale Decentralized Notifications","archived":false,"fork":false,"pushed_at":"2023-07-19T08:09:32.000Z","size":354,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-24T16:47:55.005Z","etag":null,"topics":["everscale","notification","push","webhook"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/everx-labs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-01-16T17:10:39.000Z","updated_at":"2022-02-11T04:16:03.000Z","dependencies_parsed_at":"2023-07-31T22:34:12.916Z","dependency_job_id":null,"html_url":"https://github.com/everx-labs/Evernode-NQ","commit_stats":null,"previous_names":["everx-labs/evernode-nq"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/everx-labs/Evernode-NQ","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/everx-labs%2FEvernode-NQ","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/everx-labs%2FEvernode-NQ/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/everx-labs%2FEvernode-NQ/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/everx-labs%2FEvernode-NQ/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/everx-labs","download_url":"https://codeload.github.com/everx-labs/Evernode-NQ/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/everx-labs%2FEvernode-NQ/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280833009,"owners_count":26398970,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-24T02:00:06.418Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["everscale","notification","push","webhook"],"created_at":"2024-11-24T01:56:11.038Z","updated_at":"2025-10-24T16:47:55.512Z","avatar_url":"https://github.com/everx-labs.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Evernode-NQ\n\nThis repository contains documents that describe the architecture of a solution for delivering\nencrypted messages from the blockchain to end-users.\nThe solution ensures that neither the sender nor the \"man in the middle\" can decrypt\nmessage or match which smart contracts (e.g. wallets) belong to which recipient.\n\nTo achieve this goal, the process of creating/encrypting and delivering messages was separated,\nand the following entities were introduced:\n\n### Queue Provider\n\nQueue Provider knows what to send (has access to the data) but it does not have any information\nabout the real address of the recipient. It creates encrypted messages based on user-defined rules\ncontaining a list of addresses and message types (internal, external incoming or outgoing).\n\n### Notification Provider\n\nNotification Provider knows where to send (has delivery address, e.g. IP address, URL, email,\nAPN ID, FCM ID, etc.) but has no knowledge of the data itself since it is encrypted.\n\nThere can be several types of notification providers depending on the type of recipient and\ntransport (browser, http server, smartphones, email, etc.).\n\nSchematically, the process can be represented as follows:\n\n```\n                                          +---------------+\nUser------\u003e`CONSTANT_HASH + Rules`-------\u003e|     Queue     |\n  |                                       |    Provider   |\n  |                                       +-------+-------+\n  |                                               |\n  |                              `CONSTANT_HASH + EncryptedMessage`\n  |                                               |\n  |                                       +---------------+\n  +--\u003e`CONSTANT_HASH + DeliveryAddress`--\u003e|  Notification |\n                                          |   Provider    |\n                                          +---------------+\n                                                  |\n                                       Provider sends encrypted\n                                       message to the recipient\n```\n\nNote that the user sends the same **CONSTANT_HASH** to both the Queue Provider and the Notification\nProvider. Using this value, Notification Provider understands where to send a particular encrypted\nmessage.\n\n### Next reading\n\n-   [How to create a notification via debot](User-manual.md)\n-   [How to create a notification with client libraries](notification-contract-management/)\n-   [Notification-provider-manual](Notification-provider-manual.md)\n-   [Evernode-NQ technical architecture](Architecture.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feverx-labs%2Fevernode-nq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feverx-labs%2Fevernode-nq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feverx-labs%2Fevernode-nq/lists"}