POST
/
0a9d79d93fb2f4a4b1e04695da2b77a7
curl --request POST \
  --url https://nd-422-757-666.p2pify.com/0a9d79d93fb2f4a4b1e04695da2b77a7 \
  --header 'Content-Type: application/json' \
  --data '{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "eth_maxPriorityFeePerGas",
  "params": []
}'
{
  "jsonrpc": "<string>",
  "id": 123,
  "result": "aSDinaTvuI8gbWludGxpZnk="
}

eth_maxPriorityFeePerGas

Ethereum API method that returns an estimate of the current priority fee per gas. This fee is the tip that users may pay miners,post-merge, to validators on top of the base fee to incentivize the inclusion of their transactions in a block. This method helps users adjust their transaction fees in a dynamic market, ensuring transactions are processed promptly without overpaying.

Get you own node endpoint today

Start for free and get your app to production levels immediately. No credit card required.

You can sign up with your GitHub, X, Google, or Microsoft account.

Parameters

  • none

Response

  • quantity — the estimated priority fee per gas needed, represented as a hexadecimal string.

eth_maxPriorityFeePerGas code examples

Learn more about the ChainstackProvider in ethers.js: ethers ChainstackProvider Documentation.

const ethers = require("ethers");



// Create a ChainstackProvider instance for Ethereum mainnet

const chainstack = new ethers.ChainstackProvider("mainnet");



const estimatePriorityFee = async () => {

  const priorityFeePerGas = await chainstack.getFeeData();

  console.log(

    `Estimated priority fee per gas: ${priorityFeePerGas.maxPriorityFeePerGas}`

  );

};



estimatePriorityFee();

Use Case

A practical use case for eth_maxPriorityFeePerGas using ethers.js is to calculate transaction fees dynamically for applications and wallets to accurately estimate the cost of transactions, especially during periods of high network congestion. This method ensures transactions are confirmed in a timely manner without overpaying. By fetching the current priority fee (maxPriorityFeePerGas) and the maximum fee per gas (maxFeePerGas), applications can dynamically calculate the total transaction fee required for prompt processing under the current network conditions.

JavaScript
const ethers = require("ethers");



// Create a ChainstackProvider instance for Ethereum mainnet

const chainstack = new ethers.ChainstackProvider("mainnet");



async function simulateTransaction(fromAddress, toAddress, amountEther) {

  const amountWei = ethers.parseEther(amountEther.toString());

  const feeData = await chainstack.getFeeData();

  console.log("Full gas fee data:", feeData);



  const tx = {

    from: fromAddress,

    to: toAddress,

    value: amountWei,

    maxPriorityFeePerGas: feeData.maxPriorityFeePerGas,

    maxFeePerGas: feeData.maxFeePerGas,

  };



  console.log("Simulating transaction:", tx);



  try {

    const estimatedGas = await chainstack.estimateGas(tx);

    console.log(`Estimated gas for transaction: ${estimatedGas.toString()}`);

  } catch (error) {

    console.error(`Error simulating transaction: ${error}`);

  }

}



const fromAddress = "0xae2Fc483527B8EF99EB5D9B44875F005ba1FaE13";

const toAddress = "0xF135B9eD84E0AB08fdf03A744947cb089049bd79";

const amountEther = 1; // Simulating sending 1 Ether for this example



simulateTransaction(fromAddress, toAddress, amountEther);

The simulateTransaction function showcases how to build a transaction with dynamically calculated fees based on the current network state, including the base and priority fees. This approach provides a more nuanced and accurate method for estimating the total transaction fee, ensuring users pay a fair amount based on real-time network conditions. It simulates the transaction’s execution to estimate gas usage without actually broadcasting it to the network, allowing for cost-effective transaction planning and testing. This simulation is particularly useful for applications that require a balance between transaction cost and confirmation speed, providing a comprehensive picture of the fees needed for timely transaction processing.

Body

application/json

Response

200 - application/json
The estimated max priority fee per gas

The response is of type object.