Skip to main content

Python implementation of the Safe Protocol Kit

Project description

Safe Kit (Python)

PyPI version Python versions License

A Python implementation of the Safe Protocol Kit, designed to mirror the developer experience of the official Node.js SDK.

Features

  • DX First: Intuitive API for interacting with Safe smart accounts.
  • Type Safe: Built with Pydantic and fully typed for robust development.
  • Modern Stack: Uses Web3.py, Eth-account, and Python 3.10+.
  • Full Protocol Support: Supports Safe deployment, transaction creation, signing (EIP-712 & eth_sign), and execution.
  • Advanced Features: MultiSend (batching), Safe Transaction Service integration, and more.

Installation

You can install safe-kit via pip:

pip install safe-kit

Or with Poetry:

poetry add safe-kit

Usage

Initialization

from web3 import Web3
from eth_account import Account
from safe_kit.safe import Safe
from safe_kit.adapter import Web3Adapter

# Setup Web3 and Signer
w3 = Web3(Web3.HTTPProvider("RPC_URL"))
owner = Account.from_key("PRIVATE_KEY")
adapter = Web3Adapter(web3=w3, signer=owner)

# Initialize Safe
safe = Safe(eth_adapter=adapter, safe_address="0xSafeAddress")

Creating and Signing Transactions

from safe_kit.types import SafeTransactionData

# Create a transaction (e.g., send ETH)
tx_data = SafeTransactionData(
    to="0xRecipient",
    value=1000000000000000000, # 1 ETH
    data="0x"
)

safe_tx = safe.create_transaction(tx_data)

# Sign the transaction
# Supports "eth_sign_typed_data" (default, EIP-712) or "eth_sign" (legacy)
signed_tx = safe.sign_transaction(safe_tx)

Executing Transactions

# Execute the transaction on-chain
tx_hash = safe.execute_transaction(signed_tx)
print(f"Transaction executed: {tx_hash}")

For more advanced usage (Batching, Transaction Service, Deployment), please refer to the User Guide.

Development

Setup

# Install dependencies
poetry install

Running Tests

poetry run pytest

Linting

poetry run ruff check .
poetry run mypy .

Roadmap

See docs/roadmap.md for the current implementation status.

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

safe_kit-0.0.4.tar.gz (12.6 kB view details)

Uploaded Source

Built Distribution

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

safe_kit-0.0.4-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

Details for the file safe_kit-0.0.4.tar.gz.

File metadata

  • Download URL: safe_kit-0.0.4.tar.gz
  • Upload date:
  • Size: 12.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.14.2 Linux/6.11.0-1018-azure

File hashes

Hashes for safe_kit-0.0.4.tar.gz
Algorithm Hash digest
SHA256 f2954189245dad1b846f321d9df923367dee9d32243d1c6d74949e29c415ef89
MD5 c6183580e58bf442251519f022ef3282
BLAKE2b-256 fc4a70b22e7396b4a295fa60873531f26132c7cd83fa4098ccdcf80a360789d6

See more details on using hashes here.

File details

Details for the file safe_kit-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: safe_kit-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 15.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.14.2 Linux/6.11.0-1018-azure

File hashes

Hashes for safe_kit-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 576923aae23876f995d55aa39bcbb0ddb13171a8d595746f584eded09ac8cd1e
MD5 c9a49251d8ac26c73fad1711d7551e9b
BLAKE2b-256 dc7e54c5563209f3fe6686748740307bc14e3cc29ea792aecdd916bda18ced71

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