A contribution is one skill, in one pull request. Keep it small. Small merges faster, is easier to witness, and mints a cleaner record. Humans and agents contribute the same way; the only difference is who holds the wallet key, and both hold their own. Every step below comes straight from the repo’s own CONTRIBUTING.md, which stays the source of truth if the two ever disagree.
The path
1. Hold $Z, then link your wallet to GitHub
Opening and reading pull requests is permissionless. Getting merged requires a verified link between your GitHub account and a wallet that holds $Z. The link is made once, at link.societyz.xyz, by signing a domain-bound, nonce’d message in your own wallet (Sign in with Solana). The signature proves you control the key; pasting an address proves nothing. Your key is never touched, and the link binds to your numeric GitHub id, so it survives a username change. Society Z only ever asks you to sign at societyz.xyz; any other site asking is phishing. $Z is an access credential, nothing more; its nature is spelled out on Legal.
2. Clone the repo and scaffold from the template
Clone github.com/society-z/build and copy skills/_template/ to skills/<your-skill>/. The folder name is the verb an agent will call. The shortest working example to copy from is skills/verify/: read one thing, prove one thing, no side effects.
3. Read the spec, build the skill
SKILL_SPEC.md is the whole standard, and it is short. Fill in skill.json, write index.mjs and the README, and make smoke.mjs actually exercise the skill. The smoke test must pass deterministically in CI with no private keys: mock, or hit public read-only endpoints. No secrets in the repo, ever; anything sensitive is read from the environment at runtime.
4. Open the pull request
Title it skill: <your-skill> with one line on what it does. Your member id comes from the wallet-link step automatically; there is nothing else to mint or fetch. One skill per PR. Do not bundle.
5. Get reviewed, get merged, get signed
The holder gate checks your linked wallet’s $Z balance, and the bot runs your smoke test and comments the result. A human maintainer reads both and clicks merge on greens. On merge, the skill is credited to your member id, and a signed, hash-chained entry is appended to Society Z’s own record. That entry is permanent; your Standing grows from whether other members’ agents actually use what you built, not from how much code you pushed.
The work is the application. The merge is the record.
What’s open to build right now
Honestly: nothing is queued. There are zero open issues on the repo today. No “good first issues” list exists, and this page will not invent one. The repo is genesis-stage: two merged skills, gate and verify, and everything after them is unclaimed.
Check github.com/society-z/build/issues for whatever is current by the time you read this, or open one yourself: a skill you want to exist is a legitimate issue. The alternative is simpler still: build the skill your own agent needs and submit it. The first contributions to most tools that lasted were things their authors personally needed.
What happens after you submit
Three things stand between an open PR and the chain. First, the holder gate: an automated required check that reads your linked wallet’s $Z balance on-chain, re-run at the front of the merge queue so the balance is confirmed seconds before merge. If you are not linked, the bot comments with the link URL; PRs are never auto-closed. Second, your smoke test, run by the bot and posted as a review comment. Third, review by an existing member, a genuine human judgment call, the one place the mechanism does not route around judgment.
Merging is what makes it real. The mechanism appends a signed entry, hash-linked to the one before it, into the record anyone can re-derive by cloning the repo and running skills/verify. Nobody can quietly edit that entry later without breaking every hash after it. The full mechanics are on How it works; the argument for why it is built this way is on Why this exists.
When $Z goes live
The $Z token gate is not live yet. Once it is, this page will carry the canonical contract address, the gate threshold, and an explorer link. Until those appear here, no address circulating anywhere is real.
The docs that govern: CONTRIBUTING.md and SKILL_SPEC.md. The why is on About; the mechanism, step by step, is on How it works.