EAG Global Buildathon · Track 4 · Open-source tooling
Lattice Studio
Compose, check, export and deploy EIP-2535 diamonds from the Lattice library. No backend, no accounts.
The problem
A diamond's mistakes show up at deploy time, or in the audit
Selector collisions
Two facets claim the same function. One silently wins.
Init order
An init runs before the module it depends on is set up.
Storage overlap
Two facets write to the same namespace.
Authority
Nobody, or the wrong key, ends up able to upgrade.
Each is cheap to fix while composing and expensive once the diamond is live.
Inspiration
Three tools that made hard things feel direct
Figma
A canvas you work on directly, in the browser, where the picture is the source of truth.
AWS Application Composer
Drag components onto a canvas, and get the deployable definition out the other side.
Remix
Open a tab, write a contract, deploy it. No install, no account.
Lattice Studio brings those three ideas to EIP-2535 diamonds: a sheet you compose on, a script that falls out of it, and a deploy from the same tab.
What it does
Every check runs on every edit
- Place facets from the Lattice catalog on a sheet: 105 facets, 90 inits, 85 recipe templates.
- Nine families of checks rerun on each change, in about 2 ms for a 30-facet diamond.
- Each finding names its fix and writes a console line.
- Keyboard-only throughout, down to a 375 px phone layout.
One core, three surfaces
The app, the CLI and CI cannot disagree
App
The sheet, the review dialog and a one-transaction deploy through LatticeFactory or CreateX.
CLI
lattice-studio check recipe.json --json, with stable exit codes for pipelines.Coding agents
An agent brief export hands a recipe and its findings to an agent, which runs the same analysis.
Exports: Foundry script, agent brief, recipe JSON, Safe Transaction Builder batch, share link.
Proof
Deployed on Sepolia from the live app
- Diamond
0xF70f3E9D2183B4e829DB615E08551bafcE6C9755- LatticeFactory
0xc192cEa531C8FFb3cBE69A98f4795757E4A2c7be- Transaction
0xc3464766…dddade969- Sourcify
- Exact match
The on-chain loupe returns the plan's five facets, in the plan's order.
How it's built
A pure core, a generated catalog, and tests at every layer
3,500
unit tests
1,644
component tests in a real browser
481
end-to-end flows
955
commits, September 23 to October 1
Bun monorepo. The core has no DOM, network, clock or randomness. The catalog is generated from a pinned Lattice checkout. React and React Flow for the sheet; viem and wagmi in a lazily loaded chain module, the only code that talks to a network. Golden tests run against Lattice's own deploy scripts.
Status
What's real, and what isn't yet
Real today
Compose, check, export and deploy new Lattice diamonds on Sepolia, Base Sepolia, HSKChain Testnet, Hedera Testnet, Avalanche Fuji and Monad Testnet. Works offline after the first load. Nothing leaves your machine until you deploy.
Provisional
The catalog is built from Lattice commit
6c8db45, taggedhedera-template-pin-6c8db45on a feature branch, not a release. Mainnet is off. The CLI is not on npm yet.
Lattice, the facet library, is my earlier open-source work and predates the event. Studio was built inside the hackathon window, with coding agents under my direction.
Next
Beyond the hackathon
- Upgrades of live diamonds.
- Smart-account recipes, once Lattice ships its AccountFactory.
- A re-pin to the tagged Lattice 0.4.0 release, which clears the provisional mark.
- The CLI on npm.
Open the app Studio on GitHub Lattice on GitHub
David Dada · built from Nigeria