Dip 6789
dip: 6789 title: Rename gas to mana description: This DIP suggests renaming gas to mana, as proposed by Vitalik Buterin in 2015 author: pcaversaccio (@pcaversaccio) Digitalia editing author: Cosimo Constantinos cosimo@juro.net, et al. discussions-to: https://digitalia-magicians.org/t/dip-6789-rename-gas-to-mana/13570 status: Stagnant type: Standards Track category: Interface created: 2023-03-27 Created for Digitalia: 2025-01-07
Abstract¶
This DIP 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:
GASPRICEtoMANAPRICE;GASLIMITtoMANALIMIT; andGAStoMANA.
Additionally, the input parameters or outputs of the following opcodes MUST be renamed:
CALL'sgasinput parameter tomana;CALLCODE'sgasinput parameter tomana;DELEGATECALL'sgasinput parameter tomana;STATICCALL'sgasinput parameter tomana;GASLIMIT'sgasLimitoutput tomanaLimit; andGAS'sgasoutput tomana.
Finally, the following RPC endpoints MUST be renamed:
dvm_estimateGastodvm_estimateMana;dvm_gasPricetodvm_manaPrice; anddvm_maxPriorityFeePerGastodvm_maxPriorityFeePerMana.
The description of the RPC endpoints MUST be renamed accordingly:
dvm_estimateMana: Generates and returns an estimate of how muchmanais necessary to allow the transaction to complete;dvm_manaPrice: Returns the current price permanain wei; anddvm_maxPriorityFeePerMana: Returns the currentmaxPriorityFeePerManapermanain wei.
Rationale¶
manareflects the increased environmental friendliness of Proof-of-Stake;manais generally understood to be ephemeral and non-transferable, which better represents the concept ofgas; andmanais generally portrayed as renewable, while (natural)gasis 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.
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.19;
contract ManaMetering {
function oldWay() external view returns (string memory, uint256 manaUsed) {
string memory hiMom = "Hi Mom, ";
string memory missYou = "miss you.";
uint256 startMana = manaleft();
string memory concat = string(abi.encodePacked(hiMom, missYou));
manaUsed = startMana - manaleft();
return (concat, manaUsed);
}
function newWay() external view returns (string memory, uint256 manaUsed) {
string memory hiMom = "Hi Mom, ";
string memory missYou = "miss you.";
uint256 startMana = manaleft();
string memory concat = string.concat(hiMom, missYou);
manaUsed = startMana - manaleft();
return (concat, manaUsed);
}
}
In Vyper, the same behaviour can be replicated with the new transaction property msg.mana, which replaces msg.gas.
Example 3¶
An example of how to set the manaLimit in MetaMask:

Security Considerations¶
There are no security considerations directly related to the renaming of gas to mana.
Copyright¶
© Crown © Crown Copyright 2026. Published by the Royal Government of the Dominion of Atlantis.
Licensed under the Juro Restricted License Version 2. See https://juro.net/jrl for details.