[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "chain-signer" version = "0.5.32" description = "Security suite for AI agents — catch the dangerous thing before it's signed. Preflight an unsigned EVM transaction for drains, inspect EIP-712 signatures for permit-phishing, and gate agent actions by policy. Pairs with any wallet or MCP stack; ships a non-custodial wallet too." readme = "README.md" requires-python = ">=3.10" license = { text = "MIT" } authors = [{ name = "chain-signer" }] keywords = ["ai-agents", "agent-security", "transaction-security", "drain-protection", "permit-phishing", "preflight", "eip-712", "mcp", "mcp-server", "web3", "evm", "ethereum", "non-custodial", "wallet", "crypto", "agent-tools"] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Security", "Topic :: Office/Business :: Financial", ] dependencies = ["web3>=7", "eth-account", "eth-abi", "eth-utils"] [project.optional-dependencies] solana = ["solders", "base58"] bitcoin = ["bit"] all = ["solders", "base58", "bit"] [project.scripts] chain-signer = "chain_signer.cli:main" chain-signer-mcp = "chain_signer.mcp_stdio:main" [project.urls] Homepage = "https://github.com/Kevthetech143/chain-signer" Documentation = "https://github.com/Kevthetech143/chain-signer#readme" [tool.hatch.build.targets.wheel] packages = ["chain_signer"] # The source tarball (sdist) is uploaded to PyPI and publicly downloadable. Keep it to the package # + standard release metadata + tests; exclude internal working files (research, plans, status, # audits, the live-fire harness) so we never publish business/strategy notes to PyPI. [tool.hatch.build.targets.sdist] exclude = [ "docs", "audits", "scripts", "pending.md", "closed.md", "STATUS.md", "feedback.md", ".playwright-cli", ".github", ] [tool.pytest.ini_options] testpaths = ["tests"]