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.
- status_sdk-1.0.0/LICENSE.txt +21 -0
- status_sdk-1.0.0/PKG-INFO +168 -0
- status_sdk-1.0.0/README.md +135 -0
- status_sdk-1.0.0/pyproject.toml +51 -0
- status_sdk-1.0.0/setup.cfg +4 -0
- status_sdk-1.0.0/status_sdk/__init__.py +5 -0
- status_sdk-1.0.0/status_sdk/account.py +1524 -0
- status_sdk-1.0.0/status_sdk/constants.py +17 -0
- status_sdk-1.0.0/status_sdk/docker-compose.yaml +28 -0
- status_sdk-1.0.0/status_sdk/exceptions.py +37 -0
- status_sdk-1.0.0/status_sdk/logger.py +24 -0
- status_sdk-1.0.0/status_sdk/signal.py +367 -0
- status_sdk-1.0.0/status_sdk/utils.py +64 -0
- status_sdk-1.0.0/status_sdk.egg-info/PKG-INFO +168 -0
- status_sdk-1.0.0/status_sdk.egg-info/SOURCES.txt +16 -0
- status_sdk-1.0.0/status_sdk.egg-info/dependency_links.txt +1 -0
- status_sdk-1.0.0/status_sdk.egg-info/requires.txt +13 -0
- status_sdk-1.0.0/status_sdk.egg-info/top_level.txt +1 -0
|
@@ -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
|
+

|
|
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
|
+

|
|
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
|
+
|