Stellar Python SDK
==================
.. image:: https://img.shields.io/github/actions/workflow/status/StellarCN/py-stellar-base/continuous-integration-workflow.yml?branch=main
:alt: GitHub Workflow Status
:target: https://github.com/StellarCN/py-stellar-base/actions
.. image:: https://img.shields.io/readthedocs/stellar-sdk.svg
:alt: Read the Docs
:target: https://stellar-sdk.readthedocs.io/en/latest/
.. image:: https://static.pepy.tech/personalized-badge/stellar-sdk?period=total&units=abbreviation&left_color=grey&right_color=brightgreen&left_text=Downloads
:alt: PyPI - Downloads
:target: https://pypi.python.org/pypi/stellar-sdk
.. image:: https://img.shields.io/codeclimate/maintainability/StellarCN/py-stellar-base
:alt: Code Climate maintainability
:target: https://codeclimate.com/github/StellarCN/py-stellar-base/maintainability
.. image:: https://img.shields.io/codecov/c/github/StellarCN/py-stellar-base/v2
:alt: Codecov
:target: https://codecov.io/gh/StellarCN/py-stellar-base
.. image:: https://img.shields.io/pypi/v/stellar-sdk.svg
:alt: PyPI
:target: https://pypi.python.org/pypi/stellar-sdk
.. image:: https://img.shields.io/badge/python-%3E%3D3.7-blue
:alt: Python - Version
:target: https://pypi.python.org/pypi/stellar-sdk
.. image:: https://img.shields.io/badge/implementation-cpython%20%7C%20pypy-blue
:alt: PyPI - Implementation
:target: https://pypi.python.org/pypi/stellar-sdk
.. image:: https://img.shields.io/badge/Stellar%20Protocol-19-blue
:alt: Stellar Protocol
:target: https://developers.stellar.org/docs/glossary/scp/
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
----------
.. code-block:: text
pip install -U stellar-sdk
We follow `Semantic Versioning 2.0.0 <https://semver.org/>`_, 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 <https://github.com/StellarCN/py-stellar-base/tree/main/examples>`__.
Building transaction with synchronous server
.. code-block:: python
# 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
.. code-block:: python
# 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 <https://soroban.stellar.org/docs>`_ is still under active development, I have not merged it into the main branch.
You can obtain support for it in the `soroban branch <https://github.com/StellarCN/py-stellar-base/tree/soroban>`_,
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 <https://github.com/StellarCN/stellar-model>`__ for more information.
Links
-----
* Document: https://stellar-sdk.readthedocs.io
* Code: https://github.com/StellarCN/py-stellar-base
* Examples: https://github.com/StellarCN/py-stellar-base/tree/main/examples
* Issue tracker: https://github.com/StellarCN/py-stellar-base/issues
* License: `Apache License 2.0 <https://github.com/StellarCN/py-stellar-base/blob/master/LICENSE>`_
* Releases: https://pypi.org/project/stellar-sdk/
Thank you to all the people who have already contributed to py-stellar-base!
.. _Stellar Horizon server: https://github.com/stellar/go/tree/master/services/horizon
Raw data
{
"_id": null,
"home_page": "https://github.com/StellarCN/py-stellar-base",
"name": "stellar-sdk-mini",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7.0",
"maintainer_email": "",
"keywords": "stellar-sdk,stellar.org,lumens,xlm,blockchain,distributed exchange,cryptocurrency,dex,stellar-core,horizon,sdex,trading",
"author": "Eno, overcat",
"author_email": "appweb.cn@gmail.com, 4catcode@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/4c/7b/54ed8d6b90da16543479cbd9b249382565a126770cd037c780fcdb2b4a6c/stellar-sdk-mini-8.2.0.post2.tar.gz",
"platform": null,
"description": "Stellar Python SDK\n==================\n\n.. image:: https://img.shields.io/github/actions/workflow/status/StellarCN/py-stellar-base/continuous-integration-workflow.yml?branch=main\n :alt: GitHub Workflow Status\n :target: https://github.com/StellarCN/py-stellar-base/actions\n\n.. image:: https://img.shields.io/readthedocs/stellar-sdk.svg\n :alt: Read the Docs\n :target: https://stellar-sdk.readthedocs.io/en/latest/\n\n.. image:: https://static.pepy.tech/personalized-badge/stellar-sdk?period=total&units=abbreviation&left_color=grey&right_color=brightgreen&left_text=Downloads\n :alt: PyPI - Downloads\n :target: https://pypi.python.org/pypi/stellar-sdk\n\n.. image:: https://img.shields.io/codeclimate/maintainability/StellarCN/py-stellar-base\n :alt: Code Climate maintainability\n :target: https://codeclimate.com/github/StellarCN/py-stellar-base/maintainability\n\n.. image:: https://img.shields.io/codecov/c/github/StellarCN/py-stellar-base/v2\n :alt: Codecov\n :target: https://codecov.io/gh/StellarCN/py-stellar-base\n\n.. image:: https://img.shields.io/pypi/v/stellar-sdk.svg\n :alt: PyPI\n :target: https://pypi.python.org/pypi/stellar-sdk\n\n.. image:: https://img.shields.io/badge/python-%3E%3D3.7-blue\n :alt: Python - Version\n :target: https://pypi.python.org/pypi/stellar-sdk\n\n.. image:: https://img.shields.io/badge/implementation-cpython%20%7C%20pypy-blue\n :alt: PyPI - Implementation\n :target: https://pypi.python.org/pypi/stellar-sdk\n\n.. image:: https://img.shields.io/badge/Stellar%20Protocol-19-blue\n :alt: Stellar Protocol\n :target: https://developers.stellar.org/docs/glossary/scp/\n\npy-stellar-base is a Python library for communicating with\na `Stellar Horizon server`_. It is used for building Stellar apps on Python. It supports **Python 3.7+** as\nwell as PyPy 3.7+.\n\nIt provides:\n\n- a networking layer API for Horizon endpoints.\n- facilities for building and signing transactions, for communicating with a Stellar Horizon instance, and for submitting transactions or querying network history.\n\nDocumentation\n-------------\npy-stellar-base's documentation can be found at https://stellar-sdk.readthedocs.io.\n\nInstalling\n----------\n\n.. code-block:: text\n\n pip install -U stellar-sdk\n\nWe follow `Semantic Versioning 2.0.0 <https://semver.org/>`_, and I strongly\nrecommend that you specify its major version number in the dependency\nfile to avoid the unknown effects of breaking changes.\n\nA Simple Example\n----------------\nYou can find more examples `here <https://github.com/StellarCN/py-stellar-base/tree/main/examples>`__.\n\nBuilding transaction with synchronous server\n\n.. code-block:: python\n\n # Alice pay 10.25 XLM to Bob\n from stellar_sdk import Asset, Server, Keypair, TransactionBuilder, Network\n\n alice_keypair = Keypair.from_secret(\"SBFZCHU5645DOKRWYBXVOXY2ELGJKFRX6VGGPRYUWHQ7PMXXJNDZFMKD\")\n bob_address = \"GA7YNBW5CBTJZ3ZZOWX3ZNBKD6OE7A7IHUQVWMY62W2ZBG2SGZVOOPVH\"\n\n server = Server(\"https://horizon-testnet.stellar.org\")\n alice_account = server.load_account(alice_keypair.public_key)\n base_fee = 100\n transaction = (\n TransactionBuilder(\n source_account=alice_account,\n network_passphrase=Network.TESTNET_NETWORK_PASSPHRASE,\n base_fee=base_fee,\n )\n .add_text_memo(\"Hello, Stellar!\")\n .append_payment_op(bob_address, Asset.native(), \"10.25\")\n .set_timeout(30)\n .build()\n )\n transaction.sign(alice_keypair)\n response = server.submit_transaction(transaction)\n print(response)\n\n\n* Building transaction with asynchronous server\n\n.. code-block:: python\n\n # Alice pay 10.25 XLM to Bob\n import asyncio\n\n from stellar_sdk import Asset, ServerAsync, Keypair, TransactionBuilder, Network\n from stellar_sdk.client.aiohttp_client import AiohttpClient\n\n alice_keypair = Keypair.from_secret(\"SBFZCHU5645DOKRWYBXVOXY2ELGJKFRX6VGGPRYUWHQ7PMXXJNDZFMKD\")\n bob_address = \"GA7YNBW5CBTJZ3ZZOWX3ZNBKD6OE7A7IHUQVWMY62W2ZBG2SGZVOOPVH\"\n\n\n async def payment():\n async with ServerAsync(\n horizon_url=\"https://horizon-testnet.stellar.org\", client=AiohttpClient()\n ) as server:\n alice_account = await server.load_account(alice_keypair.public_key)\n base_fee = 100\n transaction = (\n TransactionBuilder(\n source_account=alice_account,\n network_passphrase=Network.TESTNET_NETWORK_PASSPHRASE,\n base_fee=base_fee,\n )\n .add_text_memo(\"Hello, Stellar!\")\n .append_payment_op(bob_address, Asset.native(), \"10.25\")\n .set_timeout(30)\n .build()\n )\n transaction.sign(alice_keypair)\n response = await server.submit_transaction(transaction)\n print(response)\n\n\n if __name__ == \"__main__\":\n asyncio.run(payment())\n\nSoroban support\n---------------\nAs `Soroban <https://soroban.stellar.org/docs>`_ is still under active development, I have not merged it into the main branch.\nYou can obtain support for it in the `soroban branch <https://github.com/StellarCN/py-stellar-base/tree/soroban>`_,\nbut please note that there may be breaking updates at any time before the stable release.\n\nstellar-model\n-------------\nstellar-model allows you to parse the JSON returned by Stellar Horizon\ninto the Python models, click `here <https://github.com/StellarCN/stellar-model>`__ for more information.\n\nLinks\n-----\n* Document: https://stellar-sdk.readthedocs.io\n* Code: https://github.com/StellarCN/py-stellar-base\n* Examples: https://github.com/StellarCN/py-stellar-base/tree/main/examples\n* Issue tracker: https://github.com/StellarCN/py-stellar-base/issues\n* License: `Apache License 2.0 <https://github.com/StellarCN/py-stellar-base/blob/master/LICENSE>`_\n* Releases: https://pypi.org/project/stellar-sdk/\n\nThank you to all the people who have already contributed to py-stellar-base!\n\n.. _Stellar Horizon server: https://github.com/stellar/go/tree/master/services/horizon\n\n",
"bugtrack_url": null,
"license": "Apache License 2.0",
"summary": "The Python Stellar SDK library provides APIs to build transactions and connect to Horizon.",
"version": "8.2.0.post2",
"project_urls": {
"Code": "https://github.com/StellarCN/py-stellar-base",
"Documentation": "https://stellar-sdk.readthedocs.org",
"Homepage": "https://github.com/StellarCN/py-stellar-base",
"Issue tracker": "https://github.com/StellarCN/py-stellar-base/issues"
},
"split_keywords": [
"stellar-sdk",
"stellar.org",
"lumens",
"xlm",
"blockchain",
"distributed exchange",
"cryptocurrency",
"dex",
"stellar-core",
"horizon",
"sdex",
"trading"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "4c7b54ed8d6b90da16543479cbd9b249382565a126770cd037c780fcdb2b4a6c",
"md5": "c0a1d477bc2ab045ecd4f6e6bbddf918",
"sha256": "0998883e176ff62cdf94cdcf444ee89b07ab44642df5c9eb34405aef1431ac71"
},
"downloads": -1,
"filename": "stellar-sdk-mini-8.2.0.post2.tar.gz",
"has_sig": false,
"md5_digest": "c0a1d477bc2ab045ecd4f6e6bbddf918",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7.0",
"size": 164169,
"upload_time": "2023-05-31T00:34:46",
"upload_time_iso_8601": "2023-05-31T00:34:46.252352Z",
"url": "https://files.pythonhosted.org/packages/4c/7b/54ed8d6b90da16543479cbd9b249382565a126770cd037c780fcdb2b4a6c/stellar-sdk-mini-8.2.0.post2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-05-31 00:34:46",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "StellarCN",
"github_project": "py-stellar-base",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "stellar-sdk-mini"
}