Skip to content

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

  1. 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.

  2. Record.

    Tool results on the x402 route carry an ES256 receipt, and the activity record is hash-chained. Coverage is not universal yet.

  3. 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.

  1. 01

    A call comes in

    An effectful tool call arrives with a key.

  2. 02

    APPROVAL_REQUIRED

    The server refuses until a person approves.

  3. 03

    A person approves

    The exact call, on an approval card.

  4. 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.

  1. Get the public keys.

    They are published as a JSON key set.

  2. 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.

  3. 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/keys
npm 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>'
The keys endpoint answers with a key set (algorithm ES256, key id stoa-edge-1 when checked on 2026-10-17). Coverage is not universal: not every action produces a 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

Not built yet
StatusWhatDateSource
ComingA keyed hash for dispute evidence. Decided, not built.
ComingAn emergency stop across every entry point. Not live yet.

Read the policies on juwel.ai.

Privacy, Security, Terms and Account deletion.