Solana Python API
Project description
Solana.py
🐍 The Solana Python SDK 🐍
Solana.py is the base Python library for interacting with Solana. You can use it to build transactions and interact with the Solana JSON RPC API, much like you would do with solana-web3.js
It also covers the SPL Token Program.
⚓︎ See also: AnchorPy, a Python client for Anchor-based programs on Solana. ⚓︎
⚡ Quickstart
Installation
pip install solana
General Usage
Note: check out the Solana Cookbook for more detailed examples!
import solana
API Client
from solana.rpc.api import Client
http_client = Client("https://api.devnet.solana.com")
Async API Client
import asyncio
from solana.rpc.async_api import AsyncClient
async def main():
async with AsyncClient("https://api.devnet.solana.com") as client:
res = await client.is_connected()
print(res) # True
# Alternatively, close the client explicitly instead of using a context manager:
client = AsyncClient("https://api.devnet.solana.com")
res = await client.is_connected()
print(res) # True
await client.close()
asyncio.run(main())
Websockets Client
import asyncio
from asyncstdlib import enumerate
from solana.rpc.websocket_api import connect
async def main():
async with connect("wss://api.devnet.solana.com") as websocket:
await websocket.logs_subscribe()
first_resp = await websocket.recv()
subscription_id = first_resp.result
next_resp = await websocket.recv()
print(next_resp)
await websocket.logs_unsubscribe(subscription_id)
# Alternatively, use the client as an infinite asynchronous iterator:
async with connect("wss://api.devnet.solana.com") as websocket:
await websocket.logs_subscribe()
first_resp = await websocket.recv()
subscription_id = first_resp.result
async for idx, msg in enumerate(websocket):
if idx == 3:
break
print(msg)
await websocket.logs_unsubscribe(subscription_id)
asyncio.run(main())
🔨 Development
Setup
- Install poetry
- Install dev dependencies:
poetry install
- Activate the poetry shell.
poetry shell
Lint
make lint
Tests
# All tests
make tests
# Unit tests only
make unit-tests
# Integration tests only
make int-tests
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
solana-0.27.2.tar.gz
(60.8 kB
view details)
Built Distribution
solana-0.27.2-py3-none-any.whl
(75.3 kB
view details)
File details
Details for the file solana-0.27.2.tar.gz
.
File metadata
- Download URL: solana-0.27.2.tar.gz
- Upload date:
- Size: 60.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.10 CPython/3.9.14 Linux/5.15.0-1020-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3fbdfda80966c173a7956f82e3cbfc255b5b41dc50b0b58af66fb0ffc6b6473b |
|
MD5 | ab0527481bf63af0934a053f1886f494 |
|
BLAKE2b-256 | a22a65500f857fbea6b2c80f9526ac3f8a3187a1009d60bab7c445f14d30e21d |
File details
Details for the file solana-0.27.2-py3-none-any.whl
.
File metadata
- Download URL: solana-0.27.2-py3-none-any.whl
- Upload date:
- Size: 75.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.10 CPython/3.9.14 Linux/5.15.0-1020-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6130c38c8b15bfe908f37e6de2948ec8631fdb19cfe6b4a5c4ae8bc25f5d8388 |
|
MD5 | 06bb27cfda591986ffa26f4810206023 |
|
BLAKE2b-256 | da8f5c828de2fe32f67aef0bdb2feb8ab8d2123285c348f8bd96dc898ad75aba |