finds.dev← search

// the find

transmissions11/solmate

★ 4,275 · Solidity · NOASSERTION · updated Jul 2025

Modern, opinionated, and gas optimized building blocks for smart contract development.

Solmate is a gas-optimized alternative to OpenZeppelin for Solidity smart contract primitives: ERC20/721/1155/4626, auth patterns, fixed-point math, and storage utilities. It targets developers who understand what they're doing and want leaner bytecode over hand-holding. It's officially soft-deprecated in favor of Solady.

- Genuinely saves gas compared to OpenZeppelin equivalents — the ERC20 and ERC721 implementations strip unnecessary checks and use assembly where it matters, which shows up in real deployment and interaction costs.

- SafeTransferLib handles the notorious missing-return-value tokens (USDT, etc.) correctly, and the weird-token test suite actually covers these edge cases with dedicated mock contracts.

- SSTORE2 and CREATE3 are legitimately useful utilities not found in OZ — SSTORE2 in particular is a clever trick for storing large blobs cheaply as contract bytecode.

- Full Foundry test coverage with a custom DSTestPlus that extends the base test helpers, making it easy to read exactly what invariants each contract is expected to uphold.

- Explicitly soft-deprecated — the README points you to Solady, which has superseded it with more aggressive assembly optimization and active maintenance. Starting a new project on solmate is picking a dead-end dependency.

- The safety warnings are not marketing humility — solmate genuinely omits checks OZ includes (e.g., ERC721 doesn't validate transfer recipients by default in all paths). If you inherit without reading every line, you will introduce bugs.

- Only one audit (v6, Fixed-Point Solutions) covering a specific release. The audit PDF is in the repo but scope is limited, and the project hasn't been re-audited after subsequent changes.

- ERC4626 implementation is minimal to the point of missing some edge cases around rounding direction that were later formalized in ERC4626 best practices — this has bitten vault implementations built on top of it.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →