Lattice
Lattice is a Solidity library of EIP-2535 Diamond modules. Most modules ship as a stateless facet plus a library that keeps its state in one ERC-7201 namespace, so many modules can be cut into one Diamond proxy without storage collisions. The contracts are unaudited; evaluate them with local or testnet assets.
Quickstart
Install Foundry, then build and test from a clean checkout:
git clone --recurse-submodules https://github.com/dadadave80/lattice.git
cd lattice
forge build
forge test --match-contract 'GovernedVault(Upgrade)?Test' -vvTo use Lattice as a dependency, install a release tag with forge install dadadave80/lattice@vX.Y.Z; the
README install steps cover remappings and pinning.
Where to go next
- Compose your own Diamond: build a self-governed ERC-4626 vault, with a real-proxy Foundry test and an Anvil walkthrough.
- Selector compatibility: which facets can share a Diamond, and which selectors one module overrides in another.
- Storage-safety Action: check your own ERC-7201 layouts append-only in CI.
- Hedera: what works on Hedera, and the Foundry exception its relay needs.
- Grant evidence: milestone evidence for the ENS and Circle Arc grants.
The API reference in the sidebar is generated by forge doc from the NatSpec in src/, one folder at a
time. Each page links its source file at the commit the site was built from.
Build this site
make doc # forge doc + Vocs build into docs/site/dist/public, then a link check
make doc-serve # the same pages on a local Vocs dev serverBoth need Node.js 22.15 or later; the Vocs toolchain is pinned in docs/site/package-lock.json.