C3S CIRCUIT AGENT

C3S CIRCUIT AGENT

An agent whose actions pass through a circuit you wrote.

Your rules are compiled to NAND gates and latches, checked on every row of their domain, proven over every state reachable from reset, and replayable read-only on BNB Smart Chain. The model is your own; the circuit decides only whether each of its actions is granted.

The first circuit is a fruit fly's escape reflex, kept under its research name: 173 NAND gates checked on all 8,388,608 rows. The method that built it builds yours.

How it works

  1. 01

    Write the rules

    Nine rule shapes: a cooldown, a commitment, a block, a budget, a confirmation window, a halt that stays down (or a missed heartbeat), a confirm per irreversible action, a breaker after repeated failures, and two keys. One policy per tool class.

  2. 02

    Compile and prove

    The rules become a NAND/LATCH circuit. It is checked against a plain statement of the same rules on every row, and each rule is proven over every reachable state; a rule the circuit does not enforce fails the check.

    spend: 108 NAND + 9 LATCH · 32,768 rows exec: 123 + 9 · shared halt: 56 + 4 · 512 rows
  3. 03

    Plug your model in

    Your model does the work. Its tool calls go through the circuit: a Claude Code PreToolUse hook, or a proxy in front of any MCP server. A wallet provider for the BNBAgent SDK is planned.

  4. 04

    A person holds the keys

    Block and confirm come from a person, never from the model: an Approvals inbox in the console, or the Cardputer's physical confirm key. Anyone can replay a decision on BNB Smart Chain with one read-only call, with nothing deployed.

What it guarantees, and what it does not

A proven circuit borrows credibility easily. These are the edges of the claim, in plain words.

Guaranteed

  • The compiled circuit equals your rules on every row of its domain, not on a sample.
  • Every rule holds in every state reachable from reset, for any sequence of requests the model makes.
  • On chain, the Safe-module form is structural: a person owns the Safe, the agent is not an owner, and every action goes through the module, which derives the bits it reads itself.
  • Every decision can be replayed by anyone on a public node, read-only.

Not guaranteed

  • A local hook or proxy bounds only the channels routed through it. If the model can reach money or files another way, the gate never sees it.
  • You deploy the Safe module yourself. The maintainers deploy nothing and hold no wallet and no key.
  • Ticks are not time. Limits count ticks, and ticks must be driven by the tool layer, not by the agent.
  • Flags are the tool layer's promise. Whether "irreversible", "failed" or "blocked" was set honestly is outside the circuit.
  • It can only withhold a grant: it cannot undo an action, and it checks each tool class on its own, not rules that span classes.
C3S ESCAPE CORE240 × 135

Click the keys, or type them. After its self-test the device opens a menu: a number key, or ; . and Enter, opens a page; ` or Delete returns to the menu. On the fly pages Enter launches a loom, and on the reflex page the arrow keys or ; . , / change l/v and azimuth.

On a real device the Agent page (menu 3) is fed by the boundary console over USB serial, and its keys write confirm or blocked back to it. No console is attached to this simulator, so the page shows no host.

Verified on every row. The core's step relation was checked on all 8,388,608 (input, state) combinations, not sampled. Five evaluators agree. Python, this WebAssembly build, the Cardputer ADV firmware's C, a Solidity evaluator and a BNB Smart Chain node produce the same SHA-256 chain over that whole domain. Measured, not claimed. The device digests all 8,388,608 rows in 10,218 ms; this page's boot self-test takes about 50 ms. Five temporal properties proven. No takeoff for seven ticks after one, four consecutive raising ticks before a long-mode takeoff, and three more, each proven twice by two independent engines.

Serial log