Skip to main content

Python implementation of the Safe Protocol Kit

Project description

Safe Kit (Python)

PyPI version Python versions License CI codecov

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.11.tar.gz (16.4 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.11-py3-none-any.whl (20.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: safe_kit-0.0.11.tar.gz
  • Upload date:
  • Size: 16.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for safe_kit-0.0.11.tar.gz
Algorithm Hash digest
SHA256 aef03c5c4492478e50b70f89617b8bf9c622e58773a08858d355ea8b172ce496
MD5 1b16a4187771e53d8b921f9fb6d5f242
BLAKE2b-256 c65876667190657f0f2e9c803926fc76319289ad414993f59c40714364adce65

See more details on using hashes here.

Provenance

The following attestation bundles were made for safe_kit-0.0.11.tar.gz:

Publisher: release.yml on smallyunet/safe-kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: safe_kit-0.0.11-py3-none-any.whl
  • Upload date:
  • Size: 20.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for safe_kit-0.0.11-py3-none-any.whl
Algorithm Hash digest
SHA256 2a63fc140870528f22061cc52792671f52c9d0d867a4ef672886a2f9748ee2b4
MD5 96ef1103353258ae6aa75e5450b4d042
BLAKE2b-256 6896bba9dd637b726be3294867bac7db3f037fb0583198dbab83634d5a4856c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for safe_kit-0.0.11-py3-none-any.whl:

Publisher: release.yml on smallyunet/safe-kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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