Solidity Gas Cost – Difference Between Updating and Adding Storage

contract-developmentevmgasopcode

Do these have a separate cost?

sstore(1, 10) # first time adding a value to storage with this key
sstore(1, 20) # changing the value in storage.

I looked for a list of gas costs / opcodes, and the only one I could find (https://docs.google.com/spreadsheets/d/1m89CVujrQe5LAFJ8-YAUCcNK950dUzMQPMJBxRtGCqs/edit#gid=0) is a year old. It seems to say that modifying storage is cheaper, but I'm not sure if these values are outdated.

Best Answer

Yes, using storage has different gas costs:

20,000 gas when a value is set to non-zero from zero; 5,000 gas when writing to existing storage or setting a value to zero; and a 15,000 gas refund when a non-zero value is set to zero.

The Yellow Paper is the underlying source.

EIP-2200 has further explanations.

Related question: Does an SSTORE where the new value is the same as the existing value cost gas?

Related Topic