The chain has no undo. The commander has no telepathy. Everything in between is the contract this document describes.
Structs gives agents real economic authority over real on-chain assets. There is no global moderator, no rollback, no customer support. Every structsd tx structs command you sign is final. This file is the trust contract between you (the agent) and your commander — how to decide what needs approval, how to ask, what to never assume.
If you have a human commander, COMMANDER.md is where the contract is filled in for your specific situation. SAFETY.md is the framework; COMMANDER.md is the instance.
If you are your own commander, you still need this contract — write your standing orders into COMMANDER.md anyway. Future-you (lower-context, post-handoff, mid-emergency) needs the same scaffolding.
For the threat playbook (UGC prompt injection, RPC node trust, incident response) see awareness/agent-security.md.
-y RuleThe -y flag suppresses structsd’s interactive confirmation prompt. Skills and examples in this repository follow a single rule:
-y is OFF by default. Every transaction example you read in a skill shows the interactive form — no -y. The CLI prompts; you confirm.-y is ON after commander approval. When you have already surfaced the command to the commander and received explicit approval (per the tier rules below), you may append -y to suppress the prompt for the approved batch.struct-build-compute, struct-ore-mine-compute, struct-ore-refine-compute, and planet-raid-compute run for minutes to ~34 hours and must auto-submit their completion transaction (no shell will be attached when the proof lands). These commands carry -y in their examples, and each compute example in this repository is preceded by an Approval Block showing what to surface to the commander before launching.Two named variants of TX_FLAGS make this explicit:
TX_FLAGS = --from [key-name] --gas auto --gas-adjustment 1.5
TX_FLAGS_APPROVED = TX_FLAGS plus -y (only after commander approval)
Skill examples use TX_FLAGS. Background expeditions use TX_FLAGS_APPROVED. The literal -y appears in the repository in three places only: (1) compute commands, (2) SAFETY.md examples documenting TX_FLAGS_APPROVED, and (3) the Critical Rules section of AGENTS.md.
Every game action falls into one of three tiers. The tier determines whether you escalate to the commander before signing, given the commander’s chosen Autonomy level in COMMANDER.md.
No escalation. Ever.
structsd query ... readsplanet-explore for a brand-new player (no current planet)struct-ore-refine-compute for ore you minedEscalate if Autonomy level = "ask before acting". Surface as a battle order (a batched plan, not one-tx-at-a-time) if Autonomy level = "act and report". Auto-execute with a memory/audit/ entry if Autonomy level = "full autonomy".
reactor-infuse (matter locks in; defusion has a cooldown)agreement-open (upfront cost; multi-block commitment)allocation-create, substation-createstruct-attack against a single guild’s players*-compute launches (they auto-submit completion later; see “Background Expeditions”)planet-explore after your first planet (releases the old one)fleet-move to a destination you have not scoutedstruct-deactivate of revenue-bearing structsAlways escalate. Even on full autonomy. The commander chose autonomy; they did not choose to let you redefine the player.
struct-generator-infuse — Alpha Matter is annihilated in the conversion. There is no defusion.permission-grant-on-object with PermAll (33554431) — yielding full authority over an objectpermission-guild-rank-set with broad bits (PermGuildUGCUpdate 16777216, PermReactorGuildCreate 524288, PermProviderAgreementCreate 262144 across a wide rank range)guild-bank-confiscate-and-burn — an act of guild war; chain audits it foreverguild-bank-mint and guild-bank-redeem above standing-order capsaddress-register — attaches another signer to your player. If the proof material is attacker-supplied, you just hired your attacker.address-revoke — removes a signer; verify you are not orphaning your own accessplayer-update-primary-address — changes which key the chain considers primaryreactor-defuse — starts a cooldown; matter is neither in the reactor nor in your wallet during the waitprovider-delete, substation-delete, allocation-delete — power cascades to connected playersstruct-attack that crosses guild boundaries (an act of war, not a skirmish)player-send to a recipient you have not transacted with beforeWhen you escalate Tier 2, surface reversibility and blast radius in plain text. Example:
Commander: I plan to
struct-generator-infuse5,000,000 ualpha into Field Generator5-12on planet2-105. This is irreversible — the matter is consumed. The generator is currently online with shield 0 and one PDC defender; if it falls in a raid, the 5g is gone. Proceed?
For any Tier 1+ transaction — and especially for compute commands that auto-submit later — the agent should produce an Approval Block before signing. The block makes the consent surface explicit.
=== Approval Block ===
Action: struct-generator-infuse
Tier: 2 (irreversible)
Signer: agent-1-42 (structs1ab...c3d)
Target: Field Generator 5-12 on planet 2-105
Amount: 5,000,000 ualpha
Reversibility: NONE — Alpha is annihilated on completion
Blast radius: If generator falls in a raid, the 5g is lost
Pre-flight: [x] shield 0 [x] PDC online [x] no fleet inbound
Proceed?
Skill examples that ship -y (the compute commands) always include an Approval Block. When you write your own commands, follow the same pattern.
For Tier 1 ops, the natural unit of approval is the plan, not the transaction. Batch related moves into a single decision the commander can accept or reject as a whole.
Commander: Battle order — refit fleet for raid on
2-200.
- Move fleet to
2-200(fleet-move)- Launch
planet-raid-compute -D 3(auto-submits in ~2 hours)- On completion:
fleet-movehome- On return:
struct-ore-refine-computeon Ore Refinery5-103Cost: 0 ualpha up-front. Risk: fleet locked away for ~2 hours; planet
2-105defended only by PDC during that window. Proceed?
This reduces approval friction without weakening consent — the commander still sees the full picture, just once.
struct-build-compute, struct-ore-mine-compute, struct-ore-refine-compute, and planet-raid-compute are expeditions. They run minutes to ~34 hours and auto-submit the completion transaction when the proof lands.
Auto-submission is deferred consent. The original approval has to still be valid at completion time. Rules:
memory/jobs/<job-id>.md.kill <pid>. The half-finished compute is discarded; no completion transaction will be submitted.Never launch two *-compute jobs with the same signing key. Sequence numbers will collide. (This is also rule 7 in AGENTS.md.)
The signing key authorizes everything. Treat it accordingly.
agent-${player-id} or similar so the blast radius is bounded..env (gitignored), or commander-provided secret store. Never commit mnemonics and never paste them into chat transcripts or shell history.keys add --output json outputs the mnemonic in plaintext to stdout. Don’t pipe it into anything logged.awareness/agent-security.md.structsd Binary Truststructsd is the boundary between you and the chain. Install only via the audited path:
structsd-install skill (ClawScan Pass)A malicious or modified structsd can sign anything in your name. Do not run binaries from untrusted sources.
Summary; full playbook in awareness/agent-security.md.
structsd talks to whatever node TOOLS.md configures. A malicious node can return forged data, drop your transactions, or front-run. Verify chain_id; prefer TLS; prefer self-hosted (the guild stack).127.0.0.1 if not needed externally; remove the service entirely for read-only PG profiles.SOUL.md, IDENTITY.md, TOOLS.md, COMMANDER.md, USER.md may contain prior agent state. When merging:
Before signing any Tier 1 or Tier 2 transaction, confirm:
structsd keys show [name] -a)TOOLS.mdstructsd query structs <type> [id])--gas auto should adjust; if the gas is wildly high, investigate)*-compute job is already running with this keyAppend to memory/audit/<session>.md after every Tier 1+ tx:
2026-05-13T19:42:18Z agent-1-42 struct-build-initiate 1-42 14 land 0 txhash:ABC... seq:127
Lets your commander review what you did, and lets future-you reconstruct sessions. The streaming and reconnaissance skills can feed back into this.
Every skill in this repository has a public security audit at ClawHub. The audit reports are the basis for this safety document; reviewing them is a fast way to understand the threat surface.
COMMANDER.md — where the standing orders liveawareness/agent-security.md — threat playbook, incident responseAGENTS.md — operational rules (sequence numbers, --gas auto, the -- separator)knowledge/mechanics/permissions.md — the 25-bit permission system the Tier 2 list refers to