Skip to main content

Async Python client for the Fragment API. Buy Stars and Premium, top up TON and Ads balances, run giveaways, manage anonymous numbers, and search Fragment listings.

Project description

pyfragment

pyfragment

PyPI Downloads Python Tests License

Async Python client for the Fragment marketplace API. Buy Stars & Premium, run giveaways, top up TON and Ads balances, manage anonymous numbers, and search Fragment listings.

Documentation · Examples · Changelog · Donate TON

Disclaimer: This project is not affiliated with Fragment or Telegram.


Installation

pip install pyfragment
# Latest dev build
pip install git+https://github.com/bohd4nx/pyfragment.git@dev

Quick Start

import asyncio
from pyfragment import FragmentClient


async def main() -> None:
    async with FragmentClient(
        seed="word1 word2 ... word24",
        api_key="YOUR_TONAPI_KEY",
        cookies={
            "stel_ssid": "...",
            "stel_dt": "...",
            "stel_token": "...",
            "stel_ton_token": "...",
        },
    ) as client:
        wallet = await client.get_wallet()
        print(f"TON: {wallet.ton_balance} | USDT: {wallet.usdt_balance}")

        recipient = "https://t.me/username"  # also: @username, username

        stars = await client.purchase_stars(recipient, amount=500, payment_method="usdt_ton")
        print(f"Sent {stars.amount} Stars to {stars.username} | tx: {stars.transaction_id}")

        premium = await client.purchase_premium(recipient, months=6, payment_method="ton")
        print(f"Sent Premium {premium.amount}m to {premium.username} | tx: {premium.transaction_id}")


asyncio.run(main())

Configuration

Parameter Type Default Description
seed str 12- or 24-word TON wallet mnemonic
api_key str Tonapi key from tonconsole.com
cookies dict | str Fragment session cookies
wallet_version str "V5R1" "V4R2" or "V5R1" — also accepts WalletVersion literal
timeout float 30.0 HTTP request timeout in seconds

Credentials

Fragment cookies

Log in to fragment.com and connect your TON wallet.

Automatically (recommended) — reads directly from your browser, no extension needed:

pip install "pyfragment[browser]"
from pyfragment import get_cookies_from_browser

result = get_cookies_from_browser("chrome")  # firefox, edge, brave, ...
# result.cookies  — dict[str, str] ready to pass to FragmentClient
# result.expires  — ISO 8601 expiry of stel_ssid, or None for session cookies

Manually — use Cookie Editor and export: stel_ssid, stel_dt, stel_token, stel_ton_token. Pass as a dict or JSON string.

Refresh cookies when you get authentication errors.

Tonapi key

Generate at tonconsole.com.

Seed phrase

12- or 24-word mnemonic from your TON wallet (Tonkeeper → Settings → Backup). Never share it.


Logging

pyfragment uses the standard logging module under the pyfragment namespace and is silent by default:

import logging

logging.basicConfig(level=logging.INFO)
logging.getLogger("pyfragment").setLevel(logging.DEBUG)  # for detailed request logs

Error Handling

All exceptions inherit from FragmentError:

from pyfragment import (
    ConfigurationError,   # invalid arguments (amount, months, payment_method…)
    UserNotFoundError,    # recipient not found on Fragment
    WalletError,          # insufficient TON or USDT balance
    TransactionError,     # broadcast failed, duplicate seqno, invalid payload
    FragmentAPIError,     # Fragment API returned an error response
    FragmentPageError,    # page fetch or hash extraction failed
    AnonymousNumberError, # number not owned, wrong state, login code issues
    CookieError,          # missing or malformed session cookies
    ParseError,           # failed to decode Fragment payload
    VerificationError,    # on-chain verification step failed
    OperationError,       # generic operation-level failure
    UnexpectedError,      # unexpected API response structure
)

Made with ❤️ by @bohd4nx · Contributing · Security

Star ⭐ if you found it useful

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

pyfragment-2026.3.1.tar.gz (44.9 kB view details)

Uploaded Source

Built Distribution

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

pyfragment-2026.3.1-py3-none-any.whl (39.7 kB view details)

Uploaded Python 3

File details

Details for the file pyfragment-2026.3.1.tar.gz.

File metadata

  • Download URL: pyfragment-2026.3.1.tar.gz
  • Upload date:
  • Size: 44.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyfragment-2026.3.1.tar.gz
Algorithm Hash digest
SHA256 7554822410ff013e4ce66cc83d020bf11f3cbc8a85493e70c4a5386e8d618bf9
MD5 63ff258f3240ddc3c7a3651ae3299064
BLAKE2b-256 422dee62d46a13e686993cf4a557c08dc1de23aeb5286c4c454430422e32ac6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfragment-2026.3.1.tar.gz:

Publisher: publish.yml on bohd4nx/pyfragment

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyfragment-2026.3.1-py3-none-any.whl.

File metadata

  • Download URL: pyfragment-2026.3.1-py3-none-any.whl
  • Upload date:
  • Size: 39.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyfragment-2026.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4c9448f22ef22941883dcfc7c60db76f3b4dd57d55bd2382da1fa2c569fda423
MD5 43d3251e2b9c395c56242ef46935a72f
BLAKE2b-256 e9dc9cbb00d0d7a45015a55a798b3b9adf18dda841a562a42a08c8e4fa2ba793

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfragment-2026.3.1-py3-none-any.whl:

Publisher: publish.yml on bohd4nx/pyfragment

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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