Getting Started

Build on
Rubric Protocol.

Integrate post-quantum AI attestation into any system in minutes. Every AI decision your system makes becomes cryptographically signed, Merkle-batched, and permanently anchored to Hedera Consensus Service.

Note

Rubric Protocol is live on Hedera Mainnet. HCS topic 0.0.10416909. Cross-chain anchoring active on Base mainnet.

Installation

Install the TypeScript SDK via npm, or the Python SDK via pip.

TypeScript / Node.js
npm install @rubric-protocol/sdk
Python
pip install autogen-rubric

First Attestation

The following example attests an AI agent output to Hedera in under 5 minutes.

01

Initialize the client

Instantiate RubricClient with your API key and target network.

import { RubricClient } from '@rubric-protocol/sdk'; const client = new RubricClient({ apiKey: process.env.RUBRIC_API_KEY, network: 'mainnet' });
02

Attest a decision

Submit any AI decision event. Rubric constructs a Merkle leaf, signs with ML-DSA-65, and batches for HCS anchoring.

const result = await client.attestations.attest({ agentId: 'credit-model-v3', leafType: 'AGENT_OUTPUT', data: { decision: 'APPROVE_LOAN', confidence: 0.94, modelVersion: '3.2.1' } }); // result.attestationId — permanent, on-chain forever // result.sigValid — ML-DSA-65 verified: true // result.onChain — anchored to HCS 0.0.10416909: true
03

Verify anytime

Any attestation is verifiable in O(1) via local index, or independently via HCS mirror node — no trust required.

const proof = await client.attestations.verify( result.attestationId ); // proof.verified — true // proof.sigValid — true // proof.securityLevel — 'ML-DSA-65'
MCP Server

Attestation at the
decision point.

Drop Rubric into Claude Desktop, Claude Code, Cursor, Windsurf, Continue, or Zed — every agent tool call becomes a post-quantum signed, Merkle-rooted, Hedera-anchored audit record.

Available

Both ports live: @rubric-protocol/mcp-server on npm, rubric_mcp_server on PyPI. Identical 8-tool surface. Free local tier in both.

Installation

Choose the port that matches your runtime. Both expose identical tools and return the same attestation IDs.

TypeScript / Node.js
npm install -g @rubric-protocol/mcp-server
Python 3.10+
pip install rubric_mcp_server

8 Tools

The full surface exposed by the MCP server. register_agent, status, framework_detect, and cost_estimate work without an API key.

  • attest — Attest an AI decision. HCS-anchored with an API key; PQ-signed local Merkle leaf without.
  • verify — Verify an attestation by ID. Checks local store first, then the federation.
  • get_proof — Generate ZK Merkle inclusion proof (Noir / Barretenberg).
  • register_agent — Request a free developer API key via email.
  • status — Federation health across US, SG, JP, CA, EU nodes + ZK node.
  • framework_detect — Auto-detect applicable regulatory frameworks (EU AI Act, SR 11-7, HIPAA, NIST AI RMF, etc.). Offline.
  • cost_estimate — Estimate monthly Rubric cost from expected decision volume. Offline.
  • bundle_query — Query attestation bundles by leaf type, agent, or time range. Standard+ tier.

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (Mac) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

TypeScript port
{ "mcpServers": { "rubric": { "command": "npx", "args": ["-y", "@rubric-protocol/mcp-server"], "env": { "RUBRIC_API_KEY": "rubric-your-key" } } } }
Python port
{ "mcpServers": { "rubric": { "command": "rubric-mcp", "env": { "RUBRIC_API_KEY": "rubric-your-key" } } } }

Claude Code

claude mcp add rubric --command rubric-mcp --env RUBRIC_API_KEY=rubric-your-key

Cursor

Add to ~/.cursor/mcp.json or project-local .cursor/mcp.json:

{ "mcpServers": { "rubric": { "command": "rubric-mcp", "env": { "RUBRIC_API_KEY": "rubric-your-key" } } } }
API Reference

REST API

All endpoints are available at https://rubric-protocol.com/verify/. Authentication via x-api-key header.

Base URL

https://rubric-protocol.com/verify/

Authentication

x-api-key: YOUR_API_KEY

Attestation Endpoints

POST /v1/attest
Submit a single AI decision event for attestation. Returns an attestationId anchored to HCS.
FieldTypeDescription
agentIdstringUnique identifier for the AI agent or system
leafTypeenumAGENT_OUTPUT · HUMAN_REVIEW · RULE_APPLIED · DOCUMENT_HASH · MODEL_VERSION · DATA_RECORD · EXTERNAL_ORACLE
dataobjectArbitrary decision payload — serialized, hashed, included in Merkle leaf. Encrypted at rest with customer-held key.
attestationIdstringOptional. Provide your own ID for correlation
pipelineIdstringOptional. Link attestations across a workflow pipeline
POST /v1/batch-attest
Submit up to 100,000 attestations in a single request. Constructs a Merkle forest and writes one HCS message regardless of batch size. ~0.13s for 1,000 items.
FieldTypeDescription
itemsarrayArray of attestation objects. Same schema as /v1/attest

Enterprise Endpoints

