Python SDK for tonapi.io.
Information about the API can be found in the documentation.
To use the API you need an API key, you can get it here tonconsole.com.
-
Asynchronous and Synchronous Calls:
Enjoy the flexibility of both asynchronous and synchronous variants for API calls. -
Response Validation with Pydantic Models:
All response data is validated using Pydantic models, ensuring that you receive structured and validated information. -
Convenient Data Manipulation:
The wrapper facilitates seamless manipulation of data, such as converting balances to nanotons or amounts. -
Extensive Examples:
Explore a variety of examples in the examples folder to help you get started and understand different use cases.
pip install pytonapi
Asynchronous
from pytonapi import AsyncTonapi
# Declare an asynchronous function for using await
async def main():
# Create a new Tonapi object with the provided API key
tonapi = AsyncTonapi(api_key="Your API key")
# Specify the account ID
account_id = "EQC-3ilVr-W0Uc3pLrGJElwSaFxvhXXfkiQA3EwdVBHNNess" # noqa
# Retrieve account information asynchronously
account = await tonapi.accounts.get_info(account_id=account_id)
# Print account details
print(f"Account Address (raw): {account.address.to_raw()}")
print(f"Account Address (userfriendly): {account.address.to_userfriendly(is_bounceable=True)}")
print(f"Account Balance (nanoton): {account.balance.to_nano()}")
print(f"Account Balance (amount): {account.balance.to_amount()}")
if __name__ == '__main__':
import asyncio
# Run the asynchronous function
asyncio.run(main())
Synchronous
from pytonapi import Tonapi
def main():
# Create a new Tonapi object with the provided API key
tonapi = Tonapi(api_key="Your API key")
# Specify the account ID
account_id = "EQC-3ilVr-W0Uc3pLrGJElwSaFxvhXXfkiQA3EwdVBHNNess" # noqa
# Retrieve account information
account = tonapi.accounts.get_info(account_id=account_id)
# Print account details
print(f"Account Address (raw): {account.address.to_raw()}")
print(f"Account Address (userfriendly): {account.address.to_userfriendly(is_bounceable=True)}")
print(f"Account Balance (nanoton): {account.balance.to_nano()}")
print(f"Account Balance (amount): {account.balance.to_amount()}")
if __name__ == '__main__':
main()
More
- Additional examples can be found examples folder.
- httpx - A fully featured HTTP client for Python 3, which provides sync and async
- pydantic - Data validation and settings management using Python type hints
- websockets - A library for building WebSocket servers and clients in Python
We welcome your contributions! If you have ideas for improvement or have identified a bug, please create an issue or submit a pull request.
Supported by TON Society, Grants and Bounties program.
TON - EQC-3ilVr-W0Uc3pLrGJElwSaFxvhXXfkiQA3EwdVBHNNess
USDT (TRC-20) - TJjADKFT2i7jqNJAxkgeRm5o9uarcoLUeR
This repository is distributed under the MIT License. Feel free to use, modify, and distribute the code in accordance with the terms of the license.