Starting your demo site…
Creating a throwaway agent, license and site.
1 · Policy editor
Start from a preset, then edit the JSON. It is validated as you type; “Apply” makes it live for the demo site immediately. Presets are starting points, not recommendations or compliance advice.
In plain English
2 · What would happen?
Pure simulation: nothing is signed, recorded or spent. It runs the same rule evaluator as the registry against your policy and an assumed license that permits the action. Real checks also verify signatures and apply live spend totals and the registry’s own default limits.
3 · Traffic and denials
Real checks against the demo site, counted from its own tamper-evident audit log (last 10 minutes). Send some traffic and watch the charts move.
4 · Risk engine
Opt-in per site (profile.risk). It scores bursts, a new country, a spend spike and repeated license probing. Elevated risk asks a human to approve; in enforce mode a heavy burst pauses the agent for a while. You can release a hold at any time.
5 · Why was it denied?
Every refusal explains itself, with a fix for the agent and a fix for the site. See all reason codes.
No refusals yet
6 · Copy-paste integration
Generated for your site. Each snippet reads the environment key from PASSPORT_ENV_KEY (ENV_KEY for the Worker): the key is never embedded. The site-checker package is an early preview, not on npm yet.
For agent builders
The agent-side SDK registers a passport, signs requests, presents licenses and keeps verifiable stamps. See packages/agent-sdk in the repository.
import { PassportAgent } from "./packages/agent-sdk/dist/index.js";
const agent = await PassportAgent.register({ registry: "https://superintelligencepassport.com", name: "Shopping Agent" });
await agent.issueLicense({ site: "https://shop.example", environment: "env_...", actions: ["http:GET", "pay:purchase"],
spend: { per_txn_max: "50.00", total_max: "200.00" }, approval_above: "25.00" });
const res = await agent.fetch("https://shop.example/catalog"); // signed + licensed automatically
console.log(res.passport.decision); // allow | deny | approval_required (HTTP 402)
if (!res.ok) console.log(await res.passport.explain()); // { title, why, agent_fix: [...] }