In the rapidly evolving landscape of blockchain technologies, the TON (The Open Network) Blockchain stands out for its unique features and capabilities. This technical article delves into the PyTonConnect Python SDK, a pivotal tool designed for seamless integration with TON wallets via the TonConnect protocol. PyTonConnect serves as a Python analogue of the @tonconnect/sdk
library, offering developers a streamlined approach to connect their applications to TON wallets.
Installation
To get started with PyTonConnect, install the Python 3 package using the following command:
pip3 install pytonconnect
Setting Up the Application Manifest
A crucial initial step involves creating a tonconnect-manifest.json
file, which contains metadata for wallet interaction. This JSON file must include essential fields such as url
, name
, and iconUrl
, with optional fields for terms of use and privacy policy URLs. Ensuring the manifest’s availability via its URL is vital for successful integration.
Establishing and Restoring Connections
PyTonConnect allows for the initialization of a connector and the restoration of wallet connections if previously established. The following example demonstrates initializing the connector and calling restore_connection
to check for an existing wallet connection:
import asyncio
from pytonconnect import TonConnect
async def main():
connector = TonConnect(manifest_url='https://example.com/tonconnect-manifest.json')
is_connected = await connector.restore_connection()
print('is_connected:', is_connected)
if __name__ == '__main__':
asyncio.get_event_loop().run_until_complete(main())
Wallet Interaction
Developers can fetch a list of supported wallets and subscribe to connection status changes to update the application UI accordingly. Initializing wallet connections through universal links facilitates user interaction, allowing for the generation of QR codes or deep links for wallet approval.
Transaction Handling
Sending transactions is a straightforward process with PyTonConnect. By defining a transaction object and invoking send_transaction
, developers can execute transactions on the TON blockchain. The SDK provides mechanisms for handling user rejections and other exceptions to ensure a smooth transaction flow.
Conclusion
PyTonConnect offers a robust and efficient pathway for integrating Python applications with TON wallets, fostering enhanced interaction with the TON blockchain. By leveraging this SDK, developers can significantly streamline the development process, from setting up application manifests to handling transactions, thereby unlocking new possibilities for blockchain applications.