Open to people.
Closed to abuse.

Know what’s on the other side of every request. Give real users a clear path, and keep unwanted traffic out.

MANDATE Verify is in beta. Access is by request.

dashboard.mandate.so
SStorefrontOverviewSearch dashboard⌘KD
Overview
Total decisions
143,660
Last 24h
Allowed
127,990
89% · 127,990 of 143,660 decisions
Challenged
7,175
Additional browser verification
Blocked
8,495
Recorded block decisions
Decisions over time
143,660decisions · Last 24h
Hourly intervals
View activity Open setup
Decision breakdown
All 143,660 decisions · 24h
24h
Decision types
Allow 127,990 · 89%
Challenge 7,175 · 5%
Block 8,495 · 6%
Geographic concentration
USUnited States60,33742%
DEGermany31,60522%
GBUnited Kingdom22,98616%
CACanada17,23912%
JPJapan11,4938%

How it works

Point a subdomain at MANDATE, add one script tag, and verify on your server. Start in Observe, then block when you are ready.

  1. Add one TXT record at _mandate on your domain to prove ownership, and one CNAME for your verify subdomain. MANDATE issues and renews its certificate.
  2. Load the script from your verify subdomain. The browser credential is an HttpOnly cookie on your own domain, so page JavaScript cannot read it.
  3. Before a protected action runs, your server asks MANDATE whether the request is verified, then applies the decision.

Using a Content Security Policy? Allow your verify subdomain for scripts and connections, along with blob workers and WebAssembly.

Explore the verification lifecycle

POSThttps://gate.mandate.so/validatePlain HTTPS. No SDK, CLI, or package.
1// Before the protected action runs.
2const res = await fetch("https://gate.mandate.so/validate", {
3method: "POST",
4headers: {
5Authorization: `Bearer ${process.env.MANDATE_API_KEY}`,
6"Content-Type": "application/json",
7},
8body: JSON.stringify({
9high_value: true,
10credential_mode: "cookie",
11cookie_profile: "subdomain_v1",
12hostname_binding_id: "YOUR_BINDING_ID",
13credential_cookie: credentialCookie,
14secret: process.env.MANDATE_SITE_SECRET,
15site_key: "YOUR_SITE_KEY",
16request_method: "POST",
17path: "/api/login",
18origin: "https://yourdomain.com",
19request_proof: requestProof,
20work_proof: workProof,
21integrity_proof: integrityProof,
22}),
23});
24const decision = await res.json();
25if (res.ok && decision.success === true && decision.action === "allow") {
26// Continue with the protected action.
27}
28// Set decision.session_cookie_update_v1 as a cookie on your response.
valueProvided by MANDATE for your sitevalueServer-onlyvalueFrom the incoming request
What your dashboard confirms
Domain
Verified
Browser activity
Received
Server verification
4 received
2 passed · 2 rejected
Browser verification

Protection for the actions that matter.

Protect login, signup, and checkout from replay, token theft, and scripted browser abuse. Invisible verification for the actions that matter.

Browser verificationReplay protectionSession continuityInvisible to people

Your browser

Browser proof
LoginSignupCheckout

Your application

Application authority
AuthenticationBusiness rules

MANDATE

Hosted verification
Live server stateSession continuityReplay checks
Browser evidence. Application authority.Dashedcomes from the browser or is in transit
Built around your application

Integration ecosystem

Any DNS provider, any server that can make an HTTPS request. Your application keeps its own stack.

Fit protection into your stack.See the full setup
Your server, any language
cURLNodePythonGoPHP
Your DNS, any provider
TXT recordCNAME recordCertificate issued for you
Plain HTTPS from your server. No SDK required.

Pricing

MANDATE Verify is in beta and free while it is. Access is by request.See pricing

Explore

Plan protection for your application.

Free
Request access

Build

Connect browser verification to your request flow.

Free
during public beta$19/mo after the beta
Request access

Grow

Adapt protection as your traffic grows.

Free
during public beta$149/mo after the beta
Request access

Scale

Discuss complex protection requirements.

Contact us
Request access