Skip to main content

Cryptographic action receipts for AI agents

Project description

signet-auth

Cryptographic action receipts for AI agents. Sign every tool call with Ed25519 — works with LangChain, LangGraph, LlamaIndex, Google ADK, Pydantic AI, Smolagents, Semantic Kernel, OpenAI Agents, AutoGen, CrewAI, and more.

PyPI GitHub Stars

Install

pip install signet-auth

Quick Start

from signet_auth import SigningAgent

agent = SigningAgent.create("my-bot", owner="alice")
receipt = agent.sign("web_search", params={"query": "signet"}, target="mcp://local")
print(receipt.id)

Decorator Entry Point

For plain Python tools, the easiest way to adopt Signet is the decorator layer:

from signet_auth import SigningAgent, signet_tool

agent = SigningAgent.create("tool-bot", owner="alice")

@signet_tool(
    agent=agent,
    target="mcp://github.prod",
    audit_encrypt_params=True,
)
def create_issue(title: str, repo: str) -> str:
    return f"{repo}:{title}"

@signet_tool also supports:

  • async tool functions
  • custom tool_name
  • explicit transport
  • on_sign_error="warn" | "raise"

MCP Server Verification

If you enforce Signet at the execution boundary, use verify_request() with a durable nonce backend:

from signet_auth import FileNonceChecker, VerifyOptions, verify_request

nonce_checker = FileNonceChecker(".signet/nonces.json")
opts = VerifyOptions(
    trusted_keys=["ed25519:..."],
    expected_target="mcp://github.prod",
    nonce_checker=nonce_checker,
)

result = verify_request(request_params, opts)
if not result.ok:
    raise ValueError(result.error or "verification failed")
if not result.trusted:
    raise ValueError("untrusted signer")

ServerVerifyResult tells you both whether a receipt was present (has_receipt) and whether the signer was anchored to trust (trusted). FileNonceChecker is the default single-host pilot shape; InMemoryNonceChecker is still useful for tests and demos.

Framework Integrations

Framework Import
LangChain / LangGraph from signet_auth.langchain import SignetCallbackHandler
LlamaIndex from signet_auth.llamaindex import SignetEventHandler
Google ADK from signet_auth.google_adk import SignetPlugin
OpenAI Agents SDK from signet_auth.openai_agents import SignetAgentHooks
Pydantic AI from signet_auth.pydantic_ai import SignetMiddleware
Semantic Kernel from signet_auth.semantic_kernel import SignetFunctionFilter
Smolagents from signet_auth.smolagents import SignetStepCallback
AutoGen from signet_auth.autogen import SignetAutogenHook
CrewAI from signet_auth.crewai import SignetCrewCallback

Install with framework extras:

pip install signet-auth[langchain]     # LangChain / LangGraph
pip install signet-auth[llamaindex]    # LlamaIndex
pip install signet-auth[google-adk]    # Google ADK
pip install signet-auth[pydantic-ai]   # Pydantic AI
pip install signet-auth[semantic-kernel] # Semantic Kernel
pip install signet-auth[all]           # All frameworks

Links

If Signet is useful to you, star us on GitHub — it helps others discover the project.

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

signet_auth-0.10.0.tar.gz (517.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

signet_auth-0.10.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

signet_auth-0.10.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

signet_auth-0.10.0-cp310-abi3-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

signet_auth-0.10.0-cp310-abi3-macosx_10_12_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file signet_auth-0.10.0.tar.gz.

File metadata

  • Download URL: signet_auth-0.10.0.tar.gz
  • Upload date:
  • Size: 517.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.13.1

File hashes

Hashes for signet_auth-0.10.0.tar.gz
Algorithm Hash digest
SHA256 35199770ec541331411860907dfa160a72e64c6eaa69a7966c9a4e6fe1089e8d
MD5 e663817193c10da6d93307cad3ff4eba
BLAKE2b-256 2e96cd90e84a616ba045c707f149f06e62a74631a0f3cedecdf939b044abbe7c

See more details on using hashes here.

File details

Details for the file signet_auth-0.10.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for signet_auth-0.10.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9da94c27fe457e5be3acb151ef98c2db3ed7707870b16f267fd2c86c20df756f
MD5 e8b3b0603e6d9fd0c945923a0ee3b700
BLAKE2b-256 8e4f29db7ca5d743eb8a2a996a96e938d4e4afde4b47cc4e916f3ac2b0640be6

See more details on using hashes here.

File details

Details for the file signet_auth-0.10.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for signet_auth-0.10.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fe7db49606c2fd0b61289961163473314409b16a98b9e76a05bdd1d7ddc4378e
MD5 225bdfd55e9cc900fd4f2a0b0c2eeadd
BLAKE2b-256 1f8b33eb209aa694e5b8725cb3b67e31b6ca4e54ec8ba5c7da6d6f03579137f9

See more details on using hashes here.

File details

Details for the file signet_auth-0.10.0-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for signet_auth-0.10.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a2099f51276fd7a60a455b5f88f66dfbbd2b451f7eb0dd31ad20c2a5459477dd
MD5 55655a2578a37319f0adc2f27605cfe7
BLAKE2b-256 207e52affd0781dc236b1b03aa9c19530f3607a95a644d42627395cff076b237

See more details on using hashes here.

File details

Details for the file signet_auth-0.10.0-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for signet_auth-0.10.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 52c72890795956df04fe1e6bd4794b4706956c57543609eb4fd6a78d120c77e6
MD5 75988cc6baabab74fe79a5b25b093cd7
BLAKE2b-256 44189f97627ae58504a43a139278fb22adce9968b271dd1cffbf85411eb26336

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page