Agent Sovereign Stack
Analysis
This skill mostly matches its stated blockchain-and-memory purpose, but it can upload sensitive agent/user memory to external decentralized storage and use an ETH private key for on-chain actions.
Findings (6)
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
Checks for instructions or behavior that redirect the agent, misuse tools, execute unexpected code, cascade across systems, exploit user trust, or continue outside the intended task.
Upload, retrieve, and manage encrypted agent memories ... Phase 2 will add ChaCha20-Poly1305 encryption. ... "content": base64.b64encode(data_bytes).decode() ... AGENT_ID = "rick-cortex-0"
The helper text suggests encrypted memories while the implementation only base64-encodes content, and it hardcodes an author/default agent identity for uploads.
Source: unknown; Homepage: none; Required binaries: none; Required env vars: none; Primary credential: none
The registry metadata does not declare the provenance, binaries, environment variables, or private-key credential that the SKILL.md and scripts rely on.
subprocess.run(cmd, capture_output=True, text=True, env=env, timeout=30) ... subprocess.run(["forge", "create", str(contract_src) + ":AgentTreasury", ... "--broadcast"], ...)
The script runs local blockchain CLI tools to send transactions and deploy contracts; this is purpose-aligned but important for users to notice.
Checks whether tool use, credentials, dependencies, identity, account access, or inter-agent boundaries are broader than the stated purpose.
"send", registry, "registerAgent()", "--rpc-url", rpc, "--private-key", private_key, "--chain", chain_id
The script directly uses a raw ETH private key to sign and send blockchain transactions for registration and memory updates.
Checks for exposed credentials, poisoned memory or context, unclear communication boundaries, or sensitive data that could leave the user's control.
for fname in ["SOUL.md", "MEMORY.md", "IDENTITY.md", "USER.md"]: ... files[fname] = fpath.read_text() ... f"{MEMORY_STORE_URL}/api/v1/agent/{agent_id}/memory"The onboarding script reads identity, memory, and user files from the workspace and uploads them to a remote memory endpoint, creating persistent external memory from potentially private context.
_api("PUT", f"/api/v1/agent/{to_agent}/memory", ...) ... _api("GET", f"/api/v1/agent/{agent_id}/memory/history")The communication helper can write to another agent's mailbox and read an agent history by ID, with no visible authentication, encryption, or signature verification in the artifact.
