Python Client SDK for Sui blockchain
- The team could use a cup or carafe. Sui address
0xc45e5ea887e037ddc6a482afa412773b4291c8fdc338f647fb0fcea324975d8e
pip install pysui if first time or
pip install -U --upgrade-strategy eager pysui if upgrading.
- Fetch the latest pysui-fastcrypto binary from the release assets, unzip and
pipinstall it pip install pysui
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()explicitly -
use_account_for_gasmoved from the transaction constructor to build-time parameters on build(), build_and_sign(), and transaction_data()
Release-0.98.0 - Released 2026-04-13
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.
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())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 SuiGrpcClientNon-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
- Refer to pysui-grpc
- Refer to pysui-graphql
See CHANGELOG
We would appreciate using the github issue log to let us know!
See Strategies
Discord server invitation is Found here:
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
Note: Sample utiities are implemented using GraphQL
See samples
