Skip to main content

Status Python SDK

Status Python SDK header image

Status is a decentralized, open-source super app combining a crypto wallet, messenger, and community spaces. It uses peer-to-peer technology so no central server can censor your messages or access your data.

The initial Python Status Backend was built with testing in mind, instead of easy developer access. The objective of this repository is to make a SDK that is:

  • light - as less external packages when it comes to working with Status App
  • fast - quick to get started with Status Python
  • documented - clear explanations of what was done and why it was done in a specific way.

How it works

graph TB
    subgraph backend[status-im/status-go]
        subgraph Endpoints[Network: status-bridge]
           RPC[RPC]
           HTTP[REST]
           SOCKET[Web Socket]
       end
       Vol1[(Backup)]
       Vol2[(Assets)]
   end


   subgraph bot[status-im/status-python-sdk]
        GROUP_CHAT[class GroupChat]
        COMMUNITY[class Community]
        CHANNEL[class Channel]
        SDK[class Account]
        SIGNAL[class Signal]
    end

    subgraph external[External Services]
        COINGECKO[CoinGecko]
        ALCHEMY[Alchemy]
        INFURA[Infura]
    end

    COMMUNITY --> CHANNEL
    COMMUNITY <--> |logged in Account| SDK
    GROUP_CHAT <--> |logged in Account| SDK
    SDK --> SIGNAL
    SDK --> |Port 8080| RPC
    SDK --> |Port 8080| HTTP
    SIGNAL --> |Port 8080| SOCKET
    SDK --> Vol1
    SDK --> Vol2
    RPC --> |coingecko_api_key| COINGECKO
    RPC --> |infura_token| INFURA
    HTTP --> |alchemy_token| ALCHEMY

Setup

To access Python funcitonality you will have to set up Status Backend. Easiest and fastest way to get it running would be with Docker.

sequenceDiagram
    actor User
    participant Docker
    participant Python@{"alias": "status-im/status-python-sdk"}
    participant Github@{"alias": "status-im/status-go" }
    
    User ->> Docker: docker-compose up
    Docker ->> Github: Fetch Image
    Docker ->> Docker: Build
    User ->> Docker: Run container
    User ->> Python: initialize module
    Note over User,Python: from status_sdk import Account<br>account = Account()

Python

Install

PyPI
pip install status-sdk
Locally

Clone the repository and move into it:

git clone https://github.com/status-im/status-python-sdk.git
cd status-python-sdk

Install the base library:

pip install .

If you want to modify the library itself without having to reinstall:

pip install -e .

Uninstall

pip uninstall status-sdk

Docker

status-im/status-go runs from the provided docker-compose.yaml file. It does not use a pre-built image - it builds the backend from source, pulling directly from GitHub.

To run on Windows, please make sure you have set up WSL. It is required for the build: context above. The SDK invokes Docker through WSL so it can build the Linux image and clone the repository during the build. If the build is changed to point to a local repository, then WSL is not required.

You can set it up in two ways.

With Python

Use launch_docker_container, which builds and starts the container for you. This is the recommended option, as it handles platform selection and (on Windows) recovers from stale Docker mounts:

from status_sdk import launch_docker_container
launch_docker_container()

Manually

Run the compose file yourself. It lives inside the installed package, so point Docker at it:

docker compose -f status_sdk/docker-compose.yaml up -d

The compose file reads three variables from the environment. All of them have a default, so the command above works as-is, but they can be overridden:

Variable Default Description
STATUS_GO_COMMIT develop The status-im/status-go git ref (commit SHA, branch or tag) to build from.
PLATFORM linux/amd64 The platform the image is built for.
STATUS_GO_COMMIT=2bee8b6a38cdc8f92d74e2dbb8c4e77fbbeea149 PLATFORM=linux/amd64 docker compose -f status_sdk/docker-compose.yaml up -d

Metadata

Release files for status-sdk 1.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for status-sdk 1.4.0
File Size Uploaded Provenance Actions
status_sdk-1.4.0.tar.gz 70.3 kB Without provenance Details for status_sdk-1.4.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for status-sdk 1.4.0
File Interpreter ABI Platform Actions
status_sdk-1.4.0-py3-none-any.whl Python 3 none any Details for status_sdk-1.4.0-py3-none-any.whl

Total release size: 143.6 kB

Release files / status_sdk-1.4.0.tar.gz

Download URL status_sdk-1.4.0.tar.gz
Size 70.3 kB
Tags Source
SHA-256 checksum
How to use checksums
3dc00629f1e5cea5a337c4f8ace2cad0427de6951179bb3e8226d57a4f1767da
BLAKE2b-256 checksum
How to use checksums
adc42e229f3d26bca048b2be86eb1625c2eb21381dbb1e54205cdf0039911935
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / status_sdk-1.4.0-py3-none-any.whl

Download URL status_sdk-1.4.0-py3-none-any.whl
Size 73.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ad5ab2271e6a811cded1c497ee824bb4310a59dceebfd0ca180541aa2c113a08
BLAKE2b-256 checksum
How to use checksums
26a59d2f706aa081bc89288e978aeb1f67ca66b12386d3495511ba703e5bcf91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for status-sdk 1.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page