POST /v1/attest
Submit a decision to the enterprise tiered pipeline. Aggregates up to 100,000 attestations per HCS write via Merkle tree. Payload is encrypted with a customer-held AES-256-GCM key — Rubric stores ciphertext only. Returns payloadKey once — store it securely.
FieldTypeDescription
dataobjectDecision payload. Encrypted at submission — Rubric never stores plaintext.
sourceIdstringIdentifier for the submitting system
pipelineIdstringOptional. Link attestations across a workflow
attestationIdstringOptional. Provide your own UUID for correlation
ResponseTypeDescription
attestationIdstringPermanent record ID — use to retrieve ZK proof
payloadKeystring64-char hex AES-256 key. Returned once. Not stored by Rubric.
payloadCommitmentstringSHA3-256(payloadKey + attestationId) — verifiable binding
statusstringbuffered — queued for Merkle aggregation
GET /v1/zk-proof/:attestationId
Retrieve the cryptographic Merkle inclusion proof for a tiered attestation. Returns 202 while proof is generating (~45s after submission), 200 when ready. The proof is independently verifiable against the HCS-anchored zkRoot without Rubric's involvement.
ResponseTypeDescription
statusstringready or pending
proof.zkLeafstringBN254 field element — your record's leaf hash
proof.zkRootstringcryptographic Merkle root — matches HCS anchor
proof.zkPatharray20-element sibling path for independent verification
hcsSeqNumstringHCS sequence number — populated ~60s after submission
hcsExplorerUrlstringHashscan link for on-chain verification
POST /v1/payload-decrypt
Decrypt a payload using the customer-held payloadKey. Rubric verifies the payloadCommitment before decrypting — wrong keys are rejected without attempting decryption. Use at audit time to recover original decision data for ZK witness generation.
FieldTypeDescription
attestationIdstringThe attestation to decrypt
payloadKeystring64-char hex key returned at submission time
ResponseTypeDescription
payloadobjectOriginal decision data
payloadCommitmentstringCommitment for ZK witness binding
flushedAtstringISO timestamp of Merkle flush

Verification Endpoints

GET /v1/verify/:id
Verify any attestation. O(1) lookup via local index with HCS mirror node fallback for full independent verification. No trust required.
GET /v1/health/deep
Full system health including HCS connectivity, latency, attestation index status, and memory.

Batch & Status

GET /v1/attestations
Paginated list of all attestations. Supports filtering by agentId, leafType, and time range.
GET /v1/attestations/:id
Retrieve full attestation record including Merkle proof path, signature hash, and HCS sequence number.

Agent Management

POST /v1/agents/register
Register an AI agent. Establishes identity, capability set, and reputation baseline for routing and trust scoring.
Cryptography

Post-Quantum
Security Model

Rubric Protocol is built on NIST-standardized post-quantum cryptography. Every attestation is resistant to both classical and quantum adversaries — permanently.

Security Level

ML-DSA-65 provides NIST Category 3 security — equivalent to AES-192. A quantum computer running Shor's algorithm cannot forge or retroactively invalidate any Rubric attestation.

ML-DSA-65 Digital Signatures

ML-DSA-65 (Module-Lattice Digital Signature Algorithm, formerly CRYSTALS-Dilithium) is the NIST post-quantum digital signature standard finalized in FIPS 204. Rubric uses it as the sole signing algorithm for all attestations.

Algorithm

CRYSTALS-Dilithium · Module lattice-based · FIPS 204

Security Level

NIST Category 3 · ~AES-192 equivalent

Public Key Size

1,952 bytes

Signature Size

3,293 bytes

Keypairs are generated once per node, encrypted at rest with AES-256-CBC using a passphrase, and never transmitted. The public key is published to HCS on initialization. All attestation batches are signed before HCS submission.

ML-DSA-65 Implementation

Rubric deploys ML-DSA-65 across two paths. The standard attestation path uses @noble/post-quantum — a formally verified, pure TypeScript implementation with no native dependencies, optimized for auditability and cross-platform correctness. The enterprise tiered path uses a liboqs C++ N-API addon — a native Node.js binding to the Open Quantum Safe library — delivering 52× faster signing for high-throughput bulk attestation. Deployed across all 5 federation nodes.

Merkle Forest Architecture

Individual attestations are not written to HCS one-by-one — that would be prohibitively expensive at scale. Instead, Rubric constructs a Merkle forest: a set of individual Merkle trees, one per pipeline or batch group, whose roots are then combined into a single forest root.

This means a batch of 100,000 attestations produces exactly one HCS write. The forest root represents the entire batch cryptographically — any individual leaf can be proven against it.

// Merkle forest construction (simplified) const forest = new MerkleForest(); // Each item becomes a typed, nullified leaf leaves.forEach(l => { const leaf = sha3_256( canonical_json({ type: l.leafType, data: l.data, nullifier: l.nullifier }) ); forest.addLeaf(leaf); }); // One forest root — one HCS write const { forestRoot, sigHash } = forest.computeRoot(); await hcsClient.submitMessage({ forestRoot, sigHash, zkProof: null });

Each leaf includes a nullifier — a unique value that prevents duplicate attestation attacks. Direction bits on proof paths ensure every leaf position is unique and tamper-evident.

Hedera Consensus Service Anchoring

The forest root and signature hash are submitted to HCS topic 0.0.10416909. Hedera's hashgraph consensus provides an immutable, globally-ordered timestamp — the attestation exists permanently in the public record.

Verification requires only the attestationId. Rubric maintains a local O(1) index for instant lookups. For fully independent verification, any party can query the HCS mirror node directly — no reliance on Rubric infrastructure required.

Cryptography

Zero-Knowledge
Proof Layer

Rubric Protocol includes a production-deployed ZK layer for cryptographic Merkle inclusion proofs. Every attestation batch can be proven with cryptographic Merkle inclusion proofs. Full payload privacy proofs are live. Every attestation is encrypted with a customer-held AES-256-GCM key — Rubric stores only ciphertext. Customers retrieve plaintext using their key via /v1/payload-decrypt. ZK proofs over committed payload values (proving compliance without revealing decision data) are in active development.

