status-sdk 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Status Research & Development GmbH
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,168 @@
1
+ Metadata-Version: 2.4
2
+ Name: status-sdk
3
+ Version: 1.0.0
4
+ Summary: Private chat. Communities. Multi-chain wallet. Browser. dApps all in one app, powered by SNT.
5
+ Author: Status Research & Development GmbH
6
+ License-Expression: MIT
7
+ Project-URL: Source, https://github.com/status-im/status-python-sdk
8
+ Project-URL: Issues, https://github.com/status-im/status-python-sdk/issues
9
+ Project-URL: Status App, https://status.app/
10
+ Project-URL: Status Backend, https://github.com/status-im/status-go
11
+ Keywords: privacy,decentralized,messenger,ethereum,blockchain,cryptocurrency
12
+ Classifier: Development Status :: 5 - Production/Stable
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
17
+ Requires-Python: >=3.12
18
+ Description-Content-Type: text/markdown
19
+ License-File: LICENSE.txt
20
+ Requires-Dist: requests
21
+ Requires-Dist: websocket-client
22
+ Requires-Dist: websockets
23
+ Requires-Dist: pandas
24
+ Requires-Dist: pillow
25
+ Requires-Dist: eth-abi
26
+ Provides-Extra: agents
27
+ Requires-Dist: tabulate; extra == "agents"
28
+ Requires-Dist: langchain; extra == "agents"
29
+ Requires-Dist: langchain-core; extra == "agents"
30
+ Requires-Dist: langchain-groq; extra == "agents"
31
+ Requires-Dist: python-dotenv; extra == "agents"
32
+ Dynamic: license-file
33
+
34
+ # Status Python SDK
35
+
36
+ ![Status Python SDK header image](./docs/images/overview-header.png)
37
+
38
+ [Status](http://status.app/) 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.
39
+
40
+ 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:
41
+
42
+ - **light** - as less external packages when it comes to working with Status App
43
+ - **fast** - quick to get started with Status Python
44
+ - **documented** - clear explanations of what was done and **why it was done in a specific way**.
45
+
46
+ ## How it works
47
+
48
+ ```mermaid
49
+ graph TB
50
+ subgraph backend[status-im/status-go]
51
+ subgraph Endpoints[Network: status-bridge]
52
+ RPC[RPC]
53
+ HTTP[REST]
54
+ SOCKET[Web Socket]
55
+ end
56
+ Vol1[(Backup)]
57
+ Vol2[(Assets)]
58
+ end
59
+
60
+
61
+ subgraph bot[status-im/status-python-sdk]
62
+ REQUIREMENTS[requirements.txt]
63
+ SDK[class Account]
64
+ SIGNAL[class Signal]
65
+ end
66
+
67
+ subgraph external[External Services]
68
+ COINGECKO[CoinGecko]
69
+ ALCHEMY[Alchemy]
70
+ INFURA[Infura]
71
+ end
72
+
73
+ SDK --> SIGNAL
74
+ SDK --> |Port 8080| RPC
75
+ SDK --> |Port 8080| HTTP
76
+ SIGNAL --> |Port 8080| SOCKET
77
+ SDK --> Vol1
78
+ SDK --> Vol2
79
+ RPC --> |coingecko_api_key| COINGECKO
80
+ RPC --> |infura_token| INFURA
81
+ HTTP --> |alchemy_token| ALCHEMY
82
+ ```
83
+
84
+ ## Setup
85
+
86
+ To access Python funcitonality you will have to set up [Status Backend](https://github.com/status-im/status-go/). Easiest and fastest way to get it running would be with [Docker](https://www.docker.com/products/docker-desktop/).
87
+
88
+ ```mermaid
89
+ sequenceDiagram
90
+ actor User
91
+ participant Docker
92
+ participant Python@{"alias": "status-im/status-python-sdk"}
93
+ participant Github@{"alias": "status-im/status-go" }
94
+
95
+ User ->> Docker: docker-compose up
96
+ Docker ->> Github: Fetch Image
97
+ Docker ->> Docker: Build
98
+ User ->> Docker: Run container
99
+ User ->> Python: initialize module
100
+ Note over User,Python: from status_sdk import Account<br>account = Account()
101
+ ```
102
+
103
+ ### Python
104
+
105
+ #### Install
106
+
107
+ Clone the repository and move into it:
108
+
109
+ ```
110
+ git clone https://github.com/status-im/status-python-sdk.git
111
+ cd status-python-sdk
112
+ ```
113
+
114
+ Install the base library:
115
+
116
+ ```
117
+ pip install .
118
+ ```
119
+
120
+ If you want to modify the library itself without having to reinstall:
121
+
122
+ ```
123
+ pip install -e .
124
+ ```
125
+
126
+ #### Uninstall
127
+
128
+ ```
129
+ pip uninstall status-sdk
130
+ ```
131
+
132
+
133
+ ### Docker
134
+
135
+ [`status-im/status-go`](https://github.com/status-im/status-go/) runs from the provided [`docker-compose.yaml`](./status_sdk/docker-compose.yaml) file. It does not use a pre-built image - it builds the backend from source, pulling directly from GitHub.
136
+
137
+
138
+ To run on Windows, please make sure you have set up [WSL](https://learn.microsoft.com/en-us/windows/wsl/install). 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.
139
+
140
+ You can set it up in **two** ways.
141
+
142
+ #### With Python
143
+
144
+ Use [`launch_docker_container`](./docs/utils.md#launch_docker_containercommitnone-wait_seconds5-platformlinuxamd64), 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:
145
+
146
+ ```python
147
+ from status_sdk import launch_docker_container
148
+ launch_docker_container()
149
+ ```
150
+
151
+ #### Manually
152
+
153
+ Run the compose file yourself. It lives inside the installed package, so point Docker at it:
154
+
155
+ ```
156
+ docker compose -f status_sdk/docker-compose.yaml up -d
157
+ ```
158
+
159
+ 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:
160
+
161
+ | Variable | Default | Description |
162
+ |-----|-----|-------------|
163
+ | `STATUS_GO_REF` | `develop` | The [`status-im/status-go`](https://github.com/status-im/status-go/) git ref (commit SHA, branch or tag) to build from. |
164
+ | `STATUS_GO_PLATFORM` | `linux/amd64` | The platform the image is built for. |
165
+
166
+ ```
167
+ STATUS_GO_REF=2bee8b6a38cdc8f92d74e2dbb8c4e77fbbeea149 STATUS_GO_PLATFORM=linux/amd64 docker compose -f status_sdk/docker-compose.yaml up -d
168
+ ```
@@ -0,0 +1,135 @@
1
+ # Status Python SDK
2
+
3
+ ![Status Python SDK header image](./docs/images/overview-header.png)
4
+
5
+ [Status](http://status.app/) 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.
6
+
7
+ 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:
8
+
9
+ - **light** - as less external packages when it comes to working with Status App
10
+ - **fast** - quick to get started with Status Python
11
+ - **documented** - clear explanations of what was done and **why it was done in a specific way**.
12
+
13
+ ## How it works
14
+
15
+ ```mermaid
16
+ graph TB
17
+ subgraph backend[status-im/status-go]
18
+ subgraph Endpoints[Network: status-bridge]
19
+ RPC[RPC]
20
+ HTTP[REST]
21
+ SOCKET[Web Socket]
22
+ end
23
+ Vol1[(Backup)]
24
+ Vol2[(Assets)]
25
+ end
26
+
27
+
28
+ subgraph bot[status-im/status-python-sdk]
29
+ REQUIREMENTS[requirements.txt]
30
+ SDK[class Account]
31
+ SIGNAL[class Signal]
32
+ end
33
+
34
+ subgraph external[External Services]
35
+ COINGECKO[CoinGecko]
36
+ ALCHEMY[Alchemy]
37
+ INFURA[Infura]
38
+ end
39
+
40
+ SDK --> SIGNAL
41
+ SDK --> |Port 8080| RPC
42
+ SDK --> |Port 8080| HTTP
43
+ SIGNAL --> |Port 8080| SOCKET
44
+ SDK --> Vol1
45
+ SDK --> Vol2
46
+ RPC --> |coingecko_api_key| COINGECKO
47
+ RPC --> |infura_token| INFURA
48
+ HTTP --> |alchemy_token| ALCHEMY
49
+ ```
50
+
51
+ ## Setup
52
+
53
+ To access Python funcitonality you will have to set up [Status Backend](https://github.com/status-im/status-go/). Easiest and fastest way to get it running would be with [Docker](https://www.docker.com/products/docker-desktop/).
54
+
55
+ ```mermaid
56
+ sequenceDiagram
57
+ actor User
58
+ participant Docker
59
+ participant Python@{"alias": "status-im/status-python-sdk"}
60
+ participant Github@{"alias": "status-im/status-go" }
61
+
62
+ User ->> Docker: docker-compose up
63
+ Docker ->> Github: Fetch Image
64
+ Docker ->> Docker: Build
65
+ User ->> Docker: Run container
66
+ User ->> Python: initialize module
67
+ Note over User,Python: from status_sdk import Account<br>account = Account()
68
+ ```
69
+
70
+ ### Python
71
+
72
+ #### Install
73
+
74
+ Clone the repository and move into it:
75
+
76
+ ```
77
+ git clone https://github.com/status-im/status-python-sdk.git
78
+ cd status-python-sdk
79
+ ```
80
+
81
+ Install the base library:
82
+
83
+ ```
84
+ pip install .
85
+ ```
86
+
87
+ If you want to modify the library itself without having to reinstall:
88
+
89
+ ```
90
+ pip install -e .
91
+ ```
92
+
93
+ #### Uninstall
94
+
95
+ ```
96
+ pip uninstall status-sdk
97
+ ```
98
+
99
+
100
+ ### Docker
101
+
102
+ [`status-im/status-go`](https://github.com/status-im/status-go/) runs from the provided [`docker-compose.yaml`](./status_sdk/docker-compose.yaml) file. It does not use a pre-built image - it builds the backend from source, pulling directly from GitHub.
103
+
104
+
105
+ To run on Windows, please make sure you have set up [WSL](https://learn.microsoft.com/en-us/windows/wsl/install). 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.
106
+
107
+ You can set it up in **two** ways.
108
+
109
+ #### With Python
110
+
111
+ Use [`launch_docker_container`](./docs/utils.md#launch_docker_containercommitnone-wait_seconds5-platformlinuxamd64), 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:
112
+
113
+ ```python
114
+ from status_sdk import launch_docker_container
115
+ launch_docker_container()
116
+ ```
117
+
118
+ #### Manually
119
+
120
+ Run the compose file yourself. It lives inside the installed package, so point Docker at it:
121
+
122
+ ```
123
+ docker compose -f status_sdk/docker-compose.yaml up -d
124
+ ```
125
+
126
+ 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:
127
+
128
+ | Variable | Default | Description |
129
+ |-----|-----|-------------|
130
+ | `STATUS_GO_REF` | `develop` | The [`status-im/status-go`](https://github.com/status-im/status-go/) git ref (commit SHA, branch or tag) to build from. |
131
+ | `STATUS_GO_PLATFORM` | `linux/amd64` | The platform the image is built for. |
132
+
133
+ ```
134
+ STATUS_GO_REF=2bee8b6a38cdc8f92d74e2dbb8c4e77fbbeea149 STATUS_GO_PLATFORM=linux/amd64 docker compose -f status_sdk/docker-compose.yaml up -d
135
+ ```
@@ -0,0 +1,51 @@
1
+ [build-system]
2
+ requires = ["setuptools>=77"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "status-sdk"
7
+ version = "1.0.0"
8
+ description = "Private chat. Communities. Multi-chain wallet. Browser. dApps all in one app, powered by SNT."
9
+ readme = "README.md"
10
+ requires-python = ">=3.12"
11
+ license = "MIT"
12
+ license-files = ["LICENSE.txt"]
13
+ authors = [{ name = "Status Research & Development GmbH" }]
14
+ keywords = ["privacy", "decentralized", "messenger", "ethereum", "blockchain", "cryptocurrency"]
15
+ classifiers = [
16
+ "Development Status :: 5 - Production/Stable",
17
+ "Intended Audience :: Developers",
18
+ "Programming Language :: Python :: 3",
19
+ "Programming Language :: Python :: 3.12",
20
+ "Topic :: Software Development :: Libraries :: Python Modules",
21
+ ]
22
+ dependencies = [
23
+ "requests",
24
+ "websocket-client",
25
+ "websockets",
26
+ "pandas",
27
+ "pillow",
28
+ "eth-abi",
29
+ ]
30
+
31
+ [project.optional-dependencies]
32
+ agents = [
33
+ "tabulate",
34
+ "langchain",
35
+ "langchain-core",
36
+ "langchain-groq",
37
+ "python-dotenv",
38
+ ]
39
+
40
+ [project.urls]
41
+ Source = "https://github.com/status-im/status-python-sdk"
42
+ Issues = "https://github.com/status-im/status-python-sdk/issues"
43
+ "Status App" = "https://status.app/"
44
+ "Status Backend" = "https://github.com/status-im/status-go"
45
+
46
+ [tool.setuptools]
47
+ packages = ["status_sdk"]
48
+
49
+ [tool.setuptools.package-data]
50
+ status_sdk = ["docker-compose.yaml"]
51
+
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,5 @@
1
+ from .account import Account
2
+ from .utils import launch_docker_container
3
+ from . import exceptions
4
+
5
+ __all__ = ["Account", "launch_docker_container", "exceptions"]