Cryptographic audit trails for AI agents
Project description
Veralog Python SDK
Cryptographic audit trails for AI agents. Add one line to your agent, get a tamper-proof signed log of every action.
Installation
pip install veralog
Quick start
import veralog
veralog.configure(api_key="vrlg_...")
result = veralog.record(
agent_id="sales-bot",
action="send_proposal",
payload={"client": "acme-corp", "deal_value": 50000},
status="success",
)
print(result.verify_url)
Get an API key
import veralog
account = veralog.register(email="you@yourcompany.com")
print(account["api_key"])
Or register at www.vrlg.tech.
Configuration
# Explicit
veralog.configure(api_key="vrlg_...")
# Or via environment variable
export VERALOG_API_KEY="vrlg_..."
Record an event
result = veralog.record(
agent_id="sales-bot", # required: your agent's ID
action="send_proposal", # required: what it did
payload={"client": "acme"}, # required: arbitrary dict
status="success", # success | warning | error | crash | timeout | blocked | cancelled
severity="info", # debug | info | warning | error | critical
flags=[], # loop_detected | policy_violation | data_exposure | ...
trace_id="trace-abc-123", # optional: correlation ID
tool_name="gmail_api", # optional: tool used
)
print(result.event_id) # UUID
print(result.verify_url) # https://www.vrlg.tech/verify/{id}/page
print(result.events_used) # running total
Query events
events = veralog.get_events(
status="blocked",
agent_id="sales-bot",
since="2026-06-01T00:00:00",
limit=50,
)
print(events["total"])
print(events["events"])
Export all events
data = veralog.export()
# Returns dict with all events, signatures, and public keys
Verify an event
event = veralog.verify("8b466b96-8663-4742-a6a6-8964ce69e5d4")
print(event["signature"])
print(event["public_key"])
LangChain example
from langchain.agents import AgentExecutor
import veralog
veralog.configure(api_key="vrlg_...")
def run_agent_with_audit(agent_executor, input_text):
try:
result = agent_executor.invoke({"input": input_text})
veralog.record(
agent_id="langchain-agent",
action="invoke",
payload={"input": input_text, "output": result["output"][:200]},
status="success",
)
return result
except Exception as e:
veralog.record(
agent_id="langchain-agent",
action="invoke",
payload={"input": input_text, "error": str(e)},
status="error",
severity="error",
)
raise
CrewAI example
from crewai import Agent, Task, Crew
import veralog
veralog.configure(api_key="vrlg_...")
class AuditedCrew(Crew):
def kickoff(self, inputs=None):
result = super().kickoff(inputs=inputs)
veralog.record(
agent_id="crewai-crew",
action="kickoff",
payload={"inputs": inputs, "result": str(result)[:200]},
status="success",
)
return result
Independent verification
Every event is signed with Ed25519. You can verify any event without Veralog:
from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PublicKey
from cryptography.hazmat.primitives.serialization import Encoding, PublicFormat
import binascii
event = veralog.verify("your-event-id")
public_key = Ed25519PublicKey.from_public_bytes(
binascii.unhexlify(event["public_key"])
)
message = f"{event['event_id']}:{event['agent_id']}:{event['action']}:{event['timestamp']}".encode()
signature = binascii.unhexlify(event["signature"])
public_key.verify(signature, message)
print("Signature valid — event was not tampered with")
Links
- Website: www.vrlg.tech
- API docs: www.vrlg.tech/docs
- Contact: liquidcrystalcore@gmail.com
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file veralog-0.1.4.tar.gz.
File metadata
- Download URL: veralog-0.1.4.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2290a40e56d2590f50d84c988e3ebcc40978e11cdc974ee9aa9f2543cded625e
|
|
| MD5 |
0707077057e07f0764d59c97be02a127
|
|
| BLAKE2b-256 |
7db04b519cea420b1b8d6422b5ab0456377325945c7aa02e67031abe078dcdaf
|
Provenance
The following attestation bundles were made for veralog-0.1.4.tar.gz:
Publisher:
release.yml on kupreano/agentledger-api
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
veralog-0.1.4.tar.gz -
Subject digest:
2290a40e56d2590f50d84c988e3ebcc40978e11cdc974ee9aa9f2543cded625e - Sigstore transparency entry: 1809762968
- Sigstore integration time:
-
Permalink:
kupreano/agentledger-api@61a0e0140dab4fcad0250295ea2991148b23b087 -
Branch / Tag:
refs/tags/v0.1.5 - Owner: https://github.com/kupreano
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@61a0e0140dab4fcad0250295ea2991148b23b087 -
Trigger Event:
release
-
Statement type:
File details
Details for the file veralog-0.1.4-py3-none-any.whl.
File metadata
- Download URL: veralog-0.1.4-py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf47726e75fa7612c2b555d2ca50207f19370c02f492aea1a01c2cc6487d9f57
|
|
| MD5 |
2aaecd7df3a94ebbe39e8493d660e99d
|
|
| BLAKE2b-256 |
ec9c5a85a6bf9c4d5e27b98c998ebd24d31261033ac9e6a02d7ceef8a3d75045
|
Provenance
The following attestation bundles were made for veralog-0.1.4-py3-none-any.whl:
Publisher:
release.yml on kupreano/agentledger-api
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
veralog-0.1.4-py3-none-any.whl -
Subject digest:
cf47726e75fa7612c2b555d2ca50207f19370c02f492aea1a01c2cc6487d9f57 - Sigstore transparency entry: 1809763026
- Sigstore integration time:
-
Permalink:
kupreano/agentledger-api@61a0e0140dab4fcad0250295ea2991148b23b087 -
Branch / Tag:
refs/tags/v0.1.5 - Owner: https://github.com/kupreano
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@61a0e0140dab4fcad0250295ea2991148b23b087 -
Trigger Event:
release
-
Statement type: