Pre-production · unaudited · testnet-only. The wizard generates a starting point, not a finished product: the output compiles and passes portrait check — a structural gate, not an audit and not a security guarantee.

Covenant wizard

Pick a pattern, turn on the invariants you want enforced, and the wizard writes you a .portrait file from the same templates that ship with portrait new. Every combination it can produce has been run through the real portrait check. It's a place to start, not a finished covenant.

These are a curated handful, not the whole catalogue. The full library has 35 covenant patterns, 10 of them cross-layer (vProg) — see all of them.

1. Pattern

2. Features

Each toggle maps to a real named invariant or guard that portrait check enforces structurally. Only combinations that make sense for the pattern are offered.

3. Name

Letters, digits and underscores; must start with a letter. Invalid input falls back to the pattern default.

Generated .portrait source

This is a starting point — verify it yourself

The generated file is pre-production, unaudited, and testnet-only. Passing portrait check means the declared invariants match the required structural shapes — it does not mean the covenant is correct for your needs.

# save the generated file, then from the Portrait workspace:
portrait check MyCovenant.portrait    # parse + typed structural invariant gate
portrait prove MyCovenant.portrait    # invariant proof pass (reports what is and is not proven)
portrait ship  MyCovenant.portrait    # engrave + emit the SilverScript covenant artifacts

Honest scope. Named invariants such as temporal_guard, spending_cap, bounded_supply and multisig_threshold are structural shape matches on the requires guards — they reject edits that drop the guard, but they are not SMT proofs, not wall-clock guarantees, and not evidence the design is sound. Review the generated source and test on testnet before relying on anything here.