RPC Method Compatibility Checker Across Providers
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
RPC Method Compatibility Checker Across Providers is a read-only developer tool that tests support for standard JSON-RPC methods across multiple RPC providers. It sends test requests to each user-provided endpoint for 13 core methods including eth_blockNumber, eth_chainId, eth_gasPrice, eth_getBalance, eth_getCode, eth_getStorageAt, eth_getLogs (with chunked fetching to avoid RPC limits), eth_getTransactionReceipt, eth_call, eth_estimateGas, eth_getBlockByNumber, web3_clientVersion, and net_peerCount. The tool generates a compatibility matrix showing which methods are supported by each provider, identifies missing required methods, and provides a summary of overall compatibility. It helps developers evaluate providers before migration, identify gaps in method support, and ensure consistent behavior across RPC endpoints.
HOW TO USE
Connect your EVM-compatible wallet via the BGWallet bridge and select the network you are targeting. Enter your RPC endpoints (one per line) in the textarea, optionally provide a test address for state methods, and click "Check Compatibility". The tool tests each endpoint against the full method set using chunked eth_getLogs fetching to prevent provider-side rejections. Results include a provider compatibility summary, a detailed method support matrix with color-coded pass/fail indicators (✅ for supported, ❌ for unsupported), and per-provider detailed results showing which methods passed and failed. The tool also highlights required core methods that every provider should support. All analysis is read-only—no signatures or transactions are submitted.
TECHNICAL MECHANISM
The tool uses ethers.js v5.7.2 to create a JsonRpcProvider for each endpoint. It tests 13 methods using a variety of approaches: eth_blockNumber and eth_chainId use provider.getBlockNumber() and provider.getNetwork(); eth_gasPrice uses provider.getGasPrice(); eth_getBalance and eth_getCode use provider.getBalance() and provider.getCode() with the provided test address; eth_getStorageAt uses provider.getStorageAt() with slot 0x0; eth_getLogs uses a chunked fetching strategy that recursively halves block ranges if a full-range request fails, preventing "query exceeds limit" errors; eth_getTransactionReceipt tests with a zero hash (expected to fail gracefully); eth_call and eth_estimateGas use provider.call() and provider.estimateGas(); eth_getBlockByNumber uses provider.getBlock('latest'); web3_clientVersion and net_peerCount use provider.send() for raw JSON-RPC calls. Each method returns a pass/fail result with a truncated response or error message. Required methods (eth_blockNumber and eth_chainId) are flagged as essential—if a provider fails either, it is marked "Incompatible." The results are displayed in a matrix format with per-provider pass/fail counts and detailed tooltips for debugging.
WHAT IT CANNOT SEE
This tool has fundamental limitations that users must understand. It cannot test methods that require specific transaction parameters or state conditions to be meaningful—the tests use minimal parameters (e.g., eth_call with empty data, eth_getStorageAt with slot 0) which may not exercise full method functionality. It cannot account for rate-limited responses that may cause false negatives—a provider may temporarily fail due to rate limiting rather than missing support. It cannot test for semantic differences in method behavior—different providers may implement the same method with slight variations (e.g., different gas price calculation algorithms). It cannot test methods that are not accessible due to network restrictions or authentication requirements—some methods may require special API keys or elevated permissions. It cannot detect compatibility issues that only appear under specific input conditions or edge cases—the tests use simple, predictable inputs. It cannot verify that the method returns correct data, only that it responds without error. It cannot test methods that are not part of the standard JSON-RPC spec (e.g., custom methods). It cannot assess performance or latency—only method presence. The tool's results may vary based on the test address provided and current network conditions.
PLEASE NOTE
This tool only supports EVM-compatible blockchains (Ethereum, Polygon, BSC, Avalanche C-Chain, Optimism, Arbitrum, and their testnets). Solana, Tron, Starknet, SUI, TON, Aptos, Bitcoin, Cosmos, and XRP are not supported. The tool is free, open-source, requires no API keys, and uses the wallet's native provider for all read operations. Always verify critical provider compatibility with your actual application's method usage patterns before making migration decisions.