What are Node Extensions?
Node Extensions allow you to create custom JSON-RPC endpoints for your decentralized applications. Backed by Web3 Actions, you can define your own RPC methods to fit your specific needs, extending the standard Ethereum JSON-RPC interface with custom functionality.Node Extensions are built on top of Web3 Actions and require a gateway to be configured for your project.
Key Concepts
Custom RPC Methods
Node Extensions enable you to create custom RPC methods that can be called from your dapp just like standard Ethereum methods (eth_getBalance, eth_sendTransaction, etc.). Your custom methods must follow a specific naming convention starting with extension_.
Web3 Actions Integration
Each extension is powered by a Web3 Action with a non-authenticated webhook trigger. When your custom RPC method is called, it triggers the associated action, allowing you to execute custom logic, interact with smart contracts, or process blockchain data in unique ways.Extension Components
An extension consists of:- Name: A unique identifier for your extension
- Description: Human-readable description of what the extension does
- Method Name: The JSON-RPC method name (must start with
extension_) - Action: The Web3 Action that executes when the method is called
Method Name Requirements
Extension method names must follow strict validation rules:Must match the regex pattern:
^extension_[a-z][A-Za-z0-9]{2,}(?:[A-Z][a-z0-9]+)*$Valid examples:extension_getCustomBalanceextension_validateTransactionextension_myCustomMethod
myMethod(doesn’t start withextension_)extension_A(too short, needs at least 3 characters after prefix)extension_123(must start with lowercase letter after prefix)extension_my_method(no underscores allowed after prefix)
Action Requirements
To be used with an extension, a Web3 Action must:- Have a webhook trigger configured
- The webhook trigger must be non-authenticated (
authenticated: false) - Not be currently used by another extension in the same project
Configuration
Extensions are configured in yourtenderly.yaml file under the node_extensions section:
tenderly.yaml
Available Commands
Initialize Extension
Set up a new node extension in your project
Deploy Extension
Deploy extensions to your Tenderly gateway
Getting Started
Create a Web3 Action
First, create a Web3 Action with a non-authenticated webhook trigger in your
tenderly.yaml:Use Cases
Node Extensions are perfect for:- Custom data aggregation: Combine multiple contract calls into a single RPC method
- Advanced filtering: Implement complex filtering logic for events or transactions
- Caching layers: Build custom caching strategies for frequently accessed data
- Business logic: Encode domain-specific logic directly into your RPC interface
- Data transformations: Process and transform blockchain data before returning to clients
Next Steps
Learn About Web3 Actions
Understand the underlying action system
Gateway Configuration
Configure gateways for your extensions