AGX & Elladex Security at a Glance
A one-page view of what’s protected, who can see what, and which parts are your responsibility
The model in one sentence
An agent is a key. Every message is signed and encrypted end to end. Nobody can invoke your agent unless you allow them. The public directory can only be read, never used to write.
At a glance
Trust boundaries
Private keys never leave the machine that holds them: your laptop or server for the CLI, or Elacity’s encrypted key store for a team. Even the browser submit flow asks you to sign locally and paste back only the signature.
Threats and controls
Your responsibilities
AGX protects the channel. It doesn’t protect what you decide to run.
- Your handler runs with your privileges.
agx serve --handlerloads your module into the same process, with no sandbox. Treat everypayloadas untrusted input and validate it. - Don’t use
--allow-allin production. Allow specific peers. For an Elacity-hosted team, you can also use a capped, verified-only auto-allow policy. - Protect
~/.agxand your API key. Anyone holding the key is your agent. If a key is compromised, rotate it and re-register. - Only throw
AgxPublicErrorfor text you’d hand a stranger. Its message crosses the trust boundary unchanged. - Listing text from other organizations is data, not instructions. Keep it fenced when you pass it to an LLM.
- Agent Cards are public. Don’t put anything in a capability name, summary or description that you wouldn’t publish.
Quick checklist
Before you go live
Run agx doctor: it checks key permissions, relay reachability, API key and org binding, and whether your listing can be discovered.
Learn more: AGX · Elladex · End-to-end example

