@rubric-protocol/sdk
v1.0.5
Published
Rubric Protocol SDK — post-quantum AI attestation with ZK inclusion proofs
Maintainers
Readme
@rubric-protocol/sdk
Post-quantum AI attestation with ZK inclusion proofs.
Rubric Protocol is the independent witness layer for the AI economy - providing tamper-evident, independently verifiable audit trails for AI decisions, anchored to Hedera Consensus Service.
Installation
npm install @rubric-protocol/sdkQuick Start
import { RubricClient } from "@rubric-protocol/sdk";
const client = new RubricClient({
baseUrl: "https://rubric-protocol.com/verify",
apiKey: "your-api-key",
});Get an API key at https://rubric-protocol.com
Core Concepts
Every AI decision submitted to Rubric receives:
- An attestation record - signed with ML-DSA-65 (NIST FIPS 204 post-quantum signature)
- A Merkle inclusion - aggregated into a cryptographic tree and anchored to Hedera Consensus Service
- A ZK inclusion proof - independently verifiable proof your record was included in the anchored tree
The ZK proof means you hold cryptographic evidence of your record that does not require Rubric to verify.
Submitting Attestations
const result = await client.attestations.tieredAttest({
data: { model: "gpt-4o", decision: "approved", confidence: 0.94 },
sourceId: "your-system-id",
pipelineId: "my-pipeline",
});
console.log(result.attestationId); // retain this
console.log(result.status); // bufferedRetrieving ZK Inclusion Proofs
The proof generates asynchronously after the ~30s Merkle flush. Use the built-in polling helper:
const proof = await client.attestations.getZkProof(result.attestationId, {
timeoutMs: 120_000, // default 120s
intervalMs: 10_000, // default 10s
});
console.log(proof.status); // ready
console.log(proof.proof.zkRoot); // Poseidon2 Merkle root
console.log(proof.proof.zkPath); // 20-level inclusion path
console.log(proof.proof.zkLeaf); // your record leaf hash
console.log(proof.hcsSeqNum); // HCS sequence number
console.log(proof.verifyEndpoint); // endpoint to verify this proofHTTP status codes: 202 = pending (retry), 200 = ready, 404 = not found
ZK Proof Response Fields
status ready or pending attestationId your record ID flushId Merkle batch ID hcsSeqNum HCS sequence number (populated ~60s after submission) hcsExplorerUrl Hashscan link for on-chain verification proof.zkLeaf BN254 field element - your record leaf hash proof.zkRoot Poseidon2 Merkle root - matches HCS anchor proof.zkPath 20-element sibling path proof.zkIndices left/right indices per level proof.leafIndex your position in the Merkle tree circuitVersion noir-beta19-poseidon2-depth20
Full Example
import { RubricClient } from "@rubric-protocol/sdk";
const client = new RubricClient({
baseUrl: "https://rubric-protocol.com/verify",
apiKey: process.env.RUBRIC_API_KEY,
});
const attest = await client.attestations.tieredAttest({
data: { model: "claude-3-5-sonnet", action: "content_moderation", result: "approved" },
sourceId: "my-ai-system",
});
const proof = await client.attestations.getZkProof(attest.attestationId);
console.log("zkRoot: ", proof.proof.zkRoot);
console.log("leafIndex:", proof.proof.leafIndex);
console.log("hcsSeqNum:", proof.hcsSeqNum ?? "pending");EU AI Act Article 12 Compliance
Rubric satisfies the tamper-evident logging requirements of EU AI Act Article 12 for high-risk AI systems.
- Timestamp independence: consensus timestamps generated by Hedera network, not Rubric
- Structural immutability: HCS has no DELETE or UPDATE operation by design
- Third-party verifiability: records verifiable against Hedera public mirror nodes without Rubric
- Post-quantum integrity: ML-DSA-65 signatures valid against quantum adversaries
- ZK inclusion proofs: customers hold independent cryptographic evidence of inclusion
Framework Integrations
pip install autogen-rubricSupports AutoGen, LlamaIndex, CrewAI, LangGraph, OpenAI Agents SDK, Google ADK, and more.
Support
Website: https://rubric-protocol.com Email: [email protected]
Built by Echelon Intelligence Group.
