Skip to main content

The Python Stellar SDK library provides APIs to build transactions and connect to Horizon.

Project description

GitHub Workflow Status Read the Docs PyPI - Downloads Code Climate maintainability Codecov PyPI Python - Version PyPI - Implementation Stellar Protocol

py-stellar-base is a Python library for communicating with a Stellar Horizon server. It is used for building Stellar apps on Python. It supports Python 3.7+ as well as PyPy 3.7+.

It provides:

  • a networking layer API for Horizon endpoints.

  • facilities for building and signing transactions, for communicating with a Stellar Horizon instance, and for submitting transactions or querying network history.

Documentation

py-stellar-base’s documentation can be found at https://stellar-sdk.readthedocs.io.

Installing

pip install -U stellar-sdk

We follow Semantic Versioning 2.0.0, and I strongly recommend that you specify its major version number in the dependency file to avoid the unknown effects of breaking changes.

A Simple Example

You can find more examples here.

Building transaction with synchronous server

# Alice pay 10.25 XLM to Bob
from stellar_sdk import Asset, Server, Keypair, TransactionBuilder, Network

alice_keypair = Keypair.from_secret("SBFZCHU5645DOKRWYBXVOXY2ELGJKFRX6VGGPRYUWHQ7PMXXJNDZFMKD")
bob_address = "GA7YNBW5CBTJZ3ZZOWX3ZNBKD6OE7A7IHUQVWMY62W2ZBG2SGZVOOPVH"

server = Server("https://horizon-testnet.stellar.org")
alice_account = server.load_account(alice_keypair.public_key)
base_fee = 100
transaction = (
    TransactionBuilder(
        source_account=alice_account,
        network_passphrase=Network.TESTNET_NETWORK_PASSPHRASE,
        base_fee=base_fee,
    )
    .add_text_memo("Hello, Stellar!")
    .append_payment_op(bob_address, Asset.native(), "10.25")
    .set_timeout(30)
    .build()
)
transaction.sign(alice_keypair)
response = server.submit_transaction(transaction)
print(response)
  • Building transaction with asynchronous server

# Alice pay 10.25 XLM to Bob
import asyncio

from stellar_sdk import Asset, ServerAsync, Keypair, TransactionBuilder, Network
from stellar_sdk.client.aiohttp_client import AiohttpClient

alice_keypair = Keypair.from_secret("SBFZCHU5645DOKRWYBXVOXY2ELGJKFRX6VGGPRYUWHQ7PMXXJNDZFMKD")
bob_address = "GA7YNBW5CBTJZ3ZZOWX3ZNBKD6OE7A7IHUQVWMY62W2ZBG2SGZVOOPVH"


async def payment():
    async with ServerAsync(
        horizon_url="https://horizon-testnet.stellar.org", client=AiohttpClient()
    ) as server:
        alice_account = await server.load_account(alice_keypair.public_key)
        base_fee = 100
        transaction = (
            TransactionBuilder(
                source_account=alice_account,
                network_passphrase=Network.TESTNET_NETWORK_PASSPHRASE,
                base_fee=base_fee,
            )
            .add_text_memo("Hello, Stellar!")
            .append_payment_op(bob_address, Asset.native(), "10.25")
            .set_timeout(30)
            .build()
        )
        transaction.sign(alice_keypair)
        response = await server.submit_transaction(transaction)
        print(response)


if __name__ == "__main__":
    asyncio.run(payment())

Soroban support

As Soroban is still under active development, I have not merged it into the main branch. You can obtain support for it in the soroban branch, but please note that there may be breaking updates at any time before the stable release.

stellar-model

stellar-model allows you to parse the JSON returned by Stellar Horizon into the Python models, click here for more information.

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

stellar-sdk-mini-8.2.0.post3.tar.gz (164.3 kB view details)

Uploaded Source

File details

Details for the file stellar-sdk-mini-8.2.0.post3.tar.gz.

File metadata

File hashes

Hashes for stellar-sdk-mini-8.2.0.post3.tar.gz
Algorithm Hash digest
SHA256 15f328ad36c0f680211573225b467e9713a845234c656699ef9fcb1e0d5cc808
MD5 0374337907c552a9a6ec72181566b13e
BLAKE2b-256 0e9734000c22474efe140e8fc276ec75ff47ce037d57bb29813768f600871f21

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page