Skip to main content

Private chat. Communities. Multi-chain wallet. Browser. dApps all in one app, powered by SNT.

Project description

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]
        REQUIREMENTS[requirements.txt]
        SDK[class Account]
        SIGNAL[class Signal]
    end

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

    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

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 two variables from the environment. Both have a default, so the command above works as-is, but they can be overridden:

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

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

status_sdk-1.0.0.tar.gz (28.1 kB view details)

Uploaded Source

Built Distribution

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

status_sdk-1.0.0-py3-none-any.whl (27.7 kB view details)

Uploaded Python 3

File details

Details for the file status_sdk-1.0.0.tar.gz.

File metadata

  • Download URL: status_sdk-1.0.0.tar.gz
  • Upload date:
  • Size: 28.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for status_sdk-1.0.0.tar.gz
Algorithm Hash digest
SHA256 4f4acba39283f73ab37d8b2c29edd9e78ece1d617809138071509bed749607e2
MD5 5543680bfe640ae52c35016950224f64
BLAKE2b-256 817d3d99ccf45eccbfb91342464eedcb697545ef2ab0d766d2dc69e010fb97d3

See more details on using hashes here.

File details

Details for the file status_sdk-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: status_sdk-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 27.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for status_sdk-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 736d0b6f41c062042b60d06c04a032d5716ed990675f14c4dd79adecac615d41
MD5 c20e2f733d18609828309f609eaf95d8
BLAKE2b-256 8a8446f87a11b63b8be186a4b67eaafd82a1b64ba7a6a7da23754da467c0350b

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