Skip to main content

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

Project description

GitHub Action 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.6+ as well as PyPy 3.6+.

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())

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


Release history Release notifications | RSS feed

This version

8.0.1

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-8.0.1.tar.gz (220.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

stellar_sdk-8.0.1-py3-none-any.whl (516.4 kB view details)

Uploaded Python 3

File details

Details for the file stellar-sdk-8.0.1.tar.gz.

File metadata

  • Download URL: stellar-sdk-8.0.1.tar.gz
  • Upload date:
  • Size: 220.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.4

File hashes

Hashes for stellar-sdk-8.0.1.tar.gz
Algorithm Hash digest
SHA256 2f939aca7bcab3e4e08bbd6a44dcdc371c2f2f643b38a4b8213b9112119e1588
MD5 5dc05579b4f584864b1880951435191a
BLAKE2b-256 a3b66d1f018e69a8c834e8b6e4c9e25ecbb613e0ff8dcca71cded272c09153dc

See more details on using hashes here.

File details

Details for the file stellar_sdk-8.0.1-py3-none-any.whl.

File metadata

  • Download URL: stellar_sdk-8.0.1-py3-none-any.whl
  • Upload date:
  • Size: 516.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.4

File hashes

Hashes for stellar_sdk-8.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f4fe876cc255441f0ca16270cc9294c8738d2422baf77c17ee6f09420786e7f3
MD5 ab91c62b2c4b2b48faf78a13fa61249c
BLAKE2b-256 1d3be0700cb1736f2536070d3039fc66035bf599e1b44564f716885882d249fe

See more details on using hashes here.

Supported by

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