Security analyzer for Safe (formerly Gnosis Safe) multisig wallets. Paste a Safe address, choose a network, and get an opinionated security review that highlights risky configurations.
Live app: safe.yaudit.dev
Further information about the analysis is available in this post: https://blog.yaudit.dev/multisig-security.
- Deep Safe introspection – batch RPC calls retrieve the Safe version, owner set, signing threshold, nonce, enabled modules, guard, and fallback handler.
- Security heuristics – twelve scored checks evaluate threshold quality, signing speed, singleton integrity, owner activity, EOA vs contract signers, optional modules, and more, plus four informational checks (chain configuration, transaction guard, fallback handler, emergency recovery) displayed separately.
- Signing speed analysis – measures average time between first and last confirmation across recent transactions to flag potential signer centralization.
- Singleton integrity – verifies that the Safe proxy delegates to an official, audited singleton (master copy) contract. An unofficial singleton is a critical failure even if the Safe was deployed by an official factory, since
createProxyWithNonce()accepts any singleton address. - Cross-chain awareness – detects deployments across Ethereum, Base, Arbitrum, Optimism, Polygon, BNB Chain, Sonic, and Katana, then warns when signers are reused between chains (EIP-712 domain separators prevent cross-chain signature replay, but shared keys still mean single-key compromise affects all chains).
- Fresh data sources – combines viem RPC calls, Safe Protocol Kit helpers, Safe Transaction Service APIs, GitHub release metadata, and Etherscan-style explorer APIs with rate limiting and RPC fallbacks.
- Human-friendly UX – color-coded score bar, hover tooltips that explain every check, and curated example Safes for each chain so you can demo the tool instantly.
- Next.js 15 App Router with React 19 and TypeScript
- viem for RPC reads and multicall batching
- @safe-global/protocol-kit for Safe-specific helpers
- Tailwind-style utility classes for styling (see
src/app/globals.css)
-
Prerequisites
- Node.js 20+
pnpm(preferred) ornpm/yarn
-
Install dependencies
pnpm install
Use
npm installoryarn installif you prefer those package managers. -
Environment variables Create
.env.localand set an explorer API key (shared across Etherscan-family explorers):NEXT_PUBLIC_ETHERSCAN_API_KEY=YourApiKeyToken
The app falls back to
YourApiKeyToken, but supplying a real key avoids tight rate limits when fetching historical tx data. -
Run the dev server
pnpm dev
Visit
http://localhost:3000, choose a chain, and load a Safe address (or pick one from the example list). -
Production build
pnpm build pnpm start
All functionality is exposed through the built-in API route:
GET /api/[chainId]/[address]
chainId: numeric ID fromSUPPORTED_CHAINS(1, 10, 56, 137, 146, 8453, 42161, 747474).address: Safe contract address (checksum format preferred).
Example request (hosted):
curl https://safe.yaudit.dev/api/1/0x73b047fe6337183A454c5217241D780a932777bD/Or against a local dev server:
curl http://localhost:3000/api/1/0x73b047fe6337183A454c5217241D780a932777bD/Response payload:
safeInfo: version, threshold, owners, nonce, modules, guard, fallback handler.securityScore: aggregate score (0–100) using the Cumulative Risk Penalty algorithm, qualitative rating (Low Risk/Medium Risk/High Risk), per-check penalty breakdown, and critical issue count.checks: array of sixteen security checks, each withstatus(success,warning,error) and a descriptive message.
This makes it easy to plug the analyzer into monitoring scripts or dashboards without scraping the UI.
For feature requests or bug reports, DM @engn33r on X or open an issue/PR in this repo.
