The gap Claude cannot fill
Anthropic knows what happened.
They cannot prove it independently.
When Claude Managed Agents runs your pipeline, Anthropic controls execution, infrastructure, and the log. Every record is written by the operator. That is the conflict of interest DarkMatter was built to solve.
Agent execution
Anthropic
Managed containers, tooling, and runtime
Session logs
Anthropic
Stored on Anthropic servers, trust-based, not independently provable
Independent proof
DarkMatter
Cryptographic records outside your system, verifiable offline, no Anthropic access required
Integration
One line of setup.
Point the Anthropic SDK at DarkMatter. Every call, messages, managed agent sessions, streaming events, is automatically recorded as a verifiable DarkMatter record.
Set your base URL
One environment variable routes all Anthropic SDK calls through DarkMatter.
# In your shell or .env
export ANTHROPIC_BASE_URL=https://darkmatterhub.ai/ext/claude
export DM_PROXY_KEY=dmp_your_proxy_key
Use the Anthropic SDK normally
No code changes. DarkMatter sits transparently in the request path and forwards everything to Anthropic unchanged.
import anthropic
client = anthropic.Anthropic() # picks up ANTHROPIC_BASE_URL automatically
# Managed Agents session, recorded automatically
session = client.beta.sessions.create(
agent_id="agent_...",
environment_id="env_..."
)
# Every event becomes a verifiable DarkMatter record
for event in client.beta.sessions.stream(session.id, events=[...]):
process(event)
# → Each step: hash-linked, timestamped, verifiable offline
Verify any record, without Anthropic
Export a proof bundle. Your auditor, regulator, or legal team can verify it offline with no DarkMatter account and no Anthropic access.
# Standalone offline verification
python verify_darkmatter_chain.py proof_bundle.json
✓ Payload hash matches
✓ Chain integrity intact
✓ Agent signature valid
✓ Included in checkpoint
This record has not been altered.
Trust model
Two capture modes. One honest distinction.
DarkMatter never hides the trust boundary. Every record is labeled with how it was captured so you always know what the verification claim means.
✦ Client-signed
SDK or browser extension
Payload hashed and signed on your machine before reaching DarkMatter. Full cryptographic independence, DarkMatter never sees the pre-hash payload.
⇄ Proxy · forwarded
ANTHROPIC_BASE_URL proxy
Key forwarded per-call, never stored. Captured in transit. Hash chain is intact. Best for zero-effort setup.
⇄ Proxy · stored key
Dashboard key storage
Key stored in DarkMatter dashboard. Convenient for development, upgrade to SDK or forwarded key for production independence.
Every record in your dashboard shows its capture mode. Proxy records include a one-click path to upgrade to client-signed verification.
Questions
Common questions
Does this add latency to my Claude calls?
No. DarkMatter records the interaction after forwarding the response to your application. The client receives Anthropic's response at normal speed, recording happens asynchronously after the response is sent.
Does DarkMatter store my Anthropic API key?
Only if you explicitly add it via the dashboard. Using ANTHROPIC_API_KEY with ANTHROPIC_BASE_URL, your key is forwarded per-call in the request header and never written to disk on DarkMatter's servers.
Can I verify records without a DarkMatter account?
Yes. Export a proof bundle from the dashboard. The standalone Python verifier works offline with no dependencies and no account. Your legal team, a regulator, or a client can verify the record independently.
Does this work with the Messages API too, not just Managed Agents?
Both. The ANTHROPIC_BASE_URL proxy captures all Claude API calls, /v1/messages, /v1/sessions, /v1/sessions/{id}/events, and streaming.
Start recording Claude sessions now.
Free tier · unlimited agents · no credit card required.