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.
Latest Documentation.
Note: This library uses many core types from the Solders package which used to be provided by solana-py
itself. If you are upgrading from an old version and you're looking for something that was deleted, it's probably in solders
now.
⚓︎ See also: AnchorPy,
a Python client for
Anchor-based
programs on Solana. ⚓︎
⚡ Quickstart
Installation
- Install Python bindings for the solana-sdk.
pip install solders
- Install this package to interact with the Solana JSON RPC API.
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)
client = AsyncClient("https://api.devnet.solana.com")
res = await client.is_connected()
print(res)
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[0].result
next_resp = await websocket.recv()
print(next_resp)
await websocket.logs_unsubscribe(subscription_id)
async with connect("wss://api.devnet.solana.com") as websocket:
await websocket.logs_subscribe()
first_resp = await websocket.recv()
subscription_id = first_resp[0].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
make tests
make unit-tests
make int-tests