File DA-002 View as Markdown
Capabilities
Three tiers. Keyless is free and complete in the browser; a key unlocks everything that needs a server to trust you.
| Hook / function | Keyless | Public key + verified domain | Secret key (server) |
|---|---|---|---|
init, ready(), verdict(), on('verdict'|'final'), identify(), reset(), queue push | ✓ | ✓ | – |
| Integrations tagging (GA4, GTM, Meta, TikTok, Google Ads, Shopify, Mixpanel, Segment, PostHog, Amplitude, Klaviyo, Mailchimp, HubSpot, Intercom, Clarity, Hotjar) and bot ad-conversion blocking | ✓ | ✓ | – |
Edge hint (Server-Timing) | ✓ | ✓ | – |
Beacon (flush, pagehide) | ✓ anonymous, by hostname, every session | ✓ | – |
| Live presence (HQ Live now) | ✗ | ✓ | – |
check(action), getToken(), stripeToken(), protect(form) (signed tokens) | ✗ rejects key_required | ✓ bound to the site; origin must be verified | – |
| The Handler (Jev) on ambiguous sessions | ✗ | ✓ (plan-gated) | – |
verifyToken (@doubleagent-so/node, offline JWKS) | ✓ | ✓ | ✓ |
getSession, /v1/sessions, /v1/stats, /v1/live | ✗ | In HQ, after login | ✓ Bearer sk_… |
| Debrief webhooks, server relabel (GA4, Klaviyo, Mixpanel, Shopify, Stripe) | ✗ | Configure in HQ | ✓ |
/v1/install-check, JWKS, signatures | ✓ | ✓ | ✓ |
- Nobody sees keyless data until someone verifies the domain. Then it's claimed, history included.
- Keyless error:
DoubleAgentError('key_required')from any token method, with a link to this page. - Upgrade in place: add
data-key="pk_…"to the same script tag. Nothing else changes.