Back to Nodes

Signatrust

Last updated Aug 6, 2026

n8n community node for Signatrust. Generate, verify, and retrieve cryptographically signed AI Decision Receipts (Ed25519) with Decision Boundary Disclosure for autonomous AI agents. Cloud and self-hosted enterprise.

100 Weekly Downloads
630 Monthly Downloads

Included Nodes

Signatrust

Description

Signatrust

The trust, verification, and accountability layer for autonomous AI agents.

![n8n](https://www.npmjs.com/package/n8n-nodes-signatrust)
![npm](https://www.npmjs.com/package/signatrust)

signatrust.net · Documentation · ADR Specification · Verify a receipt

What is Signatrust?

Signatrust generates and verifies cryptographically signed AI Decision Receipts. Each receipt is independently verifiable evidence of an autonomous AI action — without exposing prompts, outputs, or sensitive business data.

Every AI decision becomes a verifiable, non-repudiable fact.

Core capabilities

| Capability | Description |
|—|—|
| Ed25519-signed receipts | Every AI decision is sealed into a tamper-evident, hash-chained receipt |
| Decision Boundary Disclosure | Receipts declare which domains were evaluated and excluded — backed by versioned sector schemas |
| Independent verification | Any party can verify a receipt without accessing raw data or your systems |
| Chain of custody | Tool-call-level sealing with shared trace_id across agent steps |
| Privacy-preserving | Only SHA-256 fingerprints leave your infrastructure — never raw content |
| Sector schemas | 8 pre-built schemas (automotive, medical, credit, insurance, HR, legal, industrial IoT, generic) |
| AI Agent agnostic | Works with any model, framework, or orchestration platform |

Packages & integrations

| Directory | Description | Status |
|—|—|—|
| sdk-js/ | JavaScript/TypeScript SDK (signatrust on npm) | ✅ Live |
| n8n-node/ | Official n8n Community Node | ✅ Live |
| langchain-signatrust/ | LangChain integration | ✅ Live |
| crewai-signatrust/ | CrewAI integration | ✅ Live |
| autogen-signatrust/ | AutoGen integration | ✅ Live |
| openai-agents-signatrust/ | OpenAI Agents SDK integration | ✅ Live |

Quick start (JavaScript/TypeScript)

import { Signatrust } from 'signatrust';

const str = new Signatrust({ apiKey: process.env.SIGNATRUSTAPIKEY });

const { receipt } = await str.sign({ model: { provider: 'openai', name: 'gpt-4o', version: '2026.4' }, decision: { type: 'loan_rejection', input, // hashed locally — raw data never leaves output, // hashed locally risk_level: 'high', human_review: true, policies: ['eu-ai-act-high-risk'], }, });

const { valid } = await str.verify(receipt.id); // true

Decision Boundary Disclosure (DBD)

Not just what the AI decided — what it didn’t consider. DBD extends receipts with a signed scope declaration:

const { receipt } = await str.sign({
  decision: { type: 'collisionassessment', input, output, risklevel: 'high' },
  scope_declaration: {
    sectorschemaid: 'automotive_collision.v1',
    domains_evaluated: [
      { domainid: 'physicsimpact_force', status: 'computed' },
      { domainid: 'vehiclestructural_integrity', status: 'computed' },
    ],
    domains_excluded: [
      { domainid: 'occupantbiologicalimpact', reason: 'nodatasourceavailable', excludedby: 'datagap' },
      { domainid: 'pedestrianthirdpartyimpact', reason: 'notinscopeofthismodule', excludedby: 'design' },
      // ... all remaining domains must be declared
    ],
  },
});

console.log(receipt.scopedeclaration.coverageclassification); // 'partial'

Key rules:

  • Every domain in the sector schema must be classified as evaluated or excluded — silent omission is rejected at signing time.
  • Coverage classification (full/partial/minimal), disclosure statement, and schema hash are computed server-side.
  • The scope declaration is inside the signed body — non-repudiable.
  • Browse schemas: GET https://signatrust.net/api/v1/schemas

    Chain of custody — tool-call-level sealing

    const trace = str.trace({ mode: 'everytoolcall' });

    await trace.step({ steptype: 'toolcall', toolname: 'search', decision: { type: 'searchresult', output: results } }); await trace.step({ steptype: 'toolcall', toolname: 'dblookup', decision: { type: 'lookup', output: rows } }); await trace.step({ steptype: 'finalresponse', decision: { type: 'loandecision', input, output, risklevel: 'high' } });

    console.log(trace.traceid, trace.receipts.length); // trace..., 3

    How it works

    AI Agent makes a decision
            ↓
    POST /api/v1/receipts (with optional scope_declaration)
            ↓
    Returns: receipt + signature + hash + verify_url
            ↓
    Anyone verifies at: https://signatrust.net/verify
    

    No raw prompts, no model outputs, no sensitive data leaves your system.

    Links

  • Platform: signatrust.net
  • Documentation: signatrust.net/docs
  • ADR Specification: signatrust.net/adr
  • Sector schemas: signatrust.net/api/v1/schemas
  • Verify: signatrust.net/verify
  • Enterprise: partners@signatrust.net

© 2026 Signatrust — Apache-2.0