nobulex
Status: This package is a prior Nobulex direction and is maintained for compatibility. Current work is in the Nobulex registry. Version 0.1.2 corrects the claims published with 0.1.1. It does not add a claim that receipts prove real-world events.
Signed claims about AI agent actions.
Credit scores exist for people. They don't exist for machines. Until now.
Install
pip install nobulex
Quick Start
One line to add receipts to any function:
from nobulex import track
@track(agent_id="my-agent")
def send_email(to, subject, body):
return smtp.send(to, subject, body)
# Every decorated call produces a signed receipt. Exceptions produce DENY receipts.
send_email("user@example.com", "Hello", "Report attached")
print(send_email.receipts) # tamper-evident
print(send_email.trust_score) # accumulates over time
Or use the Agent API directly:
from nobulex import Agent
agent = Agent("my-agent")
receipt = agent.act("send_email", scope="user@example.com")
assert receipt.verify() # Ed25519 signature check
print(receipt.action_ref) # SHA-256 hash of the action
# trust score builds with every verified action
print(agent.trust_score) # 13.86
# Denied actions prove the system caught violations
agent.deny("delete_database", scope="production")
print(agent.trust_score) # 15.22
What is this?
Every time an AI agent does something, Nobulex generates a cryptographic receipt:
- WHO acted (agent_id)
- WHAT they did (action_type)
- ON WHAT (scope)
- WHEN (timestamp_ms)
- WHETHER it was allowed (verdict)
- SIGNED CLAIM about the action (Ed25519 signature + SHA-256 hash)
Receipts are tamper evident, not tamper proof. Editing one after the fact breaks the hash chain, so the edit is detectable by anyone holding a later receipt. That is a different and weaker property than being unfakeable, and the difference matters: an operator who chooses what to record can omit an action, misstate an outcome, or sign an inaccurate account at the moment it happens, and every cryptographic property here still holds. A signature proves who made a claim. It does not prove the claim was true.
What this does give you is that an independent verifier can check the signature without running the original agent and detect changes to the signed content.
Over time, receipts build into trust score - a portable trust score that follows the agent across deployments. You can copy an agent's code, but you can't copy its credit score. The copy starts at zero.
Use Cases
- Audit trails: EU AI Act Article 12 requires automatic event logging for high-risk systems. It does not require cryptographic signatures or independently verifiable receipts. Signed receipts address a separate need: detecting later changes when evidence must survive a dispute.
- Agent-to-agent trust: Agents verify each other's track records before collaborating
- Disputes: Records a counterparty can check themselves, for financial, healthcare and legal agents
- Accountability: When something goes wrong, receipts show what was recorded at the time, and show whether that record has been altered since
API
Agent
from nobulex import Agent
agent = Agent("my-agent") # Create agent identity
receipt = agent.act("tool_call", # Record an action
scope="api.stripe.com")
agent.deny("unauthorized_action", # Record a caught violation
scope="admin_panel")
print(agent.trust_score) # Get trust score score
print(agent.receipts) # Get all receipts
Receipt
from nobulex import Receipt, KeyPair
keys = KeyPair()
receipt = Receipt.create(
agent_id="agent-1",
action_type="send_email",
scope="user@example.com",
keys=keys,
)
assert receipt.verify() # Verify signature
print(receipt.action_ref) # Content-addressable hash
print(receipt.to_json()) # JSON serialization
Framework Examples
Working examples for all 6 supported frameworks (each runs standalone):
python examples/pydantic_ai_receipts.py # PydanticAI
python examples/crewai_receipts.py # CrewAI
python examples/langchain_receipts.py # LangChain
python examples/google_adk_receipts.py # Google ADK
python examples/haystack_receipts.py # Haystack
python examples/llamaindex_receipts.py # LlamaIndex
Verify API
The SDK is free. The hosted verification layer is the product.
curl -X POST https://api.nobulex.com/v1/verify \
-d '{"agent_id":"my-agent","action_type":"tool:search",...}'
Pricing | API docs | Methodology
License
MIT - Arian Gogani (@nobulexlabs)
Metadata
Release files for nobulex 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nobulex-0.1.2.tar.gz | 27.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nobulex-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 61.2 kB
Release files / nobulex-0.1.2.tar.gz
| Download URL | nobulex-0.1.2.tar.gz |
|---|---|
| Size | 27.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7a9123341849fdc922262f5ee5fcebed5b349ab4eda47ab4c6af27c437e7eb36
|
|
BLAKE2b-256 checksum How to use checksums |
d68e7c3f8baceb0841b1732504e78859eba2a29a0d7ea50a7b9af9bd07a77626
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / nobulex-0.1.2-py3-none-any.whl
| Download URL | nobulex-0.1.2-py3-none-any.whl |
|---|---|
| Size | 34.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d1cac3d970c1146dd5ffe9e0cb0cb95b9d1bcceb893b81856280d9ae93584c75
|
|
BLAKE2b-256 checksum How to use checksums |
decdeee1e3e1dc6805ecd79cb3f4ac199068e712403e3ac890dfed080ca31830
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency log