Sui SDKs > Python SDK
(community)
pysui
Python Client SDK for Sui blockchain
A cup of coffee
- The team could use a cup or carafe. Sui address
0xc45e5ea887e037ddc6a482afa412773b4291c8fdc338f647fb0fcea324975d8e
pysui SDK install
With Rust on machine
pip install pysui if first time or
pip install -U --upgrade-strategy eager pysui if upgrading.
Without Rust on machine
- Fetch the latest pysui-fastcrypto binary from the release assets, unzip and
pipinstall it pip install pysui
pysui SDK current (github)
Release-0.99.0
BREAKING CHANGES
profile_names(in_group=...)no longer mutates the active group as a side effect — callers relying on this behavior must callmake_active()explicitlyuse_account_for_gasmoved from the transaction constructor to build-time parameters on build(), build_and_sign(), and transaction_data()
PyPi current
Release-0.98.0 - Released 2026-04-13
Client Instantiation Migration Guide
Release 0.98.0 introduces client_factory and PysuiConfiguration as the preferred way to create clients.
The legacy SuiConfig, SuiClient (JSON-RPC), and SuiGQLClient (synchronous GraphQL) are deprecated
and will be removed in a future release.
Before (deprecated)
JSON-RPC synchronous client:
from pysui import SuiConfig
from pysui.sui.sui_clients.sync_client import SuiClient
config = SuiConfig.default_config()
client = SuiClient(config=config)
JSON-RPC asynchronous client:
from pysui import SuiConfig
from pysui.sui.sui_clients.async_client import SuiClient
config = SuiConfig.default_config()
client = SuiClient(config=config)
GraphQL synchronous client:
from pysui import PysuiConfiguration
from pysui.sui.sui_pgql.pgql_clients import SuiGQLClient
client = SuiGQLClient(pysui_config=PysuiConfiguration())
GraphQL asynchronous client (direct instantiation):
from pysui import PysuiConfiguration
from pysui.sui.sui_pgql.pgql_clients import AsyncSuiGQLClient
client = AsyncSuiGQLClient(pysui_config=PysuiConfiguration())
gRPC asynchronous client (direct instantiation):
from pysui import PysuiConfiguration
from pysui.sui.sui_grpc.pgrpc_clients import SuiGrpcClient
client = SuiGrpcClient(pysui_config=PysuiConfiguration())
After (recommended)
Use client_factory with PysuiConfiguration. The active group's group_protocol setting
determines whether a AsyncSuiGQLClient (GraphQL) or SuiGrpcClient (gRPC) is returned.
Both implement the PysuiClient abstract interface.
Default active group (protocol auto-detected from config):
from pysui import PysuiConfiguration, client_factory
config = PysuiConfiguration()
client = client_factory(config) # Returns AsyncSuiGQLClient or SuiGrpcClient
Non-standard group with explicit protocol:
from pysui import PysuiConfiguration, GroupProtocol, client_factory
config = PysuiConfiguration()
# group_name selects a named profile group; protocol must be specified explicitly
client = client_factory(config, group_name="my-custom-group", protocol=GroupProtocol.GRAPHQL)
Async usage pattern:
import asyncio
from pysui import PysuiConfiguration, client_factory
async def main():
config = PysuiConfiguration()
client = client_factory(config)
txn = client.transaction(sender=config.active_address)
# ... build and execute transaction ...
asyncio.run(main())
Added support for Mysten address balance
FULL Documentation
gRPC Support
- Refer to pysui-grpc
GraphQL Support
- Refer to pysui-graphql
Changelog
See CHANGELOG
Issues and enhancement requests
We would appreciate using the github issue log to let us know!
Release/Publish Strategy
See Strategies
Discord
Discord server invitation is Found here:
Local node support
Note: Only supported for JSON RPC clients, GraphQL not available for suibase at this time.
We leverage suibase for our testing and SuiConfig includes an option for interacting directly with local nodes created by suibase
Sample utilities
Note: Sample utiities are implemented using GraphQL
See samples