Eight pieces of work with public evidence. Each links to the pull requests, reports or addresses behind it.
Safenet: staking contract and Safenet Guard
to present · safe-research/safenet
Safenet is a decentralized transaction-security network for Safe accounts. Validators check a Safe transaction, and a guard on the account verifies their attestation onchain before the transaction runs. Safenet Beta launched in April 2026 with SAFE staking on Ethereum mainnet. The next release, Safenet Aegis, is pre-launch, and the repository is marked work in progress. I wrote 114 of its 781 commits (merge commits excluded, October 2026).
What I did
Wrote the staking contract that Safenet Beta runs on Ethereum mainnet (#7), with its tests (#104), NatSpec and docs (#65, #110), validator-staker support (#200) and the deployment and interaction scripts (#190, #193, #202).
Wrote the Certora specs for staking (#111, #112, #168) and committed Certora's staking audit report (#164).
Wrote the Safenet Guard (#618), the contract a Safe installs to check validator attestations, after two prototypes that I later removed (#348, #352). Then added the signature extension (#645), oracle attestations (#697 to #700) and oracleData binding (#719).
Wrote the guard's Certora specs (#787 to #791, #863). Certora audited the guard at the commit from my #728, and the fixes are in my #862. I committed that report and Nethermind's Safenet report (#895, #986).
Consensus and validators: the EpochRollover library (#468), decline tracking in the FROST coordinator (#389), a validator EIP-7702 account (#472), and validator-service features and tests (#213, #262, #277, #423). Explorer: the design system (#296) and the Aegis views (#981).
In safenet-utils, fixed the findings from ack3's review of the RealityVetoModule (#21) and committed the report (#22).
On the earlier cross-chain design, now deprecated (safenet-crosschain): the attestation library (#134) and its Certora verification (#170), the SafenetProtocolGuarantees contract (#261), CCIP messaging (#301) and Certora audit fixes (#443 to #446).
Safe guards: Guardrail, Fiducia and the Policy Engine
to present · safe-research
Three guards that check Safe transactions, built one after another. Guardrail allows DELEGATECALL only to allowlisted contracts, with a delay before a new one can be added. Fiducia delays new kinds of transactions unless a co-signer approves them. The Policy Engine requires every Safe transaction to satisfy a configured policy, however it was authorized. Guardrail and Fiducia are research code and are marked unaudited in their repositories. These guards are the subject of my DeFi Security Summit 2025 talk.
What I did
Started all three repositories and wrote most of their commits: Guardrail 40 of 41, Fiducia 16 of 16, Policy Engine 54 of 83 (merge commits excluded, attributed by author email, October 2026).
Wrote the Certora specification for Guardrail.
In the Policy Engine, made the policy-check path non-view with a reentrancy gate (#41) and added tests for the engine's security boundaries (#54).
Published the reports of Certora's two Policy Engine audits (#106): one of the core (August 2026) and one of the policies (September 2026).
Holders lock SAFE tokens in this contract and can unlock at any time. Each unlock waits out a cooldown period before it can be withdrawn, and withdraw(maxUnlocks) caps how many matured unlocks one call processes, so gas stays predictable. It is deployed on Ethereum mainnet.
What I did
Set up the repository (#1) and wrote the design spec and implementation notes (#28, #29, #93).
Implemented lock, unlock, withdraw and the balance views, and added end-to-end tests, a 100% coverage gate and gas profiling.
Wrote Certora rules for lock, unlock and withdraw, cooldown timestamp monotonicity, a no-front-running property, and constructor and zero-address state.
Fixed the audit findings (checks-effects-interactions ordering in lock, renounceOwnership disabled) and committed the Ackee and Certora reports.
I took about 2.7 KB off the deployed bytecode of the Safe singleton without changing its behavior. The changes went in as a series of small commits in PR #726 ("Reducing Safe Contract Code Size"), and the PR description lists what the main changes saved.
What I did
Made the assembly memory-safe so the contracts compile with viaIR and the optimizer (#711, #718), and moved checkSignatures from the CompatibilityFallbackHandler into Safe (#721).
In the contract-size series (#726): uint256 for v, the guard storage slot read directly, require replaced with if-and-revert, tighter OwnerManager and FallbackManager code, and reverts in assembly through a shared error helper, the largest single saving.
Used returndatasize() directly in assembly (#740).
Added the guard lookup during preModuleExecution, NatSpec for the pre- and post-execution guard checks, and tests to the module-guard return-data fix (#728).
Restored the Certora harness and updated the signature specs as the code changed, so verification kept passing.
to , follow-ups in 2026 · safe-fndn/safe-smart-account
Safe v1.5.0 is a release of the core contracts, audited by Certora and Ackee.
What I did
Added the ExtensibleFallbackHandler, originally written by the CoW Swap team, to the core repository and adapted its tests (#851). Added events for initializer and saltNonce (#849) and error propagation for internal transactions (#839).
Integrated Certora's formal verification of the migration contract into the repository and its CI (#832).
Fixed Certora findings G-01 to G-10 (gas) and I-02 and I-03 (informational) in January 2025, and made the audit changes for v1.4.1-2 (#812, #815).
Added the v1.4.1 and v1.5.0 deployment addresses, wrote the SafeToL2Setup deployment script (#823) and pinned the zkSync toolchain (#985, #986, #989).
Added deployments of the migration contracts for many chains to safe-deployments (34 merged PRs) and new-chain verification tooling to safe-singleton-factory.
Committed the audit reports: v1.4.1 library contracts, v1.5.0 by Certora and Ackee, and in 2026 the retroactive v1.3.0 reports by Certora (#1119) and Nethermind (#1120).
Safe's ERC-4337 (account abstraction) module connects a Safe to the ERC-4337 EntryPoint. I measured what user operations cost through bundlers and paymasters, and worked on the module's formal verification.
What I did
Added the onlySupportedEntryPoint modifier (#158), gas metering for deployment and token operations (#175), and hardcoded constants with tests (#198), November 2023 to January 2024.
Moved the gas-metering code into the examples folder (#299). Wrote gas-metering examples without a paymaster (#304), through Gelato using execTransaction (#326), and with Pimlico's VerifyingPaymaster, plus groundwork for an ERC-20 paymaster (#401).
Fixed the EntryPoint NatSpec (#216), wrote the signature-length formal verification rule (#464), and upgraded the Certora CLI (#475) and the Certora version the module runs on (#502).
Committed the v0.3.0 audit reports by Certora (#540) and Nethermind (#542).
This module lets a WebAuthn passkey own a Safe. Certora and Nethermind have audited it. I worked on its tests, credential creation, deployment and audit reports.
What I did
Ported the passkey tests from the ERC-4337 work (#335), updated the examples (#336) and added offchain passkey verification (#337).
Added passkey credential creation for Safe ownership (#356) and updated versions (#442).
Added Certora's formal verification specs for the module to the repository (#496).
Deployed through safe-singleton-factory (#477), added a custom deployment command (#497) and removed the FreshCryptoLib dependency (#532) once EIP-7951 made an onchain P-256 library unnecessary.
Committed the v0.2.1 audit reports by Certora (#476) and Nethermind (#544).
The Certora specs and harnesses live in the same repositories as the contracts they verify, and I update them when the code changes.
What I did
Safe core: restored the Certora harness and updated the signature specs during the contract-size work, integrated Certora's verification of the migration contract (#832), kept the Certora workflow current (#904) and pinned certora-cli in CI.
Token locking: wrote the rules for lock, unlock and withdraw, cooldown timestamp monotonicity and no front-running.
Modules: the signature-length rule for the ERC-4337 module (#464) and Certora upgrades (#475, #502); for the passkey module, added Certora's specs to the repository (#496).
Guardrail: wrote the Certora specification for its delegate allowlist (2025).
Safenet: wrote the specs for the staking contract (#111, #168) and the Safenet Guard (#787 to #791).
Kleros, 2020: nine published audit reports; the Blockhash RNG fallback range and escrow fee-recipient contracts; and the OmenFarming dashboard, which estimates PNK rewards for Omen liquidity providers from The Graph data.
QuillHash and CertiK, 2020: the Golden Goose and Super Token audit reports.
Sovryn, 2020 to 2021: the Development Fund, Escrow and LockedSOV contracts and audits of governance, staking and vesting (Sovryn blog, July 2021; commits). Origins, 2021 to 2022: launchpad contracts.
Nethermind, 2022 to 2023: 15+ audits across Solidity and Cairo.
Older experiments from 2018 and 2019 are on GitHub.
The Audits page collects the audit reports for the Safe work above, along with the audits I did myself. For questions about any of this work, email admin@remedcu.com.