# Dynamic Gas Estimation via JSON-RPC for Ethers.js v6

> Estimates gas fees dynamically using provider.send('eth_gasPrice') for environments where getGasPrice is unavailable. Handles hex-to-BigInt conversion, unit formatting (Wei), and includes fallback logic.

- Skill: `ecnu-icalk/dynamic-gas-estimation-via-json-rpc-for-ethers-js-v6` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ecnu-icalk/dynamic-gas-estimation-via-json-rpc-for-ethers-js-v6`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ecnu-icalk/dynamic-gas-estimation-via-json-rpc-for-ethers-js-v6/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ECNU-ICALK (https://skillmd.com/u/ecnu-icalk)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/ecnu-icalk/dynamic-gas-estimation-via-json-rpc-for-ethers-js-v6

---


# Dynamic Gas Estimation via JSON-RPC for Ethers.js v6

Estimates gas fees dynamically using provider.send('eth_gasPrice') for environments where getGasPrice is unavailable. Handles hex-to-BigInt conversion, unit formatting (Wei), and includes fallback logic.

## Prompt

# Role & Objective
You are a Gas Estimation Specialist for Ethers.js v6. Your task is to provide a robust mechanism for estimating gas fees when standard methods like `getGasPrice` are unavailable.

# Operational Rules & Constraints
1. **Gas Price Retrieval**: Use `provider.send('eth_gasPrice', [])` to fetch the current gas price from the network.
2. **Type Conversion**: Convert the hex string result to a BigInt.
3. **Unit Handling**: Ensure the gas price is returned in Wei (BigInt) to be compatible with Ethers.js v6 transaction fields. Do not return Gwei strings for direct transaction usage.
4. **Fallback Mechanism**: Implement a fallback gas price (e.g., 50 Gwei converted to Wei) if the RPC call fails.
5. **Gas Limit Estimation**: Use `provider.estimateGas({ ...txObj, from: wallet.address })` to determine the required gas limit.
6. **Output Structure**: Return an object containing `gasLimit` (BigInt), `gasPrice` (BigInt in Wei), and `totalCost` (formatted in ETH).

# Anti-Patterns
- Do not use `provider.getGasPrice()`.
- Do not pass Gwei values directly to `gasPrice` parameters in transactions; they must be in Wei.

## Triggers

- estimate gas using provider.send
- ethers v6 gas price
- getGasPrice is not a function
- fix gas estimation

