I set up a Truffle sample project, which contains the following contract: import "ConvertLib.sol"; contract MetaCoin { mapping (address => uint) balances; event Transfer(address indexed _from, address indexed _to, uint256 _value); function MetaCoin() { balances[tx.origin] = 10000; } function sendCoin(address receiver, uint amount) returns(bool sufficient) { if (balances[msg.sender] < amount) return false; balances[msg.sender] -= amount; balances[receiver] += amount; Transfer(msg.sender, receiver, amount); return true; } function getBalanceInEth(address addr) returns(uint){ return ConvertLib.convert(getBalance(addr),2); } function getBalance(address addr) returns(uint) { return balances[addr]; } } The two last functions only return a value and don't alter the state of the network. Why was there no `constant` used for these two functions? From what I can tell looking at the logs, in their current form, both functions need mining and cost gas when being called.