Skip to main content

The consent & trust layer for AI agents

Zyton records the consent your users give in your app, checks it before an AI agent touches their data, and keeps an audit log of every allowed and blocked action.

Already have an account? Sign in

Works with MCP servers and LangChain. The SDK is open source and in developer preview.

Consent receipt

Revoked

Agent
Inbox Assistant
Acting for
Maya Chen
May read
Email
Purpose
Summarize the inbox
Expires
In 1 hour
Token
ct_9f3a…7e21

Activity

  1. 10:02read_inboxAllowed
  2. 10:04Maya revoked access
  3. 10:04read_inboxBlocked

Written to the audit loga90b3f…e17c

Example: an AI agent's access is granted, checked, revoked and recorded.

How an agent action is checked

  1. The agent shows who it is

    Every agent has an identity others can check (X.509-style certificates), tied to the person accountable for it, who can stop it at any time.

  2. Your app records consent

    A person agrees in your app, and your backend records a signed consent token that names the data, the purpose and how long it lasts. If they change their mind, you revoke it.

  3. Every action is checked

    Before a tool runs, Zyton checks the token. Expired, revoked or out-of-scope requests are refused, so the tool never runs.

  4. Everything is recorded

    Each allowed and blocked action is written to your organization's audit log, which your admins can read in the developer portal.

For developers

Wrap any agent tool so it runs only with an active, in-scope consent token. Revoked or expired tokens fail closed, and every decision goes to the audit log.

Install

npm install @zyton/pip
// userId: your own id for the person; you recorded their consent
// with pip.consent.recordGrant() when they agreed in your app
import { PipClient } from '@zyton/pip';
import { withConsentGate } from '@zyton/pip/consent-gate';

const pip = new PipClient({ apiKey: process.env.PIP_API_KEY });
const { entityId } = await pip.authenticate(); // swaps the key for a short-lived token
const gate = { consent: pip.consent, actorEntityId: entityId!, audit: pip.createAuditWriter() };

// read_inbox runs only while the person's consent covers reading their email
const readInbox = withConsentGate(
  gate,
  { toolName: 'read_inbox', subjectRef: userId, operation: 'read', dataCategories: ['email'] },
  (folder: string) => fetchInbox(folder),
);

await readInbox('INBOX'); // allowed, and recorded
// after you revoke their grant: throws ConsentDeniedError

Built on PIP, the Privacy Infrastructure Protocol. The docs cover the TypeScript SDK and the HTTP API.

Already have an account? Sign in

Plans and pricing

Compare plans in detail
  • Free

    $0per month

    Build and test your agent integration.

    Start free

    No card required

  • Team

    $49per month

    For agents running in production.

  • Enterprise

    $199per month

    For the highest volumes, with priority support.

One flat price per month, with no per-call charges. Every plan has a monthly usage cap.

Every account starts on Free. Upgrade to Team or Enterprise from billing in the developer portal.

Prices are in US dollars. Any tax is calculated at checkout from your billing country.