1Claw Security Architecture Whitepaper
Version: 1.0
Date: August 2026
Classification: Public
Section A — Current Security Model
1. Threat Model
1Claw operates a split-trust architecture with two security boundaries:
| Boundary | What runs inside | Trust assumption |
|---|---|---|
| HSM boundary (GCP Cloud KMS, FIPS 140-2 Level 3) | Key wrapping, DEK generation, KEK management | Google cannot extract keys; customers verify via FIPS certification |
| TEE boundary (AMD SEV-SNP via GKE Confidential Computing) | LLM traffic inspection, transaction signing, secret redaction, Shamir reconstruction | Google/hypervisor cannot read enclave memory; customers verify via remote attestation |
Attack surface partitioning:
- Outside both boundaries: API handlers, auth middleware, policy evaluation, DB queries. Protected by standard application security (rate limiting, input validation, RBAC).
- Inside HSM only: KEK operations, DEK wrap/unwrap. Protected by GCP KMS access controls + HSM hardware.
- Inside TEE only: Plaintext secrets during redaction, signing key material during signing, LLM request/response content. Protected by AMD SEV-SNP memory encryption + attestation.
2. Cryptographic Key Hierarchy
Organization KEK (GCP KMS / Shamir 2-of-3 across HSMs)
└── Per-secret DEK (AES-256-GCM, unique per secret version)
└── Secret value (encrypted at rest)
- Per-org shared KEK: All vaults in an org share a single KMS CryptoKey (or Shamir-split org KEK on Team+). Envelope encryption isolation at the DEK level (unique per secret, AAD-bound to
vault_id:path). - KEK protection level: HSM for paid tiers (FIPS 140-2 Level 3), SOFTWARE for free tier.
- Shamir custody (Team+ org KEK; optional vault DEK MPC): Shamir 2-of-3 splits encryption keys (org KEK or per-vault DEK shares) across GCP KMS + AWS KMS (+ Azure for vault-level
2of3_multi_hsm; optional client share on Business/Enterprise org KEK). Reconstruction of org KEK material for sensitive operations is intended inside the Shroud TEE only; vault-level DEK reconstruction occurs in the Vault API during authorized secret access.
Migration 203 and domain/shamir_kek.rs define org-level Shamir KEK custody modes. Vault MPC (2of2_client_custody, 2of3_multi_hsm, 2of3_client_custody) on individual vaults is Live via POST /v1/vaults/{id}/mpc. Org-wide Shamir KEK orchestration beyond storage/orchestration stubs is not fully wired to production key paths yet — treat as in progress unless your deployment explicitly enables it.
- Not threshold transaction signing: Agent and treasury signing keys use standard HSM envelope encryption. Policy consensus (
consensus_trigger) gates who may authorize a sign/export action — it does not split a secp256k1/Ed25519 private key across signers the way Turnkey QuorumOS does. - Auto-rotation: 365-day rotation period on KEKs. Nightly DEK re-wrap ensures old versions can be destroyed.
- CMEK (opt-in): Customer-managed AES-256-GCM layer on top of HSM envelope encryption. Key never touches server.
3. TEE Attestation & Verification
Public endpoint (no authentication required):
GET https://shroud.1claw.xyz/v1/shroud/attestation
Returns a GCE identity token signed by Google's Confidential Computing attestation service. Verification steps:
- Decode JWT from response
- Validate signature against Google's well-known JWKS (
https://www.googleapis.com/oauth2/v3/certs) - Confirm
swname: "CONFIDENTIAL_SPACE"in claims - Confirm
eat_noncecontains the Shroud image digest - Confirm
audmatches the 1Claw service account
This proves the Shroud enclave is running on AMD SEV-SNP hardware with the published image hash.
4. Audit Log Integrity
Every audit event is hash-chained:
integrity_hash = HMAC-SHA256(key, [prev_hash, org_id, actor_type, actor_id, action, metadata, timestamp])
Hash chaining is written on every insert. GET /v1/audit/verify checks linkage within an org-scoped window. Full client-side HMAC recompute is not available without the server audit key. See Audit verification.
Independent verification endpoint:
GET /v1/audit/verify
Authorization: Bearer <token>
Walks the organization's audit chain and reports:
- Total events verified
- Any gaps (missing
integrity_hashor brokenprev_event_idlinkage) chain_validboolean for the queried window
5. Policy Engine
Three tiers of policy expressiveness:
| Tier | Engine | Status | Capability |
|---|---|---|---|
| All tiers | tx_conditions (JSON) | Live | Field matching: chain_in, to_address_in, value_above, function_selector_in, deep_inspect |
| All tiers (v2 schema) | Expression engine | Schema-only — stored, signing-time enforcement in progress | Predicate logic: &&, ||, >, <, in, contains with 1000-step budget |
| Team+ | Cedar | Live (shadow/enforce modes) | AWS Cedar policy language with full RBAC |
| Business+ | OPA | Live (shadow/enforce modes) | Open Policy Agent Rego for arbitrary authorization logic |
policy_schema_version: 2 and tx_conditions.expression are accepted by the API and persisted. The evaluator is implemented in domain/expression_engine.rs but not yet called during transaction/sign policy checks. Do not rely on expressions to gate signing until enforcement wiring ships.
Security hardening (expression engine):
- Expression length cap: 4096 bytes
- AST depth cap: 16 levels
- Evaluation step budget: 1000 operations
- Fail-closed on any parse or eval error
- No recursion, no side effects
- Whitelisted field set only
Deep transaction inspection:
deep_inspect: trueunwraps multicall, SafeexecTransaction, ERC-4337handleOps- Conditions evaluated against inner calls, not just the outer wrapper
- Per-chain struct depth: full decode for Ethereum, Bitcoin, Solana, XRP, Cardano, Tron
6. Control-Plane Governance
Administrative mutations (policy CRUD, key export, member changes) can require multi-party approval:
{
"consensus_trigger": {
"action_in": ["signing_key.export", "policy.delete"],
"min_approvals": 2,
"required_roles": ["admin"],
"require_credential_types": ["passkey"]
}
}
Composability: skip_when and require_when arrays enable conditional consensus (e.g., skip for pre-approved automation identities; require for high-value transactions).
Credential recovery: Solo-owner orgs bypass consensus for credential recovery actions automatically. Small orgs use time-delayed recovery (72-hour window + notification) to prevent lockout.
7. Embedded Wallet Custody
- 6-chain support: Ethereum, Bitcoin, Solana, XRP, Cardano, Tron
- HSM-backed generation: Private keys generated and stored via envelope encryption with the org KEK
- MPC custody (Pro+ vault option; org KEK Shamir on Team+): Tier-based encryption key custody — XOR 2-of-2 client share (Pro/Team vault MPC) or Shamir 2-of-3 DEK shares across GCP/AWS/Azure (
2of3_multi_hsm). Org-level Shamir KEK (migration 203) splits the KEK, not signing keys. This protects ciphertext at rest; it is not multi-party transaction signing. - Spend policies enforced:
allowed_tokens,to_allowlist,daily_limit_eth,max_value_per_tx_eth— Live viavalidate_wallet_send()on treasury send/swap - Role-based access:
wallet_access_policiestable anddomain/wallet_access.rsevaluator — Schema-only / domain module; not yet wired to treasury wallet handlers. Use spend policies for embedded wallet constraints today. - System vault isolation:
__treasury-keysvault blocks direct API reads — private keys accessible only through designated export endpoints with password re-authentication
8. LLM Security (Shroud)
All agent LLM traffic passes through the Shroud TEE proxy:
- Secret redaction: Per-org Aho-Corasick automata redact secrets before upstream transmission
- Injection scoring: Bi-directional prompt injection detection (request + response)
- Content policy: Per-agent
shroud_configwith block/redact/warn actions per detector - Tool call inspection: Function arguments scanned for credential exfiltration attempts
- Header filtering: Sensitive headers stripped before upstream forwarding
- Body size limit: 5MB cap prevents TEE OOM attacks
9. OIDC Federation
1Claw acts as a first-class OpenID Connect Identity Provider:
- Public discovery:
GET /.well-known/openid-configuration - Public JWKS:
GET /.well-known/jwks.json(EdDSA + RS256, 5-minute cache) - Token exchange:
POST /v1/auth/federated-token(RFC 8693) - Compatible with Anthropic Workload Identity Federation, GCP/AWS STS
Section B — Third-Party Validation
External Security Review
Scope: Expression evaluator, public attestation endpoint, Shamir reconstruction path, audit hash chain verification.
Status: Engagement scoped. Review targets:
- Expression evaluator parser correctness and DoS resistance
- Attestation endpoint replay/forgery resistance
- Shamir share confidentiality and reconstruction boundary enforcement
- Audit chain tamper detection completeness
Findings: [To be included upon review completion]
SOC 2
Status: [Document current status — in flight / Type II achieved / planned quarter]
Contact ops@1claw.xyz for compliance attestation details.
Section C — Architecture Differentiators vs Signing-Only Infrastructure
| Dimension | Signing-Only (e.g., Turnkey) | 1Claw |
|---|---|---|
| Governance scope | Transaction signing | Whole agent (secrets + LLM + runtimes + memory + channels + automations + signing) |
| Policy evaluation point | Before signing | Before signing AND before secret access AND before LLM forwarding AND before execution |
| TEE usage | Signing enclave | Signing + LLM inspection + secret redaction + org-KEK Shamir reconstruction (TEE boundary) |
| Audit integrity | Event log | Hash-chained log with public verification API |
| Consensus composability | n-of-m quorum | skip_when / require_when with per-role minimums and credential-type requirements |
| Policy language | Proprietary DSL | Expression engine (open) + Cedar (standard) + OPA (standard) |
| Deep inspection | Per-chain structs | Per-chain structs + multicall/Safe/4337 wrapper unwrapping |
Appendix: Verification Commands
# 1. Verify TEE attestation
curl https://shroud.1claw.xyz/v1/shroud/attestation
# 2. Verify audit hash chain
curl -H "Authorization: Bearer $TOKEN" https://api.1claw.xyz/v1/audit/verify
# 3. Verify OIDC public keys
curl https://api.1claw.xyz/.well-known/jwks.json
# 4. Test policy enforcement
curl -X POST https://api.1claw.xyz/v1/org/cedar-policies/test \
-H "Authorization: Bearer $TOKEN" \
-d '{"policy": "...", "context": {...}}'
This document describes systems as deployed at publication date. For the latest security updates, see the changelog and trust model comparison.