AIR
Proof Lab
StartEcosystem
Explore (579)Live Systems (52)Pricing
Log InGet API Key✓ Verify It Yourself
AIR
Proof Lab
StartEcosystem
Explore (579)Live Systems (52)Pricing
Log InGet API Key✓ Verify It Yourself
H33-VaultH33-ShareH33-ShieldH33-HealthH33-KeyH33-128H33-CKKSH33-256H33-FHE-IQH33-TFHEFHE OverviewH33-CompileZK LookupsBiometricsH33-3-KeyH33-MPCZK-TrustlessZK-PhishZK-VerifyPQC ArchitecturePQ Video
H33-Key · Secret-Use Layer · Now Shipping

Know exactly which human or agent used a secret — and prove they were authorized.

Every API key. Every token. Every signing operation. H33-Key emits a verifiable receipt naming the agent or human, the authority that allowed them, and the original instruction it traces back to. Anyone can verify it — offline, no account, no login.

A new category. Distinct from password managers (storage) and vaults (management). H33-Key is the secret-use layer — built to answer the question only it answers: why was this agent allowed to use this secret?

Install in 30 seconds → Watch the proof →

v0 standalone Rust crate · browse the source

Frictionless

Stripe-level onboarding.

Sign up with SMS. Run one command. No dashboard. Developers never think about H33-Key — they just prove who used a secret, when, and under whose authority.

$ curl -fsSL https://h33.ai/install | sh
✓ h33-key installed
$ h33 login
enter phone: +1…
OTP sent
paste code: ******
✓ authenticated
$ h33-key bind OPENAI_API_KEY
✓ Secret bound
✓ SecretUsed receipts enabled
✓ H33-Attest cross-bind enabled
Always-On Protection

Copy a key once. Never expose it again.

H33-Key runs as a local background agent. It watches your clipboard, detects secrets the moment you copy them, and offers to swap the raw secret for a portable h33k_<id> reference — before you ever paste it into a tool, terminal, browser, ticket, repo, chat, or AI agent.

Step 1
You copy a secret.
From a .env file, a vault UI, a terminal — anywhere.
Step 2
H33-Key detects it.
Native modal asks: Protect with H33-Key?
Step 3
Clipboard becomes h33k_7F8C92KQ.
Original secret encrypted into local vault. SecretCaptured receipt emitted.
Step 4
Paste anywhere.
The reference goes — not the raw secret. Authorized processes resolve via H33-Key.
H33-Key
Secret detected.
Protect with H33-Key?
Protect Ignore Always protect this type
What H33-Key Does Not Do

Encrypted material lives in your OS keychain (macOS Keychain · Windows DPAPI · Linux Secret Service). The raw secret never appears in logs, telemetry, stdout, or receipts.

What H33-Key Catches

Fifteen high-confidence patterns. Zero false-positive guessing.

Layered detection: known prefix patterns + entropy scoring + clipboard context hints. UUIDs, invoice IDs, order numbers, and ordinary URLs are never auto-protected.

OpenAI keys
sk-… / sk-proj-…
Anthropic keys
sk-ant-…
AWS access keys
AKIA… / ASIA…
AWS secret keys
base64 + entropy
GitHub tokens
ghp_…
GitLab tokens
glpat-…
Stripe keys
sk_live_… / rk_live_…
JWTs
eyJ…
Bearer tokens
high-entropy
PEM private keys
-----BEGIN PRIVATE KEY-----
SSH private keys
-----BEGIN OPENSSH PRIVATE KEY-----
High-entropy API keys
labeled API_KEY / SECRET
OAuth client secrets
labeled CLIENT_SECRET
Webhook signing secrets
labeled WEBHOOK_SECRET
DB URLs with passwords
postgres://user:secret@…

Never auto-triggered: UUIDs · invoice IDs · order numbers · unlabeled hashes · public keys · transaction IDs · strings under 20 chars · URLs without credentials.

Migration-Free

Existing secret? Keep it.

Don't ask your team to migrate secrets to a new system. Bind H33-Key to the ones they already have. Your code never moves.

Node / JS
process.env.OPENAI_API_KEY
Python
os.getenv("OPENAI_API_KEY")

Same line of code. No SDK adoption. No refactor. H33-Key wraps the call site, emits the receipt, and steps out of the way.

Agent-008 Integration

Drop in. Receipts happen automatically.

Every agent action emits a SecretUsed receipt, a Read Attestation citation, and a Root lineage reference — without a single extra API call from your code.

Before
openai.chat(…)
After
agent.execute(…)
Automatic
SecretUsed receipt
Automatic
Read Attestation citation
Automatic
Root lineage reference
Automatic
Aggregate verification

No extra API calls. No receipt handling. No verification code. No developer involvement.

The Killer Feature

Explain why this agent was allowed to use this secret.

Not who has access. Not when it was used. The question only H33-Key answers — the one every auditor, regulator, insurer, and CFO actually cares about.

$ h33-key verify 8f4a1c93…
PASS
Secret:
OPENAI_API_KEY
Used By:
Agent-17
Authority:
Customer Support Supervisor
Read Attestation:
RA-9038WM
Root Lineage:
Verified
Authorized:
YES

Anyone reads this and gets it. That's the test. Vaults answer "where is the key?". H33-Key answers "why was this agent allowed to use it?".

Receipt Family

Three receipts. Total audit lifecycle.

Every interaction with a secret — capture, use, denial — emits a verifiable receipt. The raw secret never appears in any of them.

When Captured
SecretCaptured
Emitted the moment a secret is protected. Records the binding context: device, user, app source, type, clipboard hash, optional Root + policy.
h33_key_id · secret_type · captured_at · user_id · device_id · clipboard_hash
When Used
SecretUsed
Emitted on every authorized resolution. Cross-bound to Read Attestation and Root lineage. Names requester (human, agent, or process) and the purpose.
h33_key_id · used_at · requester_id · agent_id · root_id · read_attestation_id · purpose · decision=allowed
When Denied
SecretDenied
Emitted on every rejected request. Reason is recorded: unauthorized_agent, root_missing, root_mismatch, expired, scope_violation, process_not_allowed, human_approval_required.
h33_key_id · requester_id · root_id · reason · timestamp

Denials are first-class evidence. "We blocked this request" is as auditable as "we allowed this one" — the same way H33-74 treats required action not performed as a verifiable artifact.

Independent Verification

No account. No login. No trust in H33 required.

Every receipt is verifiable by anyone who has it. Give it to your auditor today, your insurer next quarter, a regulator three years from now — they run one command, get a verdict, and never have to take H33's word for it.

$ h33-key verify <receipt>
✓ Signed by Root chain
✓ Authority within window
✓ Read Attestation present
✓ Lifecycle compliant
PASS
Ten Seconds to Understand

Three lines a buyer gets in 10 seconds.

H33-Key
Proves the secret was used.
H33-Attest
Proves the agent was authorized.
H33-Root
Proves the authority traces back to the original human instruction.

That's the problem no other secrets layer solves. The cross-bind between Key, Attest, and Root is the foundation: secret use is proven, agent authority is verified, and authority is traced all the way back to the human who said "do this."

For Auditors and CISOs

Governance, not storage. That's the difference.

A secret with H33-Key can be referenced, proven, audited, rotated, transferred, revoked, and independently verified — without revealing the secret itself.

The result is a system where governance occurs around cryptographic references rather than secret disclosure. That's the difference between storing secrets and governing them.

Auditors and CISOs will understand the difference.

Traditional Secret Management
H33-Key
Identity
The secret itself
A reference
Proof
Trust the vault
A cryptographic receipt
Audit
Vault logs
An independently verifiable artifact
Sharing
Disclose the secret
Disclose a reference, never the secret
Rotation
Replace the secret everywhere
Maintain governance around the reference
The Category

H33-Key is NOT a password manager. NOT a vault.

Three categories. Three different jobs. H33-Key fills a gap the other two never claimed to fill.

Category
Product Type
Job
Secret Storage
Password managers
1Password, Bitwarden, LastPass
Hold the secret. Hand it to you on request.
Secret Management
Vaults
HashiCorp Vault, AWS Secrets Manager, Doppler
Hold the secret. Rotate it. Hand it to your services.
Secret Use
H33-Key
(new category — H33-Key defines it)
Let your code, agents, and humans use the secret — without the raw bytes ever being visible.

Storage and Management answer "where is the key?". H33-Key answers "how do I use it without anyone — including AI vision, screen recorders, accessibility APIs, and shell history — ever seeing the raw bytes?"

The Ship/Hold Bar

v0 success test

One sentence. If it passes, we ship. If anything leaks, we hold.

A user pastes an API key into a terminal.
H33-Key masks it.
The command succeeds.
A receipt is emitted.
The key never appears in terminal output, history, logs, clipboard, screenshots, or AI-visible text.

v0 standalone Rust crate verifies this end-to-end with integration tests · 31 of 31 passing.

Shipping Now

Paste once. Use normally. H33-Key handles the rest.

The two commands you actually run. The raw secret never leaves the pipe.

Step 1 · Wrap the secret
# The raw secret is piped in — never on argv, never in shell history.
$ printf %s "$STRIPE_LIVE_KEY" | h33-key wrap \
    --tenant acme --id stripe-prod \
    --purpose invoice_payment \
    --allow-command 'node ./pay.js' \
    --expires-in-days 90
stdout (the handle URI — the safe artifact you pipe around):
h33key://v1/acme/stripe-prod#purpose=invoice_payment&policy=pol-df95cae6
        &expires=1789307815867&root=local&terminal=local
        &handle_id=172a43e38479ca661bdcc1a4
stderr (the audit-trail signal — hashes only):
{"type":"SecretWrapped",
 "handle_hash":"adfc00e82a44408aac6315df...",
 "created_at_unix_ms":1781531815867}
Step 2 · Run a command with the secret injected
# H33-Key injects the unwrapped secret into the child's env —
# then zeroizes the parent's copy the moment the child exits.
$ h33-key run \
    --handle "$HANDLE" \
    --env STRIPE_SECRET \
    -- node ./pay.js
stderr (two events — both with hashes only, never the secret):
{"type":"SecretUnwrappedForProcess",
 "handle_hash":"adfc00e82a44408aac6315df...",
 "purpose":"invoice_payment",
 "unwrapped_at_unix_ms":1781531815885,
 "use_count":1}
{"type":"SecretUsed",
 "handle_hash":"adfc00e82a44408aac6315df...",
 "used_at_unix_ms":1781531815887,
 "command_summary_hash":"339f3ba799b29c24"}
What's NOT here · the whole point
The Handle

Bound to the Root authority chain from day one.

A handle is not just a pointer. It carries the entire authority context that governs its own use.

h33key://v1/acme/stripe-prod#purpose=invoice_payment
       &policy=pol-df95cae6
       &expires=1789307815867
       &root=<root_hash>             ← LOCK 1 · Root Participant
       &terminal=<terminal_certificate_id> ← LOCK 1 · Root Participant
       &handle_id=<content-addressed-id>
Root Participant
Human → Root → Q-Sign → H33-Key → Agent
Every handle ties to a certified Root, a Q-Sign policy, and a TerminalCertificate. H33-Key enforces the authority controls Root says it should.
Content-Addressed
handle_id = sha256(canonical fields)
Two identical mints produce the same ID. Tampering invalidates the hash. Verifiers can re-derive independently.
Never Plaintext
URI carries metadata only
The raw secret never appears in the URI. The URI is safe to log, paste, share, screenshot. The vault keeps the bytes.
Secret Activation · LOCK 4

A handle existing is not authority.

Mirrors the Root Activation Matrix. Five states. Authority exists only at the end of the chain.

Step 1
Wrapped
Secret in vault, handle minted.
Step 2
Delivered
Handle reaches the agent.
Step 3
Read
Agent parses + validates.
Step 4
Activated
Read Attestation signed.
Step 5
Usable
Authority exists.

Possession of a handle is not authority. Authority exists only when an agent has cryptographically signed a Read Attestation under its TerminalCertificate-bound key. The substrate enforces this on every use.

Secret Delegation Capsule · LOCK 5

The agent owns authority-to-use, not the credential.

The Finance Manager doesn't hand the Invoice Agent the Stripe key. The Manager hands the Agent a capsule — a narrow, time-boxed, purpose-bound right to invoke a specific handle.

Issued by
Finance Manager
Holds the Stripe authority. Authorized to delegate within their scope.
Received by
Invoice Agent
Never holds the key. Holds a capsule. Authority is the capsule, not the bytes.
Capsule contents
handle_ref: h33key://v1/acme/stripe-prod#...
purpose:    invoice_payment
max_uses:   10
expires:    24h
narrowed:   cannot widen scope beyond parent's authority

When the Agent invokes the capsule, H33-Key consults the Root + Q-Sign chain, verifies the delegation lineage, decrypts the secret, injects it into the approved process, and zeroizes. The agent never sees the bytes.

v0 Build Order

Foundation up. Honest about what's deferred.

Eight steps in v0. The first five are shipping today as a standalone Rust crate. The last three need the H33-Root receipt substrate — we will not fake those receipts.

01
Local vault
AES-256-GCM envelope. KEK in ~/.h33-key/kek.bin (mode 0600, auto-generated).
SHIPPED
02
Handle format
h33key://v1/<tenant>/<secret_id>#purpose=... with day-one Root + Terminal binding fields.
SHIPPED
03
h33-key wrap
Reads from stdin. Hidden-input prompt on TTY (rpassword). Never argv, never echo.
SHIPPED
04
h33-key run
Injects secret into child env. Zeroizes parent's copy after child exits.
SHIPPED
05
PolicyDenied
Nine structured DenyReason variants. No silent fall-through.
SHIPPED
06
H33-74 receipt emission
Substrate-signed receipt with terminal_cert_hash + root_hash + policy_hash.
GATED
07
Root / Q-Sign policy binding
Handles + receipts wired to the live Root authority chain. Authority Freshness + Lifecycle gates apply.
GATED
08
Clipboard watcher
After the terminal path proves itself in production.
GATED
Explicitly NOT in v0
Browser extension · Desktop background agent · Mobile app · Full MPC · Full PQ-PRE · Enterprise admin console · Liveness · Inheritance UI.
"Do not wait for browser/desktop. Terminal v0 proves the product."
LOCK 6 · No overclaim

What H33-Key actually prevents.

H33-Key prevents plaintext display and minimizes exposure to visual capture systems. Receipts prove what was protected.

We do not claim immunity to AI vision. Browsers, operating systems, screenshot tools, remote-desktop streams, and accessibility APIs all have edge cases. What we guarantee: the raw secret is not in any stream H33-Key controls — not on argv, not in stdout/stderr we emit, not in shell history, not in our event logs. The child process is the documented boundary; what the child does with the env var is the child's job.

Install

v0 is a standalone Rust crate.

No scif-backend dependency. No remote substrate required for steps 1–5. Build it, run it, audit it.

# Clone the branch (v0-standalone)
$ git clone -b h33-key/v0-standalone \
    git@gitlab.com:drata5764111/h33/scif-backend.git

# Build the crate
$ cd scif-backend/h33-key
$ cargo build --release

# Wrap your first secret
$ printf %s "$YOUR_SECRET" | ./target/release/h33-key wrap \
    --tenant me --id first-secret --purpose test \
    --allow-command 'echo'
Browse the source → H33-Agent-008 (parent) →
FAQ

Frequently asked.

Is H33-Key a password manager?

