AIdenID / docs
HomeTeamRequest a demo
Documentation

Identity & clearance for the agentic internet.

AIdenID gives an autonomous agent a verifiable identity, and gives your site a deterministic answer on every request that agent makes — one of six outcomes, each backed by a cryptographically signed receipt anyone can verify.

Overview

AI agents now browse, buy, and act on the open web on behalf of people and organizations. AIdenID is the site-owned decision layer for that traffic: it decides who gets through, per request, and proves the decision. It is vendor-neutral across edges (Node / Fastify / Next today; Cloudflare, Fastly, and Vercel Edge adapters planned).

Identity + Clearance — one platform

AIdenID is two halves of a single lifecycle, not two products:

The story end to end: issue an identity → delegate authority → clear every request → emit a receipt → revoke instantly. Identity answers who; clearance answers may they, right now.

Quickstart

Install the enforcement SDK and gate a route in one line:

// 1. install
npm i @aidenid/sdk

// 2. verify, then enforce — at your existing gate
import { verifyAgent, enforce } from '@aidenid/sdk'

const decision = await verifyAgent(req, { route: '/blog/:slug', action: 'read', resourceId: slug })
return enforce(decision)  // allow→full · priced→402 · else→teaser only
Invariant: for any non-allow outcome, the server serializes only the teaser. The full gated body never leaves the server.

The six outcomes

Every request resolves to exactly one terminal outcome, with a canonical HTTP behavior:

OutcomeMeaningHTTP
allowverified + delegated + in-scope200 · full body
throttleallowed but rate-limited429 · teaser + Retry-After
queueaccepted, deferred202 · teaser + position
sandboxallowed into a limited view200 · sandboxed subset
denynot verified / out-of-scope200 · teaser only
price_requiredpay-to-access402 · signed price quote

The four-layer cascade

Evaluated in order; every layer writes an honest 0..1 score and a passed flag into the receipt.

#LayerWhat it proves
L1operator_signatureEd25519 signature from a known operator (OpenAI, Google…) over the request bytes.
L2delegation_proofA scoped, in-date delegation from the human principal the agent acts for.
L3behavioral_fingerprintDeterministic cadence/shape score — bursts get rate-limited.
L4operator_reputationStanding of the operator behind the agent, anchoring the final call.

Delegation & revocation

An agent acts under a delegation — a scoped grant from a human principal, bound to an action and optionally a single resource, with an issue and expiry time:

{
  "principalId": "user_42",
  "agentId":     "chatgpt-agent-7f3a",
  "scope":       ["read"],
  "resourceId":  "agentguard-demo",
  "issuedAt":    "2026-06-16T00:00:00Z",
  "expiresAt":   "2026-06-16T01:00:00Z"
}

Revocation is instant. A single call kills a chain, session, or delegation; an epoch is checked on every request, and the next request from that agent returns a deny revocation receipt (revoked: true, revocationOf: <receiptId>).

Signed receipts & verification

Every decision returns a Decision receipt signed with Ed25519 over a deterministic canonical encoding. The receipt carries its own verify key, so it is self-verifiable — clients re-check the signature in-browser with zero server round-trips.

// the verifier checks the exact same canonical bytes the signer signed
const ok = ed25519.verify(
  d.signerPublicKey,
  d.signature,
  canonicalString(signingPayload(d)),  // keys sorted, no whitespace, undefined dropped
)

Crypto fields (signature, signerKeyId, signerPublicKey, alg) are excluded from the signed payload. Scores are rounded to 4 decimals before signing so the bytes are stable across engines.

API reference

Same-origin (or via a proxy) — no CORS holes. Decision endpoints:

MethodPathReturns
POST/api/aidenid/verifyRequestContext → Decision
POST/api/aidenid/revoke{ receiptId } → revocation Decision
GET/api/aidenid/streamSSE of StreamEvent
GET/api/aidenid/pubkey{ signerKeyId, publicKey }

Live control-plane endpoints (traffic stream, plain-language rules → signed policy versions, bounded agent planning sessions): /api/aidenid/traffic, /classify, /rules, /simulate, /policies, /agent.

Confidence labels (the soft path)

AIdenID never claims human-vs-bot certainty. Alongside the cryptographic hard path, requests carry a confidence label:

Questions?

Tell us what you're protecting and we'll show you exactly how AIdenID decides on your traffic — live, on a real surface. Ask us anything.

Contact us →