Skip to main content

Installation

QWED A2A requires Python 3.10+. The cryptography and PyJWT packages are installed automatically for JWT attestation support.

Configure a signing key

QWED A2A signs every verdict with a persistent ECDSA P-256 key so attestations remain verifiable across restarts. Set QWED_A2A_SIGNING_KEY_PEM before importing qwed_a2a — without it the interceptor fails closed on the first call.
See Crypto attestations for key rotation and multi-replica guidance.

Your first verification

1

Import the interceptor

2

Create an interceptor

This creates an interceptor with:
  • All verification engines enabled
  • Crypto attestation enabled (if packages available)
  • default_allow=True trust boundary
3

Build a test message

4

Run verification

5

Check the output

The financial totals match (50×2 + 25×2 = 150), so the message is forwarded with a signed attestation.

Try different scenarios

Block a hallucinated total


Run the FastAPI gateway

QWED A2A includes a ready-to-use HTTP gateway:
Test it:
Response:
GENERAL and DATA_QUERY payloads have no verification engine, so the interceptor returns an unverifiable verdict with no JWT attestation — signing a token for content that was never verified would be a false cryptographic claim. Callers must decide how to handle unverified traffic. To see a signed forwarded verdict, send a financial_transaction, logic_assertion, or code_execution payload instead. See the verdict status table for the full contract.

Next steps