CrewAI tools for Signatrust — cryptographically signed, tamper-evident AI Decision Receipts.
Project description
crewai-signatrust
CrewAI tools for Signatrust — cryptographically signed, tamper-evident AI Decision Receipts.
Give any CrewAI agent the ability to seal its high-stakes decisions into independently verifiable evidence — without exposing prompts, model outputs, or sensitive business data. Only SHA-256 hashes are stored by default.
Why?
When an AI agent makes a regulated or high-stakes decision (loan approval, refund, content moderation, transaction flagging), how do you prove, after the fact, that the decision was made correctly, under the right policies, and with appropriate human oversight?
Signatrust generates a tamper-evident AI Decision Receipt for each decision, capturing:
- Which AI system (model + version) was involved
- The action taken and decision context
- Whether a human reviewed it
- The policies and permissions in effect
- A cryptographic (Ed25519) signature proving the record has not been altered
Each receipt has a public verify_url that regulators, auditors, or counterparties can check — without accessing your systems or data.
Installation
pip install crewai-signatrust
Authentication
Get an API key (starts with sk_live_…) from signatrust.net/register, then either pass it explicitly or set an environment variable:
export SIGNATRUST_API_KEY="sk_live_..."
# Optional, for self-hosted Enterprise:
export SIGNATRUST_BASE_URL="https://signatrust.your-company.com/api/v1"
Quick start
from crewai import Agent, Task, Crew
from crewai_signatrust import get_signatrust_tools
compliance_officer = Agent(
role="Compliance Officer",
goal="Approve refunds and produce verifiable Signatrust decision receipts",
backstory="You ensure every AI-assisted decision is auditable and signed.",
tools=get_signatrust_tools(), # reads SIGNATRUST_API_KEY from env
)
task = Task(
description=(
"Approve the refund for order #991 (within the 30-day policy), then "
"generate a signed Signatrust decision receipt and report the verify URL."
),
expected_output="The receipt_id and public verify_url of the signed decision.",
agent=compliance_officer,
)
crew = Crew(agents=[compliance_officer], tasks=[task])
print(crew.kickoff())
Direct (non-agent) use
from crewai_signatrust import SignatrustGenerateReceiptTool
tool = SignatrustGenerateReceiptTool()
receipt = tool.run(
agent_name="RefundAgent",
action="Approved refund for order #991",
decision="APPROVED: order qualifies under 30-day return policy",
risk_level="medium",
human_review=False,
policies=["refunds-v2"],
)
print(receipt["receipt_id"], receipt["verify_url"])
Tools provided
| Tool | Name | Purpose |
|---|---|---|
SignatrustGenerateReceiptTool |
Signatrust Generate Decision Receipt |
Seal an AI decision into a signed receipt |
SignatrustVerifyReceiptTool |
Signatrust Verify Decision Receipt |
Verify a receipt's signature/integrity |
SignatrustGetReceiptTool |
Signatrust Get Decision Receipt |
Fetch a receipt's full details by ID |
All three tools accept api_key, base_url, and timeout constructor arguments; if omitted, they fall back to the SIGNATRUST_API_KEY / SIGNATRUST_BASE_URL environment variables.
Privacy-first by design
By default, only the SHA-256 hash of the decision and input_prompt is stored — never the raw text. Pass include_decision_in_metadata=True only if you explicitly want to retain the raw decision in the receipt metadata.
Development
pip install -e ".[test]"
pytest
Links
- Website: signatrust.net
- API docs: signatrust.net/docs/api
- Source: github.com/abokenan444/Signatrust
- Contact: partners@signatrust.net
© 2026 Signatrust — MIT License
Project details
Release history Release notifications | RSS feed
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 crewai_signatrust-0.1.0.tar.gz.
File metadata
- Download URL: crewai_signatrust-0.1.0.tar.gz
- Upload date:
- Size: 8.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d761c3e0b99f41baa284e66df18e5f87dee99495a62add72e9aeae432561fb7
|
|
| MD5 |
c6fbc48d50a1d5da75470f79ae8f15bb
|
|
| BLAKE2b-256 |
45dd5038100d37ff3caf92dad82dc8a6d3990ea0ca1cebd81891264a0a99a63b
|
File details
Details for the file crewai_signatrust-0.1.0-py3-none-any.whl.
File metadata
- Download URL: crewai_signatrust-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e8f25ab45d2cfffcfb3f33fd56a1c4fdd840eb3bb35bbe65a529c6cdeae2c48
|
|
| MD5 |
9447104616e7d957f855fc6dd015a89c
|
|
| BLAKE2b-256 |
3a12a09d6628e99988a5a1aebde96a78614bb30a3d203e28e5f4262d9325c66c
|