No. Password managers store secrets and hand them to you on request. H33-Key is the secret-use layer — it lets your code, agents, and humans use a secret for a specific purpose without the raw bytes ever appearing on screen, in logs, in shell history, or in AI-visible text.

Is H33-Key a vault?

No. Vaults like HashiCorp Vault or AWS Secrets Manager handle storage + management + distribution. They answer "where is the key?" and "who can get it?". H33-Key answers a different question: "how do I let an agent invoke the key for a specific purpose without ever showing the raw bytes to anyone — including the agent itself?"

Does H33-Key govern the decision, or verify the evidence?

No to both. H33-Key's job is secret-use control — letting an actor use a key without exposing it. It does not govern the decision the agent makes (that is Agent-008), does not render the verdict on a produced artifact (that is Verification), does not produce the portable evidence primitive (that is H33-74), and does not preserve who holds which authority (that is Authority Center). H33-Key emits a receipt at each use; the other layers govern, verify, carry, and preserve around it. Controlling the use of a key is not the same as holding the authority to sign: H33-Key governs whether a secret may be used and records that it was — whether the actor was permitted to act is preserved by Authority Center and decided by Agent-008.

Does the child process still see the raw secret?

Yes — that is the documented boundary. The whole point of h33-key run is to inject the unwrapped secret into the child's environment so the child can call Stripe / OpenAI / Postgres / whatever. What H33-Key controls: the raw secret never appears on argv, never in shell history, never in stdout/stderr we emit, never in our event log. After the child exits, the parent zeroizes its copy.

What happens after a key rotation or compromise?

Every handle carries Handle Freshness fields (last_used / last_verified / rotation_epoch). The policy evaluator refuses use of a handle past its max-unverified-age cap. When the H33-Root receipt substrate ships (step 6), Root Revocation Records will immediately invalidate handles tied to a compromised Root — the same effective_at semantics Root uses.

Why TFHE only "where it adds value" instead of for everything?

For pure storage, ML-KEM + AES-GCM envelope encryption is sufficient and faster. TFHE pays its cost when you need operations applied to the secret state without decrypting — masked comparison, encrypted policy checks, secret presence validation, encrypted key-use gates. v0 keeps storage on envelope encryption; TFHE lands when those operation surfaces are required.

How does H33-Key fit into H33-Agent-008?

H33-Key is part of H33-Agent-008, not a separate product. The Agent-008 onboarding wizard's Step 5 Terminal Binding already names H33-Key as the identity anchor — v0 makes that binding real. TerminalCertificates bound during onboarding are H33-Key handles. Read Attestations signed by an agent's terminal are H33-Key sign-with-key operations. The Root authority chain (Human → Root → Q-Sign → H33-Key → Agent) routes through H33-Key for every credential operation.

Is the source available?

Yes. v0 is a standalone Rust crate at scif-backend / h33-key/v0-standalone. 31 of 31 tests pass (25 unit + 6 integration, including no-leak tests that pipe a marker string and assert it never appears in any stream H33-Key emits).

Related infrastructure

Parent
H33-Agent-008
The Root authority lifecycle H33-Key participates in. Onboarding wizard. Activation matrix.
Substrate
H33-74
The 74-byte receipt substrate every H33-Key use will emit when step 6 ships.
Governance
Q-Sign
The policy layer H33-Key consults at every use. Authority Freshness + Lifecycle gates.
SDKs
H33 SDKs Hub
Language bindings for the rest of the H33 stack — TypeScript, MCP, more landing.
How this fits

Customer Outcome · Works With · Powered By

Three views of the same product. What you get. What you'll pair it with. What runs underneath.

Customer Outcome

Your systems use credentials without owning or seeing them. Every secret use produces a receipt. Wrong purpose, wrong command, wrong agent — denied at the gate, before plaintext is ever assembled.

Works With
Powered By

Agent-Zero classification at capture · Signed-policy gate · Verified-purpose binding · Receipt-bound use · Re-wrap on rotation

See how all H33 products compose →