Skip to Content
Constellation as Code3. Add your contracts

3. Add your contracts

A role’s permissions are expressed against specific contracts. Before you can write allow.eth.weth.deposit(...), the allow kit has to know what weth is. You tell it in zodiac.config.ts.

List the contracts you want to permission

Add each contract address under its chain prefix. You can nest related contracts under a label to keep things organised:

// zodiac.config.ts export default defineConfig({ contracts: { eth: { weth: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', uniswap: { positions_nft: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88', }, }, }, })

The key you choose (weth, uniswap.positions_nft) becomes the path you use in permissions later: allow.eth.weth.*, allow.eth.uniswap.positions_nft.*.

Regenerate the allow kit

Pull again so Zodiac fetches the ABIs for those contracts and regenerates the typed allow kit:

bun pull

VS Code: if allow.eth.weth.* doesn’t autocomplete after the pull, restart the TypeScript server — Cmd+Shift+P → “TypeScript: Restart TS Server”.

If a contract isn’t verified on the block explorer, the CLI can’t fetch its ABI. It prints the path where you should drop the ABI JSON by hand, then re-run bun pull-contracts.

With your contracts known to the allow kit, you can describe the account graph itself → Define the constellation.

Last updated on