Storage Pointer
1 min read
Pronunciation
[staw-rij poyn-ter]
Analogy
Like a bookmark in a book that points directly to the page you need.
Definition
A reference in smart contract code that directs to a specific storage slot or mapping entry in the blockchain’s persistent storage.
Key Points Intro
Storage pointers enable efficient access and manipulation of contract state.
Key Points
Slot addressing: each state variable has a unique 32-byte slot
Mapping keys: keccak256(key . slot) computes dynamic locations
Struct packing: fields may share slots to save gas
Gas cost: reading and writing storage is one of the most expensive operations
Example
In Solidity, `S1 storage s = dataStructs[0];` creates a storage pointer to the first struct in an array for in-place updates.
Technical Deep Dive
EVM storage uses a key-value store where slot keys are 256-bit words. For mappings, the slot of an entry is computed by `keccak256(abi.encodePacked(key, slot))`. Inline assembly (`sload`, `sstore`) can manipulate pointers directly, but requires careful attention to avoid collisions.
Security Warning
Incorrect pointer arithmetic or overlapping slots can corrupt contract state and introduce vulnerabilities.
Caveat
Advanced usage increases complexity and reduces readability; high gas costs demand optimization.
Storage Pointer - Related Articles
No related articles for this term.