Production Status

ZK proofs are live at zk.rubric-protocol.com. A Noir circuit generates depth-20 cryptographic Merkle inclusion proofs — 122 ACIR opcodes — verified on every tier-1 flush across all federation nodes.

Circuit

Noir beta.19 · Depth-20 cryptographic Merkle inclusion · 122 ACIR opcodes

Endpoints

/v1/zk-prove · /v1/zk-verify · Proxied through all 5 federation nodes

Hash Function

Poseidon2 — ZK-native, algebraically efficient over prime fields

Overhead

~15% throughput cost at tier-1 flush · Recoverable via request queue parallelization

How It Works

At every tier-1 flush, the attestation batch is forwarded to the dedicated ZK node. The Noir circuit computes a cryptographic Merkle inclusion proof over the batch. The proof is attached to the HCS submission alongside the ML-DSA-65 signature.

Any third party can verify that a specific attestation is included in a batch without seeing any other attestation in that batch. The proof is self-contained — no Rubric infrastructure required for verification.

ZK Roadmap

PhaseStatusDescription
Merkle Inclusion ProofsLiveDepth-20 Poseidon2 circuit on dedicated ZK node
Payload Privacy (Level 2)LiveAES-256-GCM encryption at submission. Customer holds key — Rubric stores ciphertext only. Decrypt via /v1/payload-decrypt with payloadKey.
ZK Federation RoundsMonth 3–6Prove threshold consensus without revealing individual node votes
Cross-Customer PrivacyMonth 9–18Prove compliance aggregates without revealing individual records
ZK Compliance ReportsYear 2Regulator-ready ZK proofs for EU AI Act, SR 11-7, and NIST RMF audits
Why Rubric

Your AI Knows What
It Decided. Can It Prove It?

Existing AI systems are optimized to make decisions — not to prove them. Rubric closes that gap.

01
Internal logs are self-reported

A model saying it logged a decision is like a defendant keeping their own records. It means nothing to a regulator. Rubric creates an external, cryptographically signed record the AI system cannot alter after the fact.

02
Standard logging tools aren't compliant

Standard observability and logging platforms produce mutable logs. An administrator with the right access can edit them. Article 12 requires tamper-evident, independently verifiable records. Rubric anchors to Hedera Consensus Service, a public ledger no one controls.

03
Volume makes manual compliance impossible

At scale, AI systems make millions of consequential decisions per day. Logging, signing, and archiving each one individually would require a compliance team larger than engineering. Rubric's Merkle forest compresses any batch — 1 decision or 150 million — into a single cryptographic commitment. One record proves all of them.

Your current systems know what decisions were made. Rubric proves it — to a regulator, in court, without trusting anyone's word.

Global AI Compliance

Every major framework.
One integration.

Rubric is post-quantum AI compliance infrastructure. Declare your system's intended use and jurisdiction — Rubric computes your full regulatory obligation set automatically and generates cryptographically verifiable evidence packages for every applicable framework.

RegulationScopeRubric Coverage
EU AI Act
Art. 9–15, 17, 26, 49, 72, 73
Annex IV, XI, XII
High-risk AI + GPAI — technical documentation, record-keeping, human oversight, post-market monitoringDeclaration-driven compliance engine + Annex IV Evidence Package generator + continuous attestation stream
SR 11-7 / OCC / FDIC
Fed Reserve · OCC · FDIC
Model risk management for US financial institutions — inventory, validation, outcome analysis, exceptionsmodelTier + validationStatus + outcome fields → SR 11-7 evidence report
NIST AI RMF 1.0
GOVERN · MAP · MEASURE · MANAGE
Voluntary framework — mandatory safe harbor in TX, CO, and federal procurementFour-function attestation mapping → NIST RMF safe harbor certificate
TX TRAIGA
In effect Jan 1, 2026
Impact assessment + algorithmic discrimination preventionriskLevel + populationGroup → safe harbor via NIST RMF alignment
CO AI Act
Effective Jun 30, 2026
Pre-deployment risk assessment + discrimination preventionPre-deployment attestation + NIST RMF safe harbor certificate
HIPAA · EU DSA · NIS2PHI protection · content moderation · critical infrastructureAES-256-GCM payload encryption · moderation event attestation · infrastructure schema

The section below provides a technical deep-dive on EU AI Act Article 12 — the record-keeping obligation that underpins Rubric's core attestation architecture. All other frameworks build on this foundation.

EU AI Act

Article 12
Compliance Guide

Official text: EU AI Act — Regulation (EU) 2024/1689, Article 12 ↗

The EU AI Act requires providers and deployers of high-risk AI systems to maintain detailed records of system operation. Article 12 mandates automatic logging sufficient to enable post-hoc accountability. [EUR-Lex ↗] Rubric Protocol is designed to satisfy these requirements by default.

Enforcement Timeline

Article 12 record-keeping requirements apply from August 2026 for high-risk AI systems. Systems processing personal data, making consequential decisions (credit, employment, healthcare, law enforcement), or operating in critical infrastructure are subject to these requirements.

What Article 12 Requires

Article 12 of the EU AI Act mandates that high-risk AI systems automatically generate logs that enable monitoring for the duration of operation. Specifically:

