Storage Layout
DISCLAIMER // NFA // DYOR
This analysis is based on observations of the contract behavior. We are not smart contract security experts. This document aims to explain what the contract appears to do based on the code. It should not be considered a comprehensive security audit or financial advice. Always verify critical information independently and consult with blockchain security professionals for important decisions.
⊙ generated by robots | curated by humans
| METADATA | |
|---|---|
| Contract Address | 0x00000000...4e6f2a (etherscan) |
| Network | Ethereum Mainnet |
| Analysis Date | 2026-10-27 |
Variables
SafeSummoner declares no State Variables. Every function is either pure, view, or writes only to other contracts, and slot 0 reads as zero at block 26,284,732.
| SLOT | VARIABLE NAME | TYPE | CURRENT VALUE | PURPOSE |
|---|---|---|---|---|
| — | none | — | 0x00…00 at slot 0 |
No storage layout |
Its configuration lives in six file-level constants, compiled into the runtime bytecode. They cannot be changed; a different set of addresses would require a different deployment.
| CONSTANT | TYPE | VALUE | USE |
|---|---|---|---|
SUMMONER |
ISummoner (Majeur factory) |
0x00000000...eE9138 (etherscan) |
Called by every summon path; also the CREATE2 deployer in the Decentralized Autonomous Organization (DAO) address prediction |
MOLOCH_IMPL |
address |
0x643A45B5...0673C1 (etherscan) |
Embedded in the clone creation code for DAO address prediction. Never called |
SHARES_IMPL |
address |
0x71E9b38d...Acf600 (etherscan) |
Shares clone address prediction |
LOOT_IMPL |
address |
0x6f1f2aF7...7bc6A5 (etherscan) |
Loot clone address prediction |
SHARE_BURNER |
address |
0x00000000...c3Aa9f (etherscan) |
Default permit target when burnSingleton is zero |
RENDERER |
address |
0x00000000...D6E654 (etherscan) |
Passed as the renderer by every preset |
The prediction constants have to agree with the Summoner's implementation immutable and with the Moloch implementation's sharesImpl and lootImpl immutables for the encoded init calls to land on the right addresses. The Majeur analysis records SUMMONER, sharesImpl and lootImpl in the Moloch runtime bytecode; the prediction check compares them against every summoned DAO.
Account-level state that does exist:
| FIELD | VALUE AT BLOCK 26,284,732 | MEANING |
|---|---|---|
| ETH balance | 0 | No funds held |
| Nonce | 91 | 1 at creation plus one per successful create2Deploy. Summons do not increment it, because the Summoner performs that CREATE2 |
| Code size | 18,730 bytes | Runtime bytecode; 5,846 bytes below the EIP-170 limit |
Diagrams
graph TB
subgraph Storage["Contract Storage"]
S0["Slot 0..n: unused — always zero"]
end
subgraph Constants["Bytecode Constants — immutable by construction"]
C1["SUMMONER<br/>0x00000000...eE9138"]
C2["MOLOCH_IMPL<br/>0x643A45B5...0673C1"]
C3["SHARES_IMPL<br/>0x71E9b38d...Acf600"]
C4["LOOT_IMPL<br/>0x6f1f2aF7...7bc6A5"]
C5["SHARE_BURNER<br/>0x00000000...c3Aa9f"]
C6["RENDERER<br/>0x00000000...D6E654"]
end
subgraph Account["Account State"]
A1["balance: 0"]
A2["nonce: 91"]
end
C1 --> PRED["DAO address prediction"]
C2 --> PRED
PRED --> TOK["Shares / Loot prediction"]
C3 --> TOK
C4 --> TOK
style S0 fill:#e1f0ff
style C1 fill:#ffe1e1
style PRED fill:#fff4d6