{"id":21383173,"url":"https://github.com/push-protocol/push-sdk","last_synced_at":"2025-05-08T21:24:35.329Z","repository":{"id":60985820,"uuid":"545497267","full_name":"push-protocol/push-sdk","owner":"push-protocol","description":"Push SDK is a growing Monorepo of packages that provide solutions for a wide range of development tasks one might come across while building on top of Push protocol. It is a Javascript-based group of packages that enables easy usage of imperative communication tools for Web3","archived":false,"fork":false,"pushed_at":"2024-04-13T13:57:51.000Z","size":71273,"stargazers_count":57,"open_issues_count":97,"forks_count":44,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-04-14T06:44:08.420Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/push-protocol.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"license-v1.md","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-10-04T13:28:15.000Z","updated_at":"2024-04-16T16:36:01.390Z","dependencies_parsed_at":"2024-04-16T16:55:46.285Z","dependency_job_id":null,"html_url":"https://github.com/push-protocol/push-sdk","commit_stats":null,"previous_names":["ethereum-push-notification-service/push-sdk"],"tags_count":311,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/push-protocol%2Fpush-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/push-protocol%2Fpush-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/push-protocol%2Fpush-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/push-protocol%2Fpush-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/push-protocol","download_url":"https://codeload.github.com/push-protocol/push-sdk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238044093,"owners_count":19407128,"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","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":[],"created_at":"2024-11-22T11:20:23.854Z","updated_at":"2025-02-10T02:09:15.171Z","avatar_url":"https://github.com/push-protocol.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n    \u003ca href=\"https://push.org/#gh-light-mode-only\"\u003e\n    \u003cimg width='20%' height='10%' src=\"https://res.cloudinary.com/drdjegqln/image/upload/v1686227557/Push-Logo-Standard-Dark_xap7z5.png\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://push.org/#gh-dark-mode-only\"\u003e\n    \u003cimg width='20%' height='10%' src=\"https://res.cloudinary.com/drdjegqln/image/upload/v1686227558/Push-Logo-Standard-White_dlvapc.png\"\u003e\n    \u003c/a\u003e\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ci align=\"center\"\u003ePush Protocol is a web3 communication network, enabling cross-chain notifications and messaging for dapps, wallets, and services.🚀\u003c/i\u003e\n\u003c/p\u003e\n\n\u003ch4 align=\"center\"\u003e\n\n  \u003ca href=\"https://discord.com/invite/pushprotocol\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/discord-7289da.svg?style=flat-square\" alt=\"discord\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://twitter.com/pushprotocol\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/twitter-18a1d6.svg?style=flat-square\" alt=\"twitter\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.youtube.com/@pushprotocol\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/youtube-d95652.svg?style=flat-square\u0026\" alt=\"youtube\"\u003e\n  \u003c/a\u003e\n\u003c/h4\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://res.cloudinary.com/drdjegqln/image/upload/v1686230764/1500x500_bhmpkc.jpg\" alt=\"dashboard\"/\u003e\n\u003c/p\u003e\n\n\n## Introduction\n#### What is Push Protocol?\n\nPush Protocol, previously known as EPNS, is a Web3 communication protocol that enables any dApps, smart contracts, backends, or protocols to communicate both on-chain and off-chain via user wallet addresses in an open, gasless, multichain, and platform-agnostic fashion.\n\n#### What We Do\n\nBeing an open communication middleware, Push is building a suite of products to enable notifications, chats, streaming, and more. We currently have two major products, Push Notifications and Push Chat.\n\n\u003cdetails open\u003e\n\u003csummary\u003e\n Features\n\u003c/summary\u003e\n  \u003cbr\u003e\n  \n  \u003cp align=\"center\"\u003e\n    \u003cimg width=\"49%\" src=\"https://res.cloudinary.com/drdjegqln/image/upload/v1686231190/push-notifications_tkjhss.png\" alt=\"apis\"/\u003e\n\u0026nbsp;\n    \u003cimg width=\"49%\" src=\"https://res.cloudinary.com/drdjegqln/image/upload/v1686231185/W2W_20Chat_eurjgu.png\" alt=\"data-models\"/\u003e\n\u003c/p\u003e\n\n\n    \n\u003cp align=\"center\"\u003e\n    \u003cimg width=\"49%\" src=\"https://res.cloudinary.com/drdjegqln/image/upload/v1686231164/Untitled-2_fedru3.png\" alt=\"own-your-code\"/\u003e\n\u0026nbsp;\n    \u003cimg width=\"49%\" src=\"https://res.cloudinary.com/drdjegqln/image/upload/v1686231177/Untitled_vhvrfc.png\" alt=\"customize-code\"/\u003e\n\u003c/p\u003e\n   \n  \u003cp align=\"center\"\u003e\n    \u003cimg width=\"49%\" src=\"https://res.cloudinary.com/drdjegqln/image/upload/v1686231162/1_LbhU9-qGnE8QPxWBQgNqQQ_xzkmpp.webp\" alt=\"own-your-code\"/\u003e\n\u0026nbsp;\n \n\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n## PUSH-SDK\n\n#### Push SDK provides an abstraction layer to integrate Push protocol features with your Frontend as well as Backend\n\nPUSH SDK is a Javascript based Monorepo of packages that helps developers to \n- build PUSH features into their DApps\n  - Notifications\n  - Chat\n  - Group Chat\n  - Push NFT Chat\n  - Video Calls\n- get access to PUSH Push Nodes APIs\n- render PUSH Notifications UI\n\nwithout having to write a lot of boilerplate code. All the heavy lifting is done by the SDK, so that you the developer can focus on building features and bootstrap a DApp with PUSH features in no time!\n\nThe SDK provides a suite of solutions for different problems. It is written in Typescript and supports React, React Native, Plain JS, Node JS based platforms. (We are adding support for more!)\n\n*It is also built on top of standard Web3 packages like `ethers`, `@web3-react`*\n\n## Development\n### Packages available\n\nClick on the packages to view more details.\n\n- [@pushprotocol/restapi](./packages/restapi/README.md)\n- [@pushprotocol/uiweb](./packages/uiweb/README.md)\n- [@pushprotocol/socket](./packages/socket/README.md)\n- [@pushprotocol/uiembed](./packages/uiembed/README.md)\n- [@pushprotocol/reactnative](./packages/reactnative/README.md)\n\n\n\u003cdetails \u003e\n\u003csummary\u003e\nSample Usage\n\u003c/summary\u003e\n\n*How to use a package from the SDK?*\n\nLet's take `@pushprotocol/restapi` as an example.\n\nOpen a teminal and enter\n```bash\nmkdir sdk-quickstart\ncd sdk-quickstart\n\n# at sdk-quickstart, hit enter for all if no change from default intended\nyarn init \n\n# or NPM\nnpm init\n```\n\nIf you want to use ES6 Modules syntax then inside `package.json` set “type” to “module”.\n\n```bash\n# install the sdk \"restapi\" package \u0026 its peer dependencies in your app\nyarn add @pushprotocol/restapi ethers\n\n# or NPM\nnpm install @pushprotocol/restapi ethers\n```\n\n```bash\ntouch main.js\n```\n\nFor *CommonJS* Syntax\n```typescript\n// import in main.js\nconst PushAPI = require(\"@pushprotocol/restapi\");\n```\n\n**OR**\n\nFor *ES6 modules* Syntax\n```typescript\n// import in main.js\nimport * as PushAPI from \"@pushprotocol/restapi\";\n```\n\n```typescript\n// use a feature from restapi package,\n// here \"getFeeds\" gets all the notifications for the user address provided\nconst main = async() =\u003e {\n  const notifications = await PushAPI.user.getFeeds({\n    user: 'eip155:11155111:0xD8634C39BBFd4033c0d3289C4515275102423681', // user address in CAIP\n    env: 'staging'\n  });\n\n  // log the notifications \n  console.log('notifications: \\n\\n', notifications);\n}\n\nmain();\n```\n\nThen to run this code open terminal and type\n\n```bash\nnode main\n```\n\u003c/details\u003e\n\u003cbr\u003e\n\n## Resources\n- **[Website](https://push.org)** To checkout our Product.\n- **[Docs](https://docs.push.org/developers/)** For comprehensive documentation.\n- **[Blog](https://medium.com/push-protocol)** To learn more about our partners, new launches, etc.\n- **[Discord](https://discord.com/invite/pushprotocol)** for support and discussions with the community and the team.\n- **[GitHub](https://github.com/push-protocol)** for source code, project board, issues, and pull requests.\n- **[Twitter](https://twitter.com/pushprotocol)** for the latest updates on the product and published blogs.\n\n\n## Contributing\n\nPush Protocol is an open source Project. We firmly believe in a completely transparent development process and value any contributions. We would love to have you as a member of the community, whether you are assisting us in bug fixes, suggesting new features, enhancing our documentation, or simply spreading the word. \n\n- Bug Report: Please create a bug report if you encounter any errors or problems while utilising the Push Protocol.\n- Feature Request: Please submit a feature request if you have an idea or discover a capability that would make development simpler and more reliable.\n- Documentation Request: If you're reading the Push documentation and believe that we're missing something, please create a docs request.\n\n\nRead how you can contribute \u003ca href=\"https://github.com/push-protocol/push-sdk/blob/main/CONTRIBUTING.md\n\"\u003eHERE\u003c/a\u003e\n\nNot sure where to start? Join our discord and we will help you get started!\n\n\n\u003ca href=\"https://discord.com/invite/pushprotocol\" title=\"Join Our Community\"\u003e\u003cimg src=\"https://www.freepnglogos.com/uploads/discord-logo-png/playerunknown-battlegrounds-bgparty-15.png\" width=\"200\" alt=\"Discord\" /\u003e\u003c/a\u003e\n\n## License\nCheck out our License \u003ca href='https://github.com/push-protocol/push-sdk/blob/main/license-v1.md'\u003eHERE \u003c/a\u003e\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpush-protocol%2Fpush-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpush-protocol%2Fpush-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpush-protocol%2Fpush-sdk/lists"}