# eth_estimateGas

> Generates and returns an estimate of how much gas is necessary to allow the transaction to complete.

<SimplifiedApiReference
  method="eth_estimateGas"
  description="Generates and returns an estimate of how much gas is necessary to allow the transaction to complete."
  parameters={[
    {
      name: 'Transaction',
      type: 'object',
      required: true,
      description: 'Transaction object generic to all types',
      children: [
        {
          name: 'accessList',
          type: 'array',
          required: false,
          description: 'Access list',
          children: [
            {
              name: 'address',
              type: 'string',
              required: false,
              description: 'hex encoded address',
            },
            { name: 'storageKeys', type: 'array', required: false, description: '' },
          ],
        },
        { name: 'blobs', type: 'array', required: false, description: 'Raw blob data.' },
        {
          name: 'blobVersionedHashes',
          type: 'array',
          required: false,
          description:
            "List of versioned blob hashes associated with the transaction's EIP-4844 data blobs.",
        },
        {
          name: 'chainId',
          type: 'string',
          required: false,
          description: 'hex encoded unsigned integer',
        },
        { name: 'from', type: 'string', required: false, description: 'hex encoded address' },
        {
          name: 'gas',
          type: 'string',
          required: false,
          description: 'hex encoded unsigned integer',
        },
        {
          name: 'gasPrice',
          type: 'string',
          required: false,
          description: 'hex encoded unsigned integer',
        },
        { name: 'input', type: 'string', required: false, description: 'hex encoded bytes' },
        {
          name: 'maxFeePerBlobGas',
          type: 'string',
          required: false,
          description: 'hex encoded unsigned integer',
        },
        {
          name: 'maxFeePerGas',
          type: 'string',
          required: false,
          description: 'hex encoded unsigned integer',
        },
        {
          name: 'maxPriorityFeePerGas',
          type: 'string',
          required: false,
          description: 'hex encoded unsigned integer',
        },
        {
          name: 'nonce',
          type: 'string',
          required: false,
          description: 'hex encoded unsigned integer',
        },
        { name: 'to', type: 'null', required: false, description: 'Contract Creation (null)' },
        { name: 'type', type: 'string', required: false, description: 'hex encoded byte' },
        {
          name: 'value',
          type: 'string',
          required: false,
          description: 'hex encoded unsigned integer',
        },
      ],
    },
    {
      name: 'Block',
      type: 'object',
      required: false,
      description: 'Block number or tag',
    },
  ]}
  returns={{
    type: 'string',
    description: 'hex encoded unsigned integer',
  }}
  exampleRequest={`await provider.request({
    method: 'eth_estimateGas',
    params: [
      {
        from: '0xfe3b557e8fb62b89f4916b721be55ceb828dbd73',
        to: '0x44aa93095d6749a706051658b970b941c72c1d53',
        value: '0x1',
      },
      null,
    ],
})`}
  exampleResponse={`{
    "id": 1,
    "jsonrpc": "2.0",
    "result": "0x5208"
}`}
/>
