---
eip: 4803
title: Limit transaction gas to a maximum of 2^63-1
description: Valid transactions must have a reasonable gas limit
author: Alex Beregszaszi (@axic)
discussions-to: https://ethereum-magicians.org/t/eip-4803-limit-transaction-gas-to-a-maximum-of-2-63-1/8296
status: Stagnant
type: Standards Track
category: Core
created: 2022-02-02
---

## Abstract

Limit transaction gas to be between `0` and `2^63-1`.

## Motivation

The gas limit field in the transaction is specified to be an arbitrary long unsigned integer, but various clients put limits on this value. This EIP brings a reasonable limit into consensus.

## Specification

Introduce one new restrictions retroactively from genesis: any transaction is invalid and not includeable in a block, where the gas limit exceeds `2^63-1`.

## Rationale

### `2^63-1` vs `2^64-1`

`2^63-1` is chosen because it allows representing the gas value as a signed integer, and so the out of gas check can be done as a simple "less than zero" check after subtraction.

### Current limit

Due to the nature of RLP encoding, there is no fixed upper bound for the value, but most implementations limit it to 256-bits. Furthermore, most client implementations (such as geth) internally handle gas as a 64-bit value.

## Backwards Compatibility

While this is a breaking change, no actual effect should be visible.

Before [EIP-1559](./eip-1559.md) it was possible to include transactions with `gasPrice = 0` and thus the `gasLimit * gasPrice <= accountBalance` calculation could have allowed for arbitrarily large values of `gasLimit`. However, the rule that the transaction list cannot exceed the block gas limit, and the strict rules about how the block gas limit can change, prevented arbitrarily large values of `gasLimit` to be in the historical state.

## Security Considerations

None.

## Test Cases

TBA

## Copyright

Copyright and related rights waived via [CC0](../LICENSE.md).
