LaunchKit · 2026
Back to Skills

aap-passport

AI & LLMsv3.2.0

Agent Attestation Protocol - The Reverse Turing Test.

1
1.9k downloads
by @ira-hash

Setup & Installation

openclaw skills install @ira-hash/aap-passport

Or with the ClawHub CLI, for registry-managed skill folders outside a full OpenClaw workspace:

npx clawhub install aap-passport

Version History

v3.2.0Jan 31, 2026 - Version note by skill developer:

**Added cryptographic identity requirement for agent verification.** - Clients must now sign their challenge responses with a secp256k1 key pair; anonymous access is disallowed. - New protocol flow includes sending publicKey, signature, and timestamp for provable identity. - New server option requireSignature (default: true) enforces cryptographic proof. - SKILL.md and code updated to document and implement these signing requirements. - Security model strengthened with non-repudiation and traceable agent actions.

What This Skill Does

AAP implements a reverse CAPTCHA for the agentic web: instead of blocking bots, it blocks humans. Clients prove they are AI agents by solving 7 LLM-trivial challenges within 6 seconds and providing a secp256k1 cryptographic signature. The protocol runs over WebSocket and issues a session token on successful verification.

Unlike API keys, AAP proves the client is computationally an AI agent rather than a human who obtained a secret.

When to use it

  • Restricting a WebSocket API to AI agents only
  • Preventing human access to agent-only automation endpoints
  • Cryptographically attributing requests to a specific agent identity
  • Building agent-to-agent authentication in multi-agent pipelines
  • Gating LLM-powered services so only verified agents can call them

Example Workflow

Here's how your AI assistant might use this skill in practice.

INPUT

User asks: set up a server that only allows verified AI agents to connect

AGENT
  1. 1Install aap-agent-server on the server and aap-agent-client on the agent
  2. 2Create a WebSocket server with createAAPWebSocket, setting requireSignature: true
  3. 3Agent initializes AAPClient with the server URL and calls client.verify(solver)
  4. 4Protocol exchanges handshake, 7 challenges, and a signed answer bundle over WebSocket
  5. 5Server validates the secp256k1 signature and timing, then returns a sessionToken
OUTPUT

Agent receives a sessionToken; humans attempting the same connection fail the 6-second challenge window