Circuit creation
Circuit creation is the process by which a user’s identity is turned into a configuration that can later be compiled into a circuit binary. This page describes that process at a high level — no code, only the concepts and flow. The goal is to give developers and evaluators a clear picture of how identity is created and what is (and is not) stored or transmitted.
Secret creation
During onboarding (e.g. at join.eni6ma.net), the user enters “Dark Room” mode — a high-contrast, distraction-free environment — and creates one or more secret words or phrases. These are not passwords in the traditional sense: they are never sent to a server for comparison or stored in a database. They become the raw material that is later embedded, in encrypted form, into the circuit binary. The user can configure multiple secrets (in principle an unlimited number); the circuit can use any one of them for any given ceremony. This multiplicity helps defeat correlation and frequency analysis: an observer cannot assume the same secret is used every time.
Mapping establishment
The user establishes a private mapping between two sets of six elements. The default is colors (Blue, Yellow, Red, White, Green, Black) mapped to directions (Up, Down, Left, Right, Forward, Back). The mapping is a bijection: each color is assigned exactly one direction, and each direction is used exactly once. There are 6! = 720 possible mappings; the user’s choice is the “cognitive key” that lives in their mind and is later embedded in the circuit. The mapping can be generalized to other themes (e.g. shapes to family members, patterns to places) so long as there are six elements on each side. This mapping is what makes the observable transcript (the sequence of bearings) structurally disjoint from the challenge (which zone had which character): without the private map, an observer cannot align responses to zones and gains zero information from watching the ceremony.
Entropy seeding
The system generates a pool of cryptographic randomness (entropy) that will be used to ensure every challenge is unique. This entropy is embedded into the circuit during compilation. Even with the same secrets and mapping, each authentication session uses different geometry because the entropy pool is drawn from for each challenge. The entropy meter during onboarding encourages the user to reach a “sovereign threshold” (e.g. 256 bits of Shannon entropy) for their secrets so that the resulting identity has sufficient combinatorial strength.
Configuration and handoff to compilation
Secrets, mapping, and entropy-related parameters are combined into a circuit configuration — a blueprint that defines how the circuit will operate. This configuration is produced in the user’s environment (browser or local tooling). It is then sent to the compiler service for compilation; the compiler never retains the configuration after the binary is built and delivered. So the “creation” phase is entirely about defining the configuration; the actual production of the binary is the compilation phase, described in Circuit compilation. No server stores the user’s secrets or mapping in usable form; the only place identity exists in complete form is inside the compiled circuit binary that the user receives.
Source of truth
This narrative is drawn from the product and system-design documentation (GUIDE.md, product.MD §4). For implementation details and UX flows, see the onboarding wizard and DOCS/system-design.