Protocol v1.0

Every claim
declares how
it knows.

EP-1 is an evidential metadata protocol for AI agents. Inspired by the Matsés language of the Amazon, where grammar makes unattributed claims impossible.

direct 0.95
Balance is 2.5 SOL
solana-rpc:getBalance — 4s ago
inferred 0.72
Token appears abandoned
tx-history:analysis — no txns in 90 days
reported 0.55
Market cap is $2.1B
messari:report-2025 — 3rd party data
conjecture 0.20
Project will likely gain traction
model:prediction — no supporting evidence

Born from the Matsés

The Matsés people of the Peru-Brazil Amazon speak one of the most epistemically rigorous languages on Earth. Their grammar requires every verb to carry a suffix declaring how the speaker knows what they claim.

A Matsés speaker cannot say "it rained" without encoding whether they saw the rain, inferred it from wet ground, or heard about it from someone else. The grammar structurally prevents unattributed claims.

EP-1 applies this constraint to AI systems. No agent output, no MCP tool response, no generated content can exist without declaring its epistemic basis.

Matsés Suffix Meaning EP-1 Class AI Example
-ek I experienced it direct RPC returned 2.5 SOL
-ësh I deduced it inferred Token abandoned (no txns 90d)
-ash Someone told me reported CoinGecko lists price at $142
-ash I'm guessing conjecture Project will likely gain traction

Four evidence classes

Ordered by epistemic strength. A chain is only as strong as its weakest link.

Direct

First-hand observation. The system made the API call, read the file, queried the chain.

confidence ≥ 0.9

Inferred

Derived from direct evidence through reasoning. Pattern matching, statistical correlation, log analysis.

confidence ≥ 0.5

Reported

Sourced from another agent, external API, third-party content, or cached data of unknown freshness.

confidence ≥ 0.3

Conjecture

Speculation based on incomplete information. Must include explicit reasoning. Flagged for review.

confidence ≥ 0.1

Drop-in integration

Works with any MCP server, agent framework, or content pipeline.

$ npm install evidential-protocol
MCP Tool Wrapper middleware
import { McpEvidenceWrapper } from
  'evidential-protocol/mcp';

const wrapper = new McpEvidenceWrapper();

// Wrap any tool handler
const getBalance = wrapper.wrap(
  'solana-rpc:getBalance',
  async (args) => rpc.getBalance(args)
);

const result = await getBalance({ pubkey });
// result._evidence.class === "direct"
// result._evidence.confidence === 0.95
// result._evidence.ttl === 30
Agent Team Builder fluent API
import { AgentOutputBuilder } from
  'evidential-protocol/agent';

const output = new AgentOutputBuilder({
  team: 'security',
  role: 'auditor'
})
  .direct('3 keys valid', 'vault:scan')
  .inferred('Key revoked',
    'api:401', '3 failures')
  .conjecture('Token stale',
    'mtime', '94 days old')
  .build({ expired: 1 });
// Validates on build. Throws if invalid.
Content Pipeline publish gate
import { publishGate } from
  'evidential-protocol/content';

const content = `
  Market cap is $5B.
  [ev:reported|messari|0.7]
  Growth projected at 40%.
  [ev:conjecture|model|0.2]
`;

const gate = publishGate(content);
// gate.approved === false
// gate.trust.score === 0.33
// "Trust below 0.5 — review required"
Inter-Agent Propagation trust chain
import { inheritClaim, verifyClaim }
  from 'evidential-protocol';

// Inherit: never upgrades class
const inherited = inheritClaim(
  upstreamClaim, 'agent-B'
);
// direct@0.95 → inferred@0.855
// (10% penalty, class downgrade)

// Verify: upgrade only with proof
const verified = verifyClaim(
  inherited, 'agent-C',
  'solana-rpc:verify', 'direct'
);

Protocol rules

MUST Evidence on every claim

Every response includes at least one claim. Every claim includes an evidence object with class, confidence, source, and timestamp.

MUST Meet confidence floors

direct ≥ 0.9, inferred ≥ 0.5, reported ≥ 0.3, conjecture ≥ 0.1. Enforced by the validator on build.

MUST Reasoning for conjecture

Conjecture claims require an explicit reasoning field. If you're guessing, say why.

MUST Aggregate = weakest

The aggregate evidence class of a response is the lowest class among all claims. One guess poisons the batch.

NEVER Upgrade without proof

Inherited claims can only stay the same class or degrade. Only independent verification can upgrade.

NEVER Suppress conjecture

Don't hide low-confidence claims. Surface them with their evidence class so humans can evaluate.

Trust scoring & degradation

Evidence decays. Direct observations become stale reports, then conjecture.

Direct (9) Inferred (5) Reported (4) Conjecture (2)
•••••••••◐◐◐◐◐○○○○◌◌  14/20 verified  |  Trust: 0.688  |  Lowest: conjecture
direct — TTL expires → reported — 24h stale → conjecture

No claim without proof.

EP-1 is open source, zero dependencies, and ready to drop into any TypeScript agent framework. Built by Purple Squirrel Media.

Exports: evidential-protocol · evidential-protocol/validate · evidential-protocol/middleware · evidential-protocol/mcp · evidential-protocol/agent · evidential-protocol/content · evidential-protocol/dashboard

101 tests · 0 dependencies · MIT License · TypeScript-first