Trust you can check
Approvals, receipts, and a stop that lives outside the agent.
What is live, what is coming, and what we do not claim.
What JUWEL does
Approve.
Connected actions wait for your yes. The server gates a calendar event and a mail draft today. Each approval is for the exact call and works once.
Record.
Tool results on the x402 route carry an ES256 receipt, and the activity record is hash-chained. Coverage is not universal yet.
Stop.
A scoped key can be revoked at once, and every call it made is logged. A full emergency stop is coming, not live.
How an approval works
No approval, no action.
- 01
A call comes in
An effectful tool call arrives with a key.
- 02
APPROVAL_REQUIRED
The server refuses until a person approves.
- 03
A person approves
The exact call, on an approval card.
- 04
One nonce, spent once
The server spends it and runs the call.
Privacy in five answers
What we keep, and what we do not.
Do you sell my data?
No. We do not sell personal data.
Do you train a model on my chats?
We do not train a general model on the content of your instance.
What does JUWEL remember?
Nothing until you turn memory on. A list called What JUWEL knows shows everything it keeps.
Do you store my email?
Mail bodies are read in the moment, not stored.
Can I delete my data?
Account deletion removes the listed records. The account deletion page on juwel.ai lists them.
Verify a receipt yourself
Check a receipt in three steps.
Get the public keys.
They are published as a JSON key set.
Check the signature.
The receipt is an ES256 signed token. Any standard JWS tool can check it against those keys. A dedicated verifier for these receipts is coming.
Read what a valid signature proves.
It shows who signed what. It does not show the outcome was right.
curl https://juwel.ai/api/x402/keysnpm i jose
node --input-type=module -e "
import { compactVerify, createLocalJWKSet } from 'jose';
const keys = await (await fetch('https://juwel.ai/api/x402/keys')).json();
const { payload } = await compactVerify(process.argv[1], createLocalJWKSet(keys));
console.log(new TextDecoder().decode(payload));
" '<the sig value from your receipt>'Limits
What we do not claim
We have no SOC 2 attestation and no BAA.
We do not claim a scoped key cannot escalate, or that JUWEL cannot be prompt-injected.
Not built yet
| Status | What | Date | Source |
|---|---|---|---|
| Coming | A keyed hash for dispute evidence. Decided, not built. | ||
| Coming | An emergency stop across every entry point. Not live yet. |