- 💰 TON Advertisement Topups — Send TON directly to Fragment ad accounts (1–1,000,000,000 TON)
- 👑 Telegram Premium Gifts — Purchase Premium subscriptions for any user (3, 6, or 12 months)
- ⭐ Telegram Stars Purchases — Buy Stars and send them to any Telegram user (50–1,000,000 Stars)
- 🔐 Multi-wallet support — Configurable wallet contract version (V4R2 / V5R1)
git clone https://github.com/bohd4nx/FragmentAPI.git
cd FragmentAPI
pip install -r requirements.txtcp .env.example .env
cp cookies.example.json cookies.jsonEdit .env:
# 24-word TON wallet seed phrase
SEED = word1 word2 word3 ... word24
# API key from @tonapibot on Telegram
API_KEY = your_tonapi_key_here
# Wallet contract version: V4R2 or V5R1 (default: V5R1)
WALLET_VERSION = V5R1Prerequisites: Log in to Telegram on Fragment and connect the TON wallet you'll use for payments.
- Install Cookie Editor extension
- Open fragment.com and make sure you're logged in
- Click the Cookie Editor icon → Export → Header String
- Split the result into the four fields in
cookies.json:
{
"stel_ssid": "...",
"stel_dt": "...",
"stel_token": "...",
"stel_ton_token": "..."
}If you don't have a TON wallet, create one in Tonkeeper (iOS / Android).
Go to Settings → Backup, copy the 24 words and paste them into SEED in .env.
⚠️ Never share your seed phrase with anyone. Store it offline.
- Go to tonconsole.com
- Create an account and log in
- Generate a new API key
- Paste it into
API_KEYin.env
| Version | Use when |
|---|---|
V5R1 |
Default — Tonkeeper / MyTonWallet (wallets created after 2024) |
V4R2 |
Older Tonkeeper wallets |
Not sure? Run this to check which address matches your wallet:
python3 -c "
import asyncio
from tonutils.clients import TonapiClient
from tonutils.contracts.wallet import WalletV4R2, WalletV5R1
from tonutils.types import NetworkGlobalID
from app.core import config
client = TonapiClient(network=NetworkGlobalID.MAINNET, api_key=config.API_KEY)
w4, _, _, _ = WalletV4R2.from_mnemonic(client=client, mnemonic=config.SEED)
w5, _, _, _ = WalletV5R1.from_mnemonic(client=client, mnemonic=config.SEED)
print('V4R2:', w4.address.to_str(True, True))
print('V5R1:', w5.address.to_str(True, True))
"python main.pyimport asyncio
from app.methods import topup_ton, buy_premium, buy_stars
async def main():
# Send 10 TON to @username
result = await topup_ton("@username", 10)
print(result)
# Gift 6 months of Telegram Premium
result = await buy_premium("@username", 6)
print(result)
# Buy 500 Stars for @username
result = await buy_stars("@username", 500)
print(result)
asyncio.run(main())Return format (on success):
{
"success": True,
"data": {
"transaction_id": "<TL-B ExternalMessage ...>",
"username": "@username",
"amount": 10, # or "months" for Premium
"timestamp": 1741234567
}
}Return format (on failure):
{
"success": False,
"error": "Telegram user '@unknown' was not found on Fragment."
}| Operation | Function | Parameters | Limits |
|---|---|---|---|
| TON Topup | topup_ton(username, amount) |
Username, TON amount | 1–1,000,000,000 TON |
| Premium Gift | buy_premium(username, months) |
Username, duration | 3, 6, or 12 months |
| Stars Purchase | buy_stars(username, amount) |
Username, Stars amount | 50–1,000,000 Stars |
Usernames can be passed with or without @.
Made with ❤️ by @bohd4nx
Star ⭐ this repo if you found it useful!