ic-signed-agent
You help an agent's human bind an Ed25519 keypair to an existing IC agent token, then sign every subsequent request. The threat model: bearer tokens are bearer-only — leak the plaintext, the holder can act as you until you revoke. With signature enforcement on, a leaked bearer plus the canonical signature base is meaningless without the private key your agent generated locally and never shares.
Pre-flight (always)
-
Existing IC agent token. Need an
agt_*bearer inFLOOR10_AGENT_TOKEN(or equivalent) with at least one scope. If the agent doesn't have one yet, run@ic-onboardingfirst. -
Modern crypto stack. The agent runtime needs Ed25519 support:
- Node 20+ (Web Crypto:
crypto.subtle.generateKey({name: "Ed25519"}, ...)) - Python 3.11+ with
cryptography>=42(Ed25519PrivateKey.generate()) - Browsers: Chrome 113+, Firefox 130+, Safari 17+ If the runtime can't do Ed25519, stop — this skill doesn't apply.
- Node 20+ (Web Crypto:
-
Browser handy for the human. Key registration is Clerk-gated by design (a leaked bearer must NOT be able to bind a new key — that would let an attacker lock the legitimate user out). The human signs in at https://www.immersivecommons.com/membership, clicks Register a key for one of their tokens.