RequirementRubric Implementation
Automatic logging of operationEvery decision submitted via /v1/attest is automatically recorded with timestamp, agent identity, and decision payload
Recording period and contentAttestations are permanently anchored to HCS — immutable, with Hedera consensus timestamp as authoritative record
Traceability of decisionsEach attestation includes agentId, leafType, pipelineId, and full data payload — complete decision lineage
Integrity of recordsML-DSA-65 signatures prevent tampering. Merkle proofs enable independent verification of any individual record
Access for competent authoritiesRegulator portal provides read-only access to attestation records with cryptographic proof of authenticity

Audit Trail Architecture

A complete audit trail for an AI decision looks like this in Rubric Protocol:

01

Decision event captured

Your AI system submits the decision to Rubric PROOF with full context — model version, input hash, output, confidence score, and any rule applied.

02

Cryptographic commitment

Rubric constructs a SHA3-256 Merkle leaf with nullifier. The leaf is signed with ML-DSA-65. This creates a tamper-evident, quantum-resistant record of the exact decision state.

03

On-chain permanence

The Merkle forest root is submitted to Hedera Consensus Service. The HCS timestamp becomes the authoritative, globally-ordered record of when the decision occurred.

04

Regulator access

Competent authorities can query any attestation by ID and receive a cryptographic proof of authenticity — verifiable independently without Rubric's involvement.

Important

Rubric Protocol provides post-quantum AI compliance infrastructure covering EU AI Act (Articles 9–15, 17, 26, 49, 72, 73, Annexes IV, XI, XII), SR 11-7, NIST AI RMF 1.0, TX TRAIGA, CO AI Act, and more. Organizations remain responsible for determining their regulatory obligations under their specific use case and for implementing appropriate governance processes. Consult legal counsel for compliance advice.

Federation

Multi-Node
Architecture

Rubric Protocol operates as a federated network of independent nodes. Each node maintains its own ML-DSA-65 keypair and participates in threshold consensus before HCS anchoring.

Current Network

5 nodes — US East · Canada · Singapore · EU · Japan

V3 Target

5 nodes upgraded to 8 vCPU / 32GB · ~1.05B attestations/day pre-ZK · ~885M/day with ZK

Consensus

ML-DSA-65 threshold signatures · 3-of-5

Throughput

327M+ attestations/day · 3,789 RPS peak · H41 validated: 0.00% error rate

Node Requirements

Each federation node requires:

ResourceMinimumRecommended
vCPU2 cores8 dedicated cores
RAM4 GB32 GB
Storage100 GB SSD500 GB NVMe
Network100 Mbps1 Gbps
OSUbuntu 22.04+Ubuntu 24.04

Threshold Consensus

Before any Merkle forest root is submitted to HCS, participating nodes must reach threshold consensus. Each node independently signs the forest root with its ML-DSA-65 key. Once the threshold is met (currently 3-of-5), the combined signature is anchored.

This means no single node can submit fraudulent attestations — consensus is required. Geographic distribution across jurisdictions also ensures no single regulatory action can take down the network.

Threshold Key Ceremony

Federation signing keys are protected by a Shamir Secret Sharing scheme. Each master signing key is split into 5 shares using pure GF(256) arithmetic — any 3 shares reconstruct the key. No single node ever holds the complete key.

Scheme

Shamir Secret Sharing · Pure GF(256) · 3-of-5 threshold

Key Storage

Encrypted share keystore per node · AES-256-CBC · Passphrase-protected at rest

Inter-Node Auth

HMAC-authenticated share requests · No unauthenticated share exposure

Ceremony

One-time key ceremony · Setup files deleted post-deployment · Key never reconstructed outside signing

Threshold signing is exposed via /v1/threshold-attest. The coordinating node requests partial signatures from peers via HMAC-authenticated inter-node calls. The combined signature is assembled at submission time and never persisted.

Scale

Any Enterprise.
Any Volume.

One HCS write per batch — 1 decision or 150 million. The architecture doesn't change. The cost barely does.

Today
5-node live federation across 3 continents. ML-DSA-65 threshold consensus. Scales horizontally with demand. Capacity is a deployment decision, not an architectural constraint.
August 2026
EU AI Act enforcement begins. High-risk AI systems must maintain tamper-evident logs. Rubric is ready. Is your AI?

Reliable Queue Architecture

The attestation pipeline is backed by a Redis reliable queue using the BRPOPLPUSH pattern. Every incoming attestation is atomically moved from an intake queue to a processing queue before any work begins. If a node restarts mid-batch, in-flight attestations are recovered automatically on startup — zero attestation loss by design.

The queue drives an 8-worker cluster per node, sustaining the throughput behind 327M+ attestations/day across the 5-node federation.

SDK

@rubric-protocol/sdk

TypeScript SDK for direct integration. Full type definitions, AttestationsService, StorageService, and federation-aware routing built in.

npm install @rubric-protocol/sdk

autogen-rubric Python

One-line auto-instrumentation for 13 AI frameworks. Every LLM call, agent decision, and tool use is attested automatically — no per-decision code required.

pip install autogen-rubric

Auto-Instrumentation — Recommended

Add one line at app startup. Rubric detects installed frameworks and patches them at the class level. Complete attestation coverage by construction — no codebase audit required.

import autogen_rubric as rubric # One line at startup — attests everything from here i = rubric.instrument( api_key="your-rubric-api-key", pipeline_id="my-ai-app", # optional node="us", # us, eu, sg, jp, ca, auto enterprise=True, # tiered Merkle path (recommended) payload_key_dir="/secure/keys", # where to store payload keys ) print(i.status()) # {"instrumented": ["openai", "anthropic", "llama_index", ...], "pipeline_id": "my-ai-app"} # All subsequent calls are now attested automatically: # openai.chat.completions.create(...) # anthropic.messages.create(...) # index.query(...) # chain.invoke(...)

Client Reference

import { RubricClient } from '@rubric-protocol/sdk'; const client = new RubricClient({ apiKey: 'YOUR_API_KEY', network: 'mainnet' // | 'mainnet' }); // Services client.attestations // AttestationsService client.storage // StorageService

AttestationsService

MethodDescription
attest(params)Submit single attestation. Returns attestationId, sigValid, onChain
batchAttest(items)Submit array of attestations. One HCS write regardless of size
verify(id)Verify attestation by ID. Returns verified, sigValid, securityLevel
get(id)Retrieve full attestation record with Merkle proof
list(filters)Paginated list with agentId, leafType, date range filters

Examples

Real-world integration patterns across regulated industries.

Logistics — Route optimization audit trail

A logistics operator runs 150M AI routing decisions per day. Every decision attested in a single HCS write per batch. Regulators get a cryptographic receipt for every reroute, delay override, or priority escalation — provable in court.

AI Router
Batch
150M/day
Merkle
Forest
ML-DSA-65
Sign
HCS
Write
Regulator
Receipt
// 150M decisions/day = ~1,736/sec. One HCS write regardless of batch size. const batch = decisions.map(d => ({ agentId: 'route-optimizer-v4', leafType: 'AGENT_OUTPUT', data: { shipmentId: d.id, fromHub: d.origin, toHub: d.destination, reason: d.rerouteReason, confidence: d.modelConfidence } })); const result = await client.attestations.batchAttest(batch); // forestRoot anchored to HCS in ~2.5s. Audit cost: ~$0.015/day at 150M decisions.

Financial Services — Full loan decision lineage

EU AI Act Article 12 requires lenders using AI to maintain complete, tamper-evident records of every automated credit decision. Rubric creates an immutable chain: model output → compliance check → human review → final approval.

Credit
Model
Compliance
Check
Human
Review
Pipeline
ID
HCS
Anchor
Art.12
Record
const pid = `loan-${applicantId}-${Date.now()}`; // 1. Credit model scores the application await client.attestations.attest({ agentId: 'credit-model-v3', leafType: 'AGENT_OUTPUT', pipelineId: pid, data: { score: 742, recommendation: 'APPROVE' } }); // 2. Compliance policy engine validates await client.attestations.attest({ agentId: 'compliance-engine', leafType: 'RULE_APPLIED', pipelineId: pid, data: { ruleSet: 'EU-CRR-2026', passed: true } }); // 3. Underwriter confirms await client.attestations.attest({ agentId: 'underwriter-portal', leafType: 'HUMAN_REVIEW', pipelineId: pid, data: { decision: 'APPROVED', reviewerId: 'U-4421' } }); // Article 12 compliant. Full lineage: GET /v1/pipeline/:pipelineId

Healthcare — AI diagnostic audit trail

A hospital deploys AI for radiology triage. Every recommendation must be auditable for liability, HIPAA, and EU MDR compliance. Rubric attests the model version and output — without storing protected patient data on-chain.

DICOM
Scan
SHA3-256
Hash
AI
Triage
ML-DSA-65
Sign
HCS
(no PHI)
Auditable
Proof
// Hash the scan — never put PHI on-chain const scanHash = sha3_256(dicomBuffer); await client.attestations.attest({ agentId: 'radiology-triage-v2', leafType: 'DOCUMENT_HASH', data: { documentHash: scanHash, modelVersion: '2.4.1', finding: 'NODULE_DETECTED', urgency: 'HIGH', confidence: 0.94 } }); // On-chain: proof the exact model saw this exact scan. // Off-chain: actual scan stays in hospital systems.

Algorithmic Trading — MiFID II decision records

MiFID II and SEC Rule 17a-4 require broker-dealers to retain records of every algorithmic trading decision. Rubric provides a quantum-resistant audit trail verifiable by regulators — without exposing proprietary model internals.

Market
Signal
Algo
Model
Trade
Decision
ML-DSA-65
Sign
HCS
Anchor
SEC
Verifiable
await client.attestations.attest({ agentId: 'algo-trader-momentum-v7', leafType: 'AGENT_OUTPUT', data: { ticker: 'NVDA', action: 'BUY', quantity: 2500, triggerSignal: 'RSI_OVERSOLD', vix: 18.4, modelVersion: 'momentum-v7.2.1' } }); // Immutable proof: model + version + signal — verifiable by SEC // without requiring access to proprietary source code.

LangChain — Automatic agent attestation

Drop one callback handler into any LangChain agent or chain. Every LLM call, tool use, and agent decision is automatically attested to HCS — zero changes to your existing logic. EU AI Act Article 12 compliant out of the box.

import { ChatOpenAI } from '@langchain/openai'; import { RubricLangChainHandler } from '@rubric-protocol/sdk/plugins/langchain'; import { AgentExecutor } from 'langchain/agents'; const rubric = new RubricLangChainHandler({ apiKey: process.env.RUBRIC_API_KEY, events: ['llm', 'agent', 'tool'], // attest what matters pipelineId: 'loan-approval-pipeline', // group decisions by workflow }); const executor = await AgentExecutor.fromAgentAndTools({ agent, tools, callbacks: [rubric], // <-- one line. everything attested. }); const result = await executor.invoke({ input: 'Evaluate loan application #8821' }); // Every LLM output, tool call, and agent decision now has an immutable HCS record. await rubric.shutdown();

LangGraph — Node-level decision attestation

Pass one callback handler in config. Every graph node execution, LLM call, and tool use is attested — ideal for compliance-requiring enterprise deployments where audit trails and human-in-the-loop oversight are requirements.

# pip install autogen-rubric langgraph from autogen_rubric import RubricClient, RubricLangGraphHandler from langgraph.graph import StateGraph client = RubricClient(api_key="rubric-dev-...", background_queue=True) handler = RubricLangGraphHandler(client=client, pipeline_id="langgraph-v1") # Compile your graph as normal graph = builder.compile() # Option 1: pass per invocation result = graph.invoke( {"messages": [...]}, config={"callbacks": [handler]} ) # Option 2: attach permanently graph_with_rubric = graph.with_config({"callbacks": [handler]}) # Every node, LLM call, and tool use attested to HCS.

OpenAI — Wrap once, attest everything

Wrap your existing OpenAI client with one line. Every chat.completions.create() call — streaming or not — is automatically signed and anchored to HCS. No changes to the rest of your codebase.

import OpenAI from 'openai'; import { withRubric } from '@rubric-protocol/sdk/plugins/openai-plugin'; const openai = withRubric(new OpenAI(), { apiKey: process.env.RUBRIC_API_KEY, agentId: 'gpt4-credit-assistant', }); // Your existing code unchanged — attestation is automatic const completion = await openai.chat.completions.create({ model: 'gpt-4o', messages: [{ role: 'user', content: 'Should we approve loan #8821?' }], }); // completion.choices[0].message.content — attested to HCS automatically. // Token usage, model version, finish reason all included in the attestation record.

AutoGen — Attest every agent message

Attach one hook to any AutoGen agent. Every message sent and received is automatically attested to HCS — full multi-agent conversation trails with zero changes to your agent logic.

# pip install autogen-rubric pyautogen from rubric_protocol import RubricClient from rubric_protocol.plugins.autogen import RubricAutogenHook import autogen client = RubricClient(api_key="rubric-dev-...") hook = RubricAutogenHook( client, agent_id="loan-approval-agent", pipeline_id="loan-pipeline-001", ) assistant = autogen.AssistantAgent(name="assistant", llm_config={"model": "gpt-4o"}) # Attach Rubric — one line assistant.register_hook("process_message_before_send", hook.before_send) assistant.register_hook("process_message_after_receive", hook.after_receive) # Every message in the conversation now has an immutable HCS record.

LlamaIndex — Query and retrieval attestation

Add one callback handler to LlamaIndex. Every LLM call and query result is attested to HCS — ideal for RAG pipelines where source fidelity and model output must be provable for compliance.

# pip install autogen-rubric llama-index-core from rubric_protocol import RubricClient from rubric_protocol.plugins.llamaindex import RubricCallbackHandler from llama_index.core import Settings, VectorStoreIndex, SimpleDirectoryReader client = RubricClient(api_key="rubric-dev-...") Settings.callback_manager.add_handler( RubricCallbackHandler(client, agent_id="rag-compliance-agent") ) # Your existing LlamaIndex pipeline unchanged documents = SimpleDirectoryReader("./contracts").load_data() index = VectorStoreIndex.from_documents(documents) response = index.as_query_engine().query("Summarize the liability clauses") # Every LLM call and retrieval result attested to HCS automatically.

CrewAI — Attest every agent, task, and tool

One listener attests every agent execution, task completion, tool invocation, and crew kickoff — full multi-agent audit trail with zero changes to your crew logic.

# pip install autogen-rubric crewai from autogen_rubric import RubricClient, RubricCrewAIListener client = RubricClient(api_key="rubric-dev-...", background_queue=True) listener = RubricCrewAIListener(client=client, pipeline_id="compliance-crew-v1") # Your existing crew unchanged crew = Crew(agents=[researcher, analyst], tasks=[research_task, report_task]) crew.kickoff() # Every agent execution, task, and tool call attested to HCS.

Haystack — RAG pipeline attestation

Drop RubricHaystackComponent into any Haystack pipeline as a pass-through. Every LLM reply is attested before it reaches your application.

# pip install autogen-rubric haystack-ai from autogen_rubric import RubricClient, RubricHaystackComponent from haystack import Pipeline client = RubricClient(api_key="rubric-dev-...", background_queue=True) rubric = RubricHaystackComponent(client=client, agent_id="rag-pipeline-v1") pipeline = Pipeline() pipeline.add_component("llm", generator) pipeline.add_component("rubric", rubric) pipeline.connect("llm.replies", "rubric.replies") # Every LLM reply passes through Rubric before returning.

Semantic Kernel — Enterprise AI attestation

Register one filter on the kernel. Every function invocation — across all plugins and agents — is attested automatically. Ideal for Microsoft Azure enterprise deployments.

# pip install autogen-rubric semantic-kernel from autogen_rubric import RubricClient, rubric_semantic_kernel_filter import semantic_kernel as sk from semantic_kernel.filters.filter_types import FilterTypes client = RubricClient(api_key="rubric-dev-...", background_queue=True) kernel = sk.Kernel() kernel.add_filter( FilterTypes.FUNCTION_INVOCATION, rubric_semantic_kernel_filter(client, pipeline_id="sk-enterprise-v1") ) # Every kernel function call attested to HCS automatically.

Pydantic AI — Type-safe agent attestation

Wrap any Pydantic AI agent. Every run — sync or async — is attested immediately on completion. Full proxy: all agent methods remain accessible.

# pip install autogen-rubric pydantic-ai from autogen_rubric import RubricClient, RubricPydanticAIHook from pydantic_ai import Agent client = RubricClient(api_key="rubric-dev-...", background_queue=True) agent = Agent("openai:gpt-4o", instructions="Be concise.") rubric_agent = RubricPydanticAIHook( agent=agent, client=client, agent_id="pydantic-agent-v1" ) result = await rubric_agent.run("Summarize the liability clauses.") # result is the original AgentRunResult. Decision attested to HCS.

OpenAI Agents SDK — Full lifecycle attestation

Pass one hooks object to Runner.run(). Agent starts, LLM completions, tool calls, and handoffs between agents are all attested — complete chain of custody for multi-agent workflows.

# pip install autogen-rubric openai-agents from autogen_rubric import RubricClient, RubricOpenAIAgentsHook from agents import Agent, Runner client = RubricClient(api_key="rubric-dev-...", background_queue=True) hooks = RubricOpenAIAgentsHook(client=client, pipeline_id="oai-agents-v1") agent = Agent(name="ComplianceAgent", instructions="Be concise.") result = await Runner.run(agent, "Analyze this contract.", hooks=hooks) # Agent, LLM, tool, and handoff events all attested to HCS.

Google ADK — Vertex AI Agent Builder attestation

Register one plugin on the Runner — every agent, model call, and tool invocation across your entire ADK application is attested automatically. Works with any ADK agent on any model.

# pip install autogen-rubric google-adk from autogen_rubric import RubricClient, RubricADKPlugin from google.adk.agents import LlmAgent from google.adk.runners import Runner client = RubricClient(api_key="rubric-dev-...", background_queue=True) plugin = RubricADKPlugin(client=client, pipeline_id="adk-pipeline-v1") agent = LlmAgent(name="compliance-agent", model="gemini-2.0-flash") runner = Runner(agent=agent, ...) runner.add_plugin(plugin) # Every agent, model, and tool call attested to HCS.

Strands Agents / Amazon Bedrock AgentCore — Full lifecycle attestation

Pass one hook to any Strands agent. Agent invocations, model calls, and tool results are all attested — works with Amazon Bedrock AgentCore Runtime.

# pip install autogen-rubric strands-agents from autogen_rubric import RubricClient, RubricStrandsHook from strands import Agent client = RubricClient(api_key="rubric-dev-...", background_queue=True) hook = RubricStrandsHook(client=client, pipeline_id="bedrock-agentcore-v1") agent = Agent( model="us.anthropic.claude-sonnet-4-20250514-v1:0", hooks=[hook] ) agent("Analyze this contract for compliance risks.") # Agent, model, and tool events attested to HCS.

DSPy — Declarative AI pipeline attestation

Register one callback globally. Every DSPy module execution and LM call is attested — zero changes to your existing program logic.

# pip install autogen-rubric dspy import dspy from autogen_rubric import RubricClient, RubricDSPyCallback client = RubricClient(api_key="rubric-dev-...", background_queue=True) dspy.settings.configure( callbacks=[RubricDSPyCallback(client=client, agent_id="dspy-program-v1")] ) # Your existing DSPy program unchanged program = dspy.ChainOfThought("question -> answer") result = program(question="Summarize the liability clauses.") # Every module and LM call attested to HCS automatically.
Roadmap

Coming integrations: Agno and Smolagents. All follow the same zero-dependency pattern — drop-in attestation with no changes to existing pipeline logic. Contact us to request priority support for a specific framework.

Integration

Webhooks —
Real-Time Event Push

Push every attestation to your SIEM, GRC platform, or custom endpoint in real time. HMAC-SHA256 signed. Auto-retry with failure tracking. Enterprise+ feature.

Register a Webhook

# Register endpoint — returns signing secret curl -X POST https://rubric-protocol.com/v1/webhooks -H "x-api-key: your-key" -H "Content-Type: application/json" -d '{ "url": "https://your-siem.company.com/rubric-events", "events": ["attestation.created"] }' # Response includes signing secret — store it securely { "webhook": { "id": "a42cc72e-...", "secret": "b256057f...", "events": ["attestation.created"] } }

Available Events

Event Trigger
attestation.createdEvery attestation accepted by the node. Fires in real time, non-blocking.
batch.anchoredTier-2 Merkle forest anchored to HCS. Contains forest root and sequence number.
*All events.

Payload Format

{ "id": "evt_...", "event": "attestation.created", "createdAt": "2026-04-09T15:13:42.739Z", "data": { "attestationId": "bc3f1a07-...", "agentId": "loan-underwriting-agent", "pipelineId": "loan-pipeline-v2", "timestamp": "2026-04-09T15:13:42.739Z", "tier": 1 } }

Signature Verification

# Verify webhook authenticity — Python import hmac, hashlib def verify_rubric_webhook(payload_body, signature_header, secret): expected = "sha256=" + hmac.new( secret.encode(), payload_body, hashlib.sha256 ).hexdigest() return hmac.compare_digest(expected, signature_header) # X-Rubric-Signature header contains: sha256={hmac}

Manage Webhooks

# List webhooks with delivery status curl https://rubric-protocol.com/v1/webhooks -H "x-api-key: your-key" # Test delivery curl -X POST https://rubric-protocol.com/v1/webhooks/{id}/test -H "x-api-key: your-key" # Delete curl -X DELETE https://rubric-protocol.com/v1/webhooks/{id} -H "x-api-key: your-key"
Reliability

Webhooks track delivery status per endpoint. Failed deliveries increment a failure counter — after 10 consecutive failures the webhook is automatically disabled to prevent noise. Re-enable by deleting and re-registering. Each delivery includes X-Rubric-Delivery (unique ID), X-Rubric-Event, and X-Rubric-Signature headers.

Integration

GRC & SIEM
Export API

Every attestation is exportable in three formats — JSON, CSV, and SIEM-compatible NDJSON. Pipe directly into ServiceNow, Archer, OneTrust, Splunk, Elastic, or QRadar. No custom integration work required.

Endpoints

Endpoint Description Tier
GET /v1/export/attestationsFull attestation export. Supports JSON, CSV, SIEM formats.Standard+
GET /v1/export/summaryAggregated summary by agent, leaf type, and day. Includes EU AI Act status.Standard+
POST /v1/export/reportGenerate court-admissible PDF compliance report. Returns download URL + SHA3-256 hash.Standard+

Query Parameters

Parameter Type Description
fromISO 8601Start of export window. Default: 30 days ago.
toISO 8601End of export window. Default: now.
formatstringjson (default), csv, or siem (NDJSON/ECS).
agentIdstringFilter by agent identifier.
limitintegerMax records returned. Default: 10,000. Max: 100,000.

JSON Export

# Export last 30 days as JSON curl https://rubric-protocol.com/v1/export/attestations -H "x-api-key: your-key" # Filter by agent and date range curl "https://rubric-protocol.com/v1/export/attestations?agentId=loan-agent&from=2026-03-01&to=2026-04-01" -H "x-api-key: your-key"

CSV Export — ServiceNow / Archer / OneTrust

# Download as CSV curl "https://rubric-protocol.com/v1/export/attestations?format=csv" -H "x-api-key: your-key" -o rubric-attestations.csv # Columns: attestation_id, timestamp, agent_id, pipeline_id, # leaf_types, forest_root, sequence, algo, human_review, # third_party_model, hcs_topic

SIEM Export — Splunk / Elastic / QRadar

# NDJSON — ECS-compatible for direct Elastic/Splunk ingestion curl "https://rubric-protocol.com/v1/export/attestations?format=siem" -H "x-api-key: your-key" -o rubric-attestations.ndjson # Fields: @timestamp, event.*, rubric.attestation_id, # rubric.agent_id, rubric.pipeline_id, rubric.verify_url

PDF Compliance Report

# Generate court-admissible PDF report curl -X POST https://rubric-protocol.com/v1/export/report -H "x-api-key: your-key" -H "Content-Type: application/json" -d '{ "org": "Acme Financial Corp", "period_from": "2026-03-01", "period_to": "2026-04-01", "signatory": "Chief Compliance Officer" }' # Returns: { downloadUrl, sha3_256, reportId, generatedAt }
GRC Platform Integration

The CSV export maps directly to ServiceNow GRC, Archer, and OneTrust record schemas. The SIEM NDJSON format follows Elastic Common Schema (ECS) and can be ingested directly into Splunk, Elastic SIEM, or IBM QRadar without transformation. Each record includes a rubric.verify_url linking to the public audit portal for regulator access.

Compliance

SR 11-7 — Model Risk Management

The Federal Reserve's SR 11-7 guidance requires banks to maintain a model inventory with risk classification, validation status, and outcomes monitoring. Rubric builds this automatically from attestation data.

What Rubric provides

Every AI agent attested through Rubric is automatically registered in the model inventory — capturing agent ID, model version, decision volume, and timestamp. Assign SR 11-7 risk tiers (Tier 1 High / Tier 2 Moderate / Tier 3 Low) via the Enterprise dashboard. Validation status and outcomes monitoring surface in the examination package.

Examination Package

Enterprise tier generates a complete SR 11-7 examination package in a single API call — model inventory, risk tier assignments, validation gap analysis, and outcomes monitoring summary. Export as PDF or structured JSON for GRC platform ingestion (ServiceNow, Archer, OneTrust).

Compliance

FINRA 3110 / 3120 — Supervision Records

FINRA Rules 3110 and 3120 require broker-dealers to establish and maintain supervisory systems for AI-assisted workflows. Rubric provides cryptographically anchored supervision records that satisfy examination requirements.

What Rubric provides

Every AI decision attested through Rubric generates a supervision record — timestamped, ML-DSA-65 signed, and anchored to HCS. Records are retained for the FINRA-required minimum period. The Enterprise examination package includes a FINRA-style attestation summary: total decisions, supervision coverage, exception reports, and reviewer sign-off chain.

Human Oversight Attestation

When a compliance officer or supervisor reviews, approves, or overrides an AI decision, that action is attested alongside the original AI decision — creating a complete chain of custody from AI output to human sign-off. Required under FINRA 3110 and EU AI Act Article 14.

Compliance

FFIEC IT Examination

FFIEC IT examiners now include AI governance in examination scope. Rubric generates the third-party AI vendor audit evidence, access log completeness metrics, and policy enforcement summaries examiners ask for.

What Rubric provides

FFIEC examination package includes: third-party AI provider inventory auto-built from attestation data, access control evidence via API key audit trail, log completeness metrics showing attestation coverage vs. total AI decisions, and policy enforcement summary. Export as structured JSON for direct GRC ingestion.

Important

Rubric attestations are anchored to an independent public ledger — outside your stack entirely. This satisfies FFIEC requirements for third-party verification that internal logging systems cannot provide.

© 2026 Echelon Intelligence Group LLC · Rubric ProtocolPatent Pending