Skip to content
Lattice

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' -vv

To 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 server

Both need Node.js 22.15 or later; the Vocs toolchain is pinned in docs/site/package-lock.json.