1. Set up the project
Start from the Zodiac Constellation Template .
It ships the project layout, the zodiac CLI wired up through Bun scripts, and
example roles you’ll replace with your own.
Create your project
Use the template directly from GitHub — click Use this template on the repo, or clone it:
git clone https://github.com/gnosisguild/zodiac-constellation-template.git
cd zodiac-constellation-templateInstall dependencies
The template runs on Bun . If you don’t have it yet:
curl -fsSL https://bun.sh/install | bashThen install:
bun installThe project layout
A few files and folders matter for the rest of this tutorial:
.
├── constellation/
│ ├── index.ts # entrypoint — what gets pushed onchain
│ ├── allowances/ # reusable Roles-allowance objects
│ └── roles/<role>/ # one folder per role
│ ├── index.ts
│ ├── members.ts # addresses allowed to assume the role
│ └── permissions.ts # what the role can call
├── zodiac.config.ts # contracts the `allow` kit should know about
├── abis/ # generated by `bun pull`
├── .zodiac/ # generated codegen (git-ignored)
└── .env # ZODIAC_API_KEY for this directory (git-ignored)constellation/index.ts is the heart of the project: only the nodes you
export from it end up onchain. Everything else is supporting structure.
Next, authorize this directory against your Zodiac workspace and pull down your org data → Authorize & pull.
Last updated on