Stripe reduced a payment to one API call. NoData does the same for an information transaction. One call computes who is asking, for what, in which context, for what purpose and under which policy — releases only what the policy allows, and returns a signed receipt. Field-level, in under 10 minutes.
One line of code · instead of pages of docs
Give any agent an identity. Decide what may decrypt.
claude mcp add nodata -- npx @nodatachat/mcp
With no key, it walks you through the next step. Works with Claude, Codex, and any MCP client.
Information is exposed in every one of these — to an employee, a supplier, an agent. Each exposure is a transaction, and runs through one governed call.
The ssn was not filtered from the response. It was never opened.That is the difference between a filter and an authorization, and the first thing an auditor will ask you.
A document sent, a tool an agent calls, a RAG retrieval, an inbound mailbox, a transfer to another company — the very same transaction, and the same call.
10,000 API calls free every monthNo credit card · no sales call
Install, one call, a signed answer. No server to stand up and no schema to change.
1 · install
npm i @nodatachat/sdk
2 · the call
import { NoData } from '@nodatachat/sdk';
// your org key: ndp_...
const nd = new NoData({ apiKey: process.env.NODATA_KEY });
const { decision, answer, proof } = await nd.compute({
question: 'What is the claim status?',
clearance: 'internal',
sections: [
{ title: 'Status', text: 'Approved on 2026-07-14' },
{ title: 'SSN', text: '123-45-6789' }, // out of clearance
],
});
await nd.verify(proof.id); // { authentic, unaltered, signer }
3 · what comes back
decision: 'allow'
answer: answered from Status only · SSN never reached the model
proof: signed
That's it. There is no step four.
How it works
Two kinds of token: ndp_ is your organization, ndca- is a single agent and is shown once.
POST /api/v1/governance/grant # agent + grant, returns ndca-...
POST /api/access/compute # "may I?": a decision, no data
POST /api/agents/{handle}/read # reads only what was authorized