Skip to main content

The rule that keeps the core chain-agnostic

invariants/universal/* may only ever import core/types.ts and invariants/shared.ts — never chain-adapters/algorand/* directly. Only invariants/algorand/* is allowed to import Algorand-specific code. See Architecture for the full reasoning and how a second chain would extend this layout.

Understand how these pieces execute together