Cryptographically secure agent identity protocol with exclusive leasing, state continuity, and verification
Project description
SigAid - Secure Agent Identity Protocol
A cryptographically secure agent identity protocol with exclusive leasing, state continuity, and verification capabilities.
Features
- Cryptographic Identity: Ed25519-based agent identities with checksums
- Exclusive Leasing: Prevents "clone" attacks - only one instance per agent
- State Chain: Hash-linked action log for verifiable history
- Proof Bundles: Cryptographic proofs for service verification
- Framework Integrations: One-line wrapping for LangChain, CrewAI, AutoGen
Installation
pip install sigaid
For framework integrations:
pip install sigaid[langchain] # LangChain support
pip install sigaid[crewai] # CrewAI support
pip install sigaid[autogen] # AutoGen support
pip install sigaid[all-integrations] # All frameworks
Quick Start
One-Line Framework Integration
import sigaid
# Wrap your existing agent - that's it!
agent = sigaid.wrap(my_langchain_agent)
# Use exactly as before
result = agent.invoke({"input": "Hello"})
# Agent now has verifiable identity
print(agent._sigaid.agent_id)
Direct SDK Usage
import asyncio
from sigaid import AgentClient
async def main():
# Create new agent
client = AgentClient.create()
print(f"Agent ID: {client.agent_id}")
# Acquire exclusive lease
async with client.lease() as lease:
# Record actions
await client.record_action(
"transaction",
{"amount": 100, "recipient": "merchant_123"},
summary="Processed payment"
)
# Create proof for verification
proof = client.create_proof(challenge=b"verifier_nonce")
await client.close()
asyncio.run(main())
Service-Side Verification
from sigaid import Verifier
verifier = Verifier(api_key="...")
result = await verifier.verify(
proof_bundle,
require_lease=True,
min_reputation_score=0.7,
)
if result.valid:
print(f"Agent {result.agent_id} verified!")
Core Concepts
Agent Identity
Each agent has a unique cryptographic identity:
- AgentID: Derived from Ed25519 public key (
aid_7Xq9YkPz...) - KeyPair: Used for signing actions and proofs
- Stored in encrypted keyfiles for persistence
Exclusive Leasing
Prevents "clone" attacks where multiple instances use the same identity:
- Only one instance can hold a lease at a time
- Atomic acquisition via Authority service
- Automatic renewal while in use
- Clone attempts are rejected
State Chain
Tamper-evident log of agent actions:
- Hash-linked entries (BLAKE3)
- Signed with Ed25519
- Fork detection for clone prevention
- Verifiable by services
Proof Bundles
Complete proof for verification:
- Agent identity
- Active lease
- State chain head
- Challenge-response signature
Security
| Feature | Implementation |
|---|---|
| Identity Keys | Ed25519 |
| Hashing | BLAKE3 |
| Lease Tokens | PASETO v4 |
| Domain Separation | Prevents cross-protocol attacks |
| Constant-time comparisons | Timing attack prevention |
Framework Support
| Framework | Status | Installation |
|---|---|---|
| LangChain | Supported | pip install sigaid[langchain] |
| CrewAI | Supported | pip install sigaid[crewai] |
| AutoGen | Supported | pip install sigaid[autogen] |
| OpenAI Agents | Supported | Base package |
Environment Variables
SIGAID_API_KEY=sk_live_xxx # API key for Authority
SIGAID_AUTHORITY_URL=https://api.sigaid.com # Authority URL
SIGAID_LOG_LEVEL=INFO # Logging verbosity
Development
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/ -v
# Type checking
mypy sigaid/
# Linting
ruff check sigaid/
License
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 sigaid-0.1.0.tar.gz.
File metadata
- Download URL: sigaid-0.1.0.tar.gz
- Upload date:
- Size: 493.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c7595708ed26a85f0a059825e4e9f5179bdf6a2ef16b84ea4df2ea02ab70204c
|
|
| MD5 |
62bde11b1e72b44bf94e93fc3e69347f
|
|
| BLAKE2b-256 |
d9ddb51c06b9bff7d2ce92820449062018f8af26b176df47c355f5e54abf03fc
|
Provenance
The following attestation bundles were made for sigaid-0.1.0.tar.gz:
Publisher:
publish.yml on trustorno/sigaid
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sigaid-0.1.0.tar.gz -
Subject digest:
c7595708ed26a85f0a059825e4e9f5179bdf6a2ef16b84ea4df2ea02ab70204c - Sigstore transparency entry: 912419889
- Sigstore integration time:
-
Permalink:
trustorno/sigaid@ccc5c9befbb0ebc42e1dd22471a7053d05171b33 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/trustorno
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ccc5c9befbb0ebc42e1dd22471a7053d05171b33 -
Trigger Event:
release
-
Statement type:
File details
Details for the file sigaid-0.1.0-py3-none-any.whl.
File metadata
- Download URL: sigaid-0.1.0-py3-none-any.whl
- Upload date:
- Size: 103.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15df06c4ec6d7c24f15e1dc520371d5e102226ace12497681f9f1e0d0b5515a7
|
|
| MD5 |
6268eb6317816392993b55dcdbbe599c
|
|
| BLAKE2b-256 |
f6be7222681796a60d18cb5fb3f8455f1db75aa6459d375578656b67830378b3
|
Provenance
The following attestation bundles were made for sigaid-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on trustorno/sigaid
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sigaid-0.1.0-py3-none-any.whl -
Subject digest:
15df06c4ec6d7c24f15e1dc520371d5e102226ace12497681f9f1e0d0b5515a7 - Sigstore transparency entry: 912419942
- Sigstore integration time:
-
Permalink:
trustorno/sigaid@ccc5c9befbb0ebc42e1dd22471a7053d05171b33 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/trustorno
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ccc5c9befbb0ebc42e1dd22471a7053d05171b33 -
Trigger Event:
release
-
Statement type: