Verdra Record · Developers

Wrap an agent action. Get a signed Evidence Package.

The Verdra Record SDK instruments the runtime hook on every agent action and seals a four-strata Evidence Package before the action returns. Python and TypeScript, runtime adapters for the major agent frameworks, customer-held keys, customer-held storage.

Preview release SDK access is scoped to design-partner engagements during the V0 phase. Snippets below describe the intended interface and are stable; package distribution is gated to early-access tenants.

1. Install

Python · verdra-recordpreview
# requires Python 3.11+
pip install verdra-record
TypeScript · @verdra/recordpreview
// requires Node 20+
npm install @verdra/record
// or: pnpm add @verdra/record · bun add @verdra/record

2. Quickstart — Python

Wrap any agent action with @record.capture(...). The SDK reads the runtime configuration at the call site, runs the four-strata capture, signs the package with your customer-held key, and writes it to your storage.

Python · LangGraph runtimequickstart.py
from verdra_record import Record
from langgraph.graph import StateGraph

# client-held keys + customer-controlled storage
record = Record(
    principal="Orion Treasury Corp.",
    storage="s3://orion-evidence/verdra/",
    kms="aws-kms://arn:aws:kms:us-east-1:111111111111:key/orion-record",
    schema_version="v0.1",
)

@record.capture(strata=["a", "b", "c", "d"])
def issue_payment(graph: StateGraph, mandate: dict) -> dict:
    # your existing agent logic — unchanged
    return graph.invoke(mandate)

# every call now produces a signed Evidence Package in your bucket
result = issue_payment(graph, mandate={"to": "vendr-fulfill-2", "amount": "1847.20 USDC"})

3. Quickstart — TypeScript

TypeScript · OpenAI Agents SDKquickstart.ts
import { Record } from "@verdra/record";
import { Agent, tool } from "@openai/agents";

const record = new Record({
  principal: "Orion Treasury Corp.",
  storage: "s3://orion-evidence/verdra/",
  kms: "aws-kms://arn:aws:kms:us-east-1:111111111111:key/orion-record",
  schemaVersion: "v0.1",
});

const issuePayment = record.capture(async (mandate) => {
  const agent = new Agent({ name: "orion-procure-7" });
  return await agent.run(mandate);
});

// every call produces a signed Evidence Package in your bucket
await issuePayment({ to: "vendr-fulfill-2", amount: "1847.20 USDC" });

4. Runtime adapters

First-class adapters at preview release. Custom runtimes integrate via the low-level capture() hook.

LangGraphnode hook
LangChaintool wrap
AutoGenagent hook
CrewAItask hook
Semantic Kernelkernel hook
OpenAI Agentsagent.run wrap
Anthropic Toolstool_use hook
Google ADKagent hook
Custom runtimelow-level API

5. Evidence Package shape

Every captured action produces an Evidence Package conforming to the public Verdra Rules schema. Top-level fields:

FieldTypeDescription
idstringContent-addressed identifier (BLAKE3-256 of the canonical-serialized package).
schemastringSchema version pin, e.g. verdra/v0.1.
strata.aobjectTransaction stratum: counterparty, payload, rail, reference, timestamp.
strata.bobjectConfiguration stratum: prompt hash, tool inventory, model + version, spend caps at dispatch.
strata.cobjectBehavior stratum: counterfactual decision trace, tool calls, latencies.
strata.dobjectCapability stratum: signed delegation reference, scope, expiry.
signatureobjectCustomer Ed25519 signature over the canonical hash. KMS key reference, no private material.
timestampobjectRFC 3161 timestamp token from an external authority. TSA URL and token bytes.
storageobjectCustomer-controlled storage URI. Verdra has no write path.

6. Verifying a package

Python · verifying without Verdra in the loopverify.py
from verdra_record.verify import verify_package

# adjudicators, counsel, auditors, or counterparties can verify
# offline using only the public schema and the customer's pubkey.

result = verify_package(
    package_path="./EP-2026-0424-A23F.ep.json",
    pubkey="ed25519:BqV7…X2",
    tsa_root="./tsa-root.crt",
)

assert result.signature_valid
assert result.timestamp_valid
assert result.content_address_matches

7. What the SDK does not do

Get early access

The Record SDK is in preview release with named design partners. If you run agents that transact and want to evaluate the SDK against your runtime, write to the engineering team. Standard onboarding includes a 30-45 day instrumented pilot, a security review packet, and a Data Processing Agreement template.

Request SDK access →