Skip to main content

Identity verification and threat response for people and the AI agents acting for them.

Verify who someone is, prove it cryptographically, and respond the instant that trust breaks. Attestation, verifiable credentials, and passkeys behind one API.

Built onNIST FIPS 204W3C VC 2.0FIDO2 / WebAuthnGSMA Open Gateway

A passkey proves who logged in. It says nothing about the SIM swapped an hour later, the number ported out, or the credential dumped in a breach overnight.

Account takeover happens in that window. PasskeyBridge ingests these signals and acts on them, and it verifies the person behind the request as well as the device holding the key.

09:00:00
Login · passkey verified
64 minutes a passkey can't see
10:04:12
SIM swap · signal received
Same request
Sessions revoked
A passkey proves the login. It says nothing about the 64 minutes after—PasskeyBridge closes that window.

Detect, decide, respond

Step 1 · Detect

See the signal

Ingest carrier and breach signals from your providers or a webhook.

sim_swap · port_out · ss7_intercept · credential_leak
→
Step 2 · Decide

Score it

Your playbook weighs the signal against policy. Hard signals are final.

risk 0.00 → 1.00 · policy-final
→
Step 3 · Respond

Act in the same request

Revoke sessions, freeze credentials, suspend agents, or step up auth.

revoke · freeze · suspend · step_up
One platform

One API across the suite

Start with Attestation and expand across the suite without re-integrating. Every product uses the same API.

Signal received
sim_swapusr_8f2acarrier webhook
Playbook · weighted policy, hard-signal override
risk0.94 critical · policy-final
Response · in-request
✓revoke_sessions✓freeze_credentials✓suspend_agents
Verifiable CredentialSD-JWT
issuerdid:web:passkeybridge.io
given_name••••• withheld
over_18true
assuranceIAL2
✓ES256 (P-256)✓ML-DSA-65both required
Device biometric
→
Passkey · WebAuthn
→
kid: pk_9f2a
FIDO2 · phishing-resistant · parametric revocation on compromise
User
Agent
A2A peer
scope: read:signals, act:revoke · exp 15m · revocable
Developers

One POST request returns a decision

The quickstart takes this from a key to a first decision, and the API reference gives every field in the request and the response.

# Replace YOUR_API_KEY + YOUR_TENANT_ID with your dashboard values
curl -X POST https://api.passkeybridge.io/v1/shield-ingest \
  -H "x-pb-api-key: YOUR_API_KEY" \
  -H "x-pb-tenant-id: YOUR_TENANT_ID" \
  -H "Content-Type: application/json" \
  -d '{ "event_type": "sim_swap", "phone": "+14155551234" }'
// Node 18+. Save as ingest.mjs, then run: node ingest.mjs
const res = await fetch("https://api.passkeybridge.io/v1/shield-ingest", {
  method: "POST",
  headers: {
    "x-pb-api-key": process.env.PB_API_KEY,
    "x-pb-tenant-id": process.env.PB_TENANT_ID,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ event_type: "sim_swap", phone: "+14155551234" }),
});

const { result, actions_count } = await res.json();
console.log(result, actions_count);
Response
statusok
resultplaybook_executed
actions_count3
✓revoke_sessions
✓freeze_credentials
✓suspend_agents
Live console

View each decision as it is made

Signals arrive, your playbook scores them, and actions fire in-request—the same decision your API returns, on one screen your team can watch. What each panel reads, and how to pull the same numbers into your own monitoring, is in observability.

passkeybridge / attestation / live
Streaming
1,204
Signals · 24h
Per request
Decision time recorded
27
Actions fired · 24h
TimeSignalUserRiskAction
09:42:07sim_swapusr_8f2a0.94revoke
09:41:52port_outusr_3c1d0.86revoke
09:41:40ss7_interceptusr_9b700.71step_up
09:41:18credential_leakusr_1f4e0.63step_up
09:40:55new_deviceusr_6a220.24allow
Hard signals are policy-finaldecision_ms recorded on every event
Verifiable

You can verify these properties yourself

Hybrid signature

Two proofs, both required

Every credential carries a classical signature (ES256/ES384) and a detached post-quantum signature (ML-DSA-65/87). A break of one layer alone forges nothing.

Post-quantum

Post-quantum signatures in production

Real NIST FIPS 204 ML-DSA signatures, checked against a known-answer gate on every deploy. 3,309-byte ML-DSA-65 signatures, independently verifiable.

Zero PII

No plaintext identifiers stored

Low-entropy identifiers stored only as keyed hashes; operational PII only as AES-256-GCM ciphertext. There is no plaintext to steal.

verify()classical ✓post-quantum ✓signature_valid = es256Ok && pqcOk
Built on standards your auditors already trust
NIST FIPS 204 ML-DSAW3C Verifiable Credentials 2.0FIDO2 / WebAuthnGSMA Open GatewaySOC 2 readiness
FIPS 204
Post-quantum signatures in production
Zero PII
Stored at rest, by architecture
Two of two
Signatures required to verify

Free plan, then usage-based pricing

Starter
Free
100 signals/mo
  • Pillar I: Signal ingest + 1 playbook
  • 1 signal source
  • Single credential verification
  • 90-day event retention
  • Zero PII architecture
Start free
ProPopular
$99 /mo
10,000 signals/mo
  • Pillars I and II: signals + credentials
  • Native VC engine + DID resolution
  • Batch VP Token verification (≤20/req)
  • StatusList2021 auto-refresh (ETag)
  • 10 playbooks, 5 signal sources
Start Pro
Enterprise
$499 /mo
1,000,000 signals/mo included, then $0.04/signal
  • Everything in Pro
  • Pillar III: hosted passkey relying party
  • Shadow Identity Proxy (BLAST)
  • Cached Trust Proofs (offline)
  • Deterministic Cross-Reference
Talk to us

Add PasskeyBridge to your identity stack

Start free in minutes, or talk to us about the agentic and enterprise tiers.