This EIP suggests renaming gas to mana, as proposed by Vitalik Buterin in 2015.
Motivation
The underlying motivation for reviving Vitalik’s original proposal from 2015 is that we have finally arrived at the age of Proof-of-Stake, and given the roadmap ahead (i.e. “The Surge”, “The Scourge”, “The Verge”, “The Purge”, and “The Splurge”), I consider this moment as the last opportunity to make such a far-reaching semantic change.
Specification
The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119 and RFC 8174.
The core term gas MUST be renamed to mana.
The following opcodes MUST be renamed:
GASPRICE to MANAPRICE;
GASLIMIT to MANALIMIT; and
GAS to MANA.
Additionally, the input parameters or outputs of the following opcodes MUST be renamed:
CALL’s gas input parameter to mana;
CALLCODE’s gas input parameter to mana;
DELEGATECALL’s gas input parameter to mana;
STATICCALL’s gas input parameter to mana;
GASLIMIT’s gasLimit output to manaLimit; and
GAS’s gas output to mana.
Finally, the following RPC endpoints MUST be renamed:
eth_estimateGas to eth_estimateMana;
eth_gasPrice to eth_manaPrice; and
eth_maxPriorityFeePerGas to eth_maxPriorityFeePerMana.
The description of the RPC endpoints MUST be renamed accordingly:
eth_estimateMana: Generates and returns an estimate of how much mana is necessary to allow the transaction to complete;
eth_manaPrice: Returns the current price per mana in wei; and
eth_maxPriorityFeePerMana: Returns the current maxPriorityFeePerMana per mana in wei.
Rationale
mana reflects the increased environmental friendliness of Proof-of-Stake;
mana is generally understood to be ephemeral and non-transferable, which better represents the concept of gas; and
mana is generally portrayed as renewable, while (natural) gas is non-renewable.
Backwards Compatibility
This proposal is not backward compatible as it renames the core term gas.
Test Cases
Example 1
If a transaction requires more mana than allowed by the manaLimit, it is reverted as an out-of-mana transaction.
Example 2
A Solidity contract to estimate the used mana via the new manaleft() syntax (replacing gasleft()) for dedicated function calls.
Pascal Caversaccio (@pcaversaccio), "EIP-6789: Rename gas to mana [DRAFT]," Ethereum Improvement Proposals, no. 6789, March 2023. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-6789.