Deployed contracts
The Staking and reward-distribution contracts are carried forward from Safenet Beta.
- SentinelOracle coordinates Sentinel checks, fees, bonds, arbitration, and configurable protocol parameters.
- Consensus coordinates Validator attestations and Validator-set epochs.
- FROSTCoordinator coordinates Validator FROST signing ceremonies.
oracle.safenet-gov.eth.
SafeDAO can change configurable SentinelOracle parameters without replacing the Oracle, including:
- Sentinel set.
- Transaction-check fee.
- SafeDAO fee share.
- Bond parameters.
- Protocol funds receiver.
Governance accounts
Safenet uses separate Safe accounts for protocol governance, arbitration, and reward distribution. The table also lists the Reality Modules that execute SafeDAO proposals on the Safenet Governance Safes.
Safenet Governance Safe (Mainnet)
- Mainnet governance: executes SafeDAO decisions on Ethereum Mainnet.
- Staking governance: owns the Staking contract and the reward-distribution contract.
- Governance ENS control: is the registrant and owner of
safenet-gov.ethand its subnames. See ENS records. - Reward distribution: executes accepted reward distributions, updating the rewards-contract Merkle root, funding the rewards contract, and updating the
rewards.safenet-gov.ethreference.
- Sentinel Oracle governance: is the governance address configured in the SentinelOracle and executes approved Oracle parameter changes.
- Protocol funds: is the protocol funds receiver, which receives the SafeDAO fee share and slashed bonds.
- Arbitration: resolves arbitration when Sentinel decisions are split.
0x0000000000000000000000000000000000000002, with a threshold of 1. This address cannot sign, so no signer can execute transactions from either Safe. Each Safe has two modules enabled:
- Reality Module: executes a proposal’s transaction bundle after a final Yes answer on Reality.eth, the cooldown, and before expiration.
- Veto Module: can only invalidate pending proposals. See Veto Module.
ENS records
Safenet’s governance ENS names are on Ethereum Mainnet. The Safenet Governance Safe (Mainnet) is the registrant ofsafenet-gov.eth and the owner of the name and each subname, so changes to these records execute only through Mainnet governance. Routine Oracle parameter changes do not touch ENS. They execute through the Safenet Governance Safe (Gnosis Chain).
Charter
The
charter.safenet-gov.eth contenthash establishes which Charter version is adopted. Copies in the safenet-charter repository are mirrors and do not establish adoption on their own. Changing the adopted Charter requires a Mainnet governance proposal that updates the contenthash.
Oracle
The Gnosis Chain address record identifies the canonical SentinelOracle. The epochStart text record is a Safenet consensus epoch ID. It is not a block number or a timestamp. Replacing the Oracle requires a Mainnet governance proposal that updates both records. See Oracle replacement.
Rewards
The rewards.safenet-gov.eth contenthash is updated by each accepted reward distribution, together with the Merkle root on the reward-distribution contract. Until the first distribution executes, the record has no contenthash. The onchain Merkle root, not the ENS record, determines which claims are accepted. See Distribution and claiming.
Veto Module
The Reality Veto Module gives one address, the vetoer, a single power: invalidating a SafeDAO proposal on a Safenet Governance Safe before its transactions execute. The vetoer cannot propose, approve, or execute transactions. On both chains, the vetoer is a Safe Ecosystem Foundation (SEF) Safe, and the veto is only to be used for tax, sanctions, or AML compliance. This restriction is a usage policy and is not enforced by the module.- A veto is permanent for that proposal. Transactions that already executed are not reversed. SafeDAO can submit the change again as a new proposal.
- The module has no admin functions or parameters. Changing the vetoer requires a new module. SafeDAO can disable the module through a proposal, which can itself be vetoed.
Audits
The following audits cover contracts used by Safenet, newest first.
An audit reviews specific code at a specific commit. It does not establish that the code is free of vulnerabilities, that a deployment is configured correctly, or that a component is ready for operation. Read each report for its scope, findings, and the resolution status of each finding.
The audit index in the safenet repository lists the Safenet reports and their commits. The safenet-utils audit index lists the Veto Module report.
Report a security issue
See Bug bounty for how to report a security issue.