{"id":19119736,"url":"https://github.com/tenderly/node-extensions-library","last_synced_at":"2025-09-16T09:36:23.413Z","repository":{"id":152749850,"uuid":"613493434","full_name":"Tenderly/node-extensions-library","owner":"Tenderly","description":"Create custom JSON-RPC methods with Tenderly Node Extension Library","archived":false,"fork":false,"pushed_at":"2024-07-02T00:00:08.000Z","size":351,"stargazers_count":35,"open_issues_count":2,"forks_count":23,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-06-22T07:03:30.413Z","etag":null,"topics":["blockchain","extensions","naas","node-as-a-service","node-extension","tenderly","web3"],"latest_commit_sha":null,"homepage":"https://docs.tenderly.co/web3-gateway/node-extensions","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Tenderly.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-03-13T17:16:49.000Z","updated_at":"2025-05-21T17:39:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"8c705586-d30c-48a7-a08c-d2473f2dc38d","html_url":"https://github.com/Tenderly/node-extensions-library","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Tenderly/node-extensions-library","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tenderly%2Fnode-extensions-library","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tenderly%2Fnode-extensions-library/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tenderly%2Fnode-extensions-library/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tenderly%2Fnode-extensions-library/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Tenderly","download_url":"https://codeload.github.com/Tenderly/node-extensions-library/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tenderly%2Fnode-extensions-library/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275396431,"owners_count":25457323,"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-09-16T02:00:10.229Z","response_time":65,"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":["blockchain","extensions","naas","node-as-a-service","node-extension","tenderly","web3"],"created_at":"2024-11-09T05:10:54.634Z","updated_at":"2025-09-16T09:36:23.391Z","avatar_url":"https://github.com/Tenderly.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tenderly Node Extension Library\n\n\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://dashboard.tenderly.co/register?redirectTo=node-extensions\"\u003e\n        \u003cimg src=\"https://storage.googleapis.com/tenderly-public-assets/node-extensions/node-extensions.png\" alt=\"tenderly-node-extensions\" width=\"100%\" height=\"auto\" style=\"background-color: #ffffffb2; padding: 10px 20px; margin-bottom: 20px; box-sizing: border-box; max-width:200px;\" /\u003e\n    \u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![License](https://img.shields.io/github/license/Tenderly/node-extensions-library)](./LICENSE)\n[![Twitter](https://img.shields.io/twitter/follow/TenderlyApp?style=social)](https://twitter.com/intent/follow?screen_name=TenderlyApp)\n[![Github](https://img.shields.io/github/stars/Tenderly/node-extensions-library?style=social)](https://github.com/Tenderly/node-extensions-library)\n\n\u003c/div\u003e\n\n## Introduction\n\nThis library is a collection of Tenderly Node Extensions. It’s used to extend Tenderly Web3 Gateway, our Node-as-a-Service, with additional functionalities.\n\nNode Extensions are a game-changing enhancement to our existing production node. This feature allows devs to create custom JSON-RPC method names and write custom JS/TS code snippets that are executed each time the method is called. It’s like having your very own sorcerer’s apprentice working behind the scenes! 🧙‍\n\n\u003e ### **Note:** Node Extensions require [@tenderly/actions](https://github.com/Tenderly/tenderly-actions) version \u003e= **0.2.0**.\n\n## Getting Started\n\nGo to the [Node Extensions Library](https://dashboard.tenderly.co/register?redirectTo=node-extensions) and search for the extension that you want to include in your Web3 Gateway. Click on the extension and click \"Activate\".\nOnce activated, go to JSON-RPC Request Builder and select your extension method from the dropdown menu. You can then enter the JSON payload and click \"Send Request\".\n\nList of the supported networks can be found here:\n[Tenderly Web3 Gateway Supported Networks](https://docs.tenderly.co/supported-networks-and-languages).\n\nFull documentation with detailed instructions can be found here:\n[Tenderly Node Extensions Docs](https://docs.tenderly.co/web3-gateway/node-extensions).\n\n### How to Create a Custom Node Extension - Video Tutorial\n\n\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://youtu.be/W9Q9vLwoPlo\"\u003e\n        \u003cimg src=\"https://img.youtube.com/vi/W9Q9vLwoPlo/maxresdefault.jpg\" alt=\"Tenderly\" width=\"100%\" height=\"auto\" style=\"background-color: #ffffffb2; padding: 10px 20px; margin-bottom: 20px; box-sizing: border-box; max-width:200px;\" /\u003e\n    \u003c/a\u003e\n\u003c/div\u003e\n\n### How to Activate an Extension from the Node Extension Library - Video Tutorial\n\n\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://youtu.be/9inC9pUKr5c\"\u003e\n        \u003cimg src=\"https://img.youtube.com/vi/9inC9pUKr5c/maxresdefault.jpg\" alt=\"Tenderly\" width=\"100%\" height=\"auto\" style=\"background-color: #ffffffb2; padding: 10px 20px; margin-bottom: 20px; box-sizing: border-box; max-width:200px;\" /\u003e\n    \u003c/a\u003e\n\u003c/div\u003e\n\n## Node Extension Examples\n\nTo get started creating your own node extensions, you can use the following Node Extension Starter Pack:\n\n- [node-extension-starter](./node-extension-starter) - This Tenderly Node Extension gets the block from the network, where the `result.transactions` is a list of transaction hashes.\n- [node-extension-starter-jest](./node-extension-starter-jest) - This Tenderly Node Extension gets the block from the network, where the `result.transactions` is a list of transaction hashes and has the Jest testing library installed.\n\nHere are examples of Node Extensions that you can use in your projects:\n\n- [chainlink-price-feed](./chainlink-price-feed) - Use this Tenderly Node Extension to query Chainlink Price Feeds.\n- [multicall-uniswap-erc20-balance](./multicall-uniswap-erc20-balance) - This Tenderly Node Extension uses Wonderland's multicall strategy to quickly fetch Uniswap's ERC20 balances.\n- [pm-can-sponsor-user-operation](./pm-can-sponsor-user-operation) - Use this Tenderly Node Extension to check whether Pimlico's Paymaster service can sponsor a User Operation on behalf of a third-party dapp.\n- [pm-sponsor-user-operation](./pm-sponsor-user-operation) - This Tenderly Node Extension asks Pimlico's Paymaster to sponsor a submitted User Operation on behalf of a wallet.\n- [pm-supported-entry-points](./pm-supported-entry-points) - This Tenderly Node Extension returns the list of entryPoint contracts that are supported on the chain you’re using.\n- [polygon-block-author](./polygon-block-author) - Use this Tenderly Node Extension to get the block author for a given block number on Polygon (Matic) network.\n- [simulate-mempool-transaction](./simulate-mempool-transaction) - This Tenderly Node Extension allows you to simulate a transaction in the mempool.\n- [simulate-send-transaction](./simulate-send-transaction) - This Tenderly Node Extension allows you to simulate a transaction before sending on-chain.\n\n## Contributing\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md) for more information.\n\nOur [Code of Conduct](./CODE_OF_CONDUCT.md) applies to all Tenderly community channels.\n\n## Security\n\nIf you believe you have found a security vulnerability in Node Extension Template, we encourage you to responsibly\ndisclose this and not open a public issue. We will investigate all legitimate reports. Contact our customer support by\nemail **support@tenderly.co** to disclose any security vulnerabilities.\n\n## Contributors\n\n\u003ca href=\"https://github.com/Tenderly/node-extensions-library/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=Tenderly/node-extensions-library\u0026max=100\u0026columns=20\" alt=\"tenderly-contributors\" /\u003e\n\u003c/a\u003e\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for the details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftenderly%2Fnode-extensions-library","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftenderly%2Fnode-extensions-library","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftenderly%2Fnode-extensions-library/lists"}