Версия 0.1.3 · Команды установки используют точные версии.
Go SDK для Telegram Stars и Premium
Установка независимого SDK Fragment Donor для Go: username, подарки Stars/Premium и rate limit.
При покупке mnemonic кошелька и сессия/cookie Fragment передаются оператору API.
Runtime: Go 1.23+. Устанавливайте пакет из реестра только после статуса PUBLISHED; до этого используйте сборку каталога go из public source.
Клиент предлагает username, покупку Stars, подарок Premium и баланс с naming, принятым в Go. Запросы используют form-urlencoded. Баланс сохраняется decimal-строкой, дополнительные поля не удаляются.
Настройте timeout и данные кошелька на backend. Повтор чтения включается явно и ограничен; покупки никогда не повторяются автоматически. Точный constructor и типы ошибок приведены в README пакета.
Установка
go get github.com/usnuz/fragment-donor-sdk/go@v0.1.3Пример
package main
import (
"context"
"errors"
"os"
"time"
donor "github.com/usnuz/fragment-donor-sdk/go"
)
func main() {
client, err := donor.NewClient(donor.Config{
BaseURL: donor.DefaultBaseURL,
Timeout: 30 * time.Second,
ConnectTimeout: 5 * time.Second,
Credentials: donor.Credentials{
Mnemonic: os.Getenv("FRAGMENT_MNEMONIC"),
Cookie: os.Getenv("FRAGMENT_COOKIE"),
WalletVersion: "auto", // auto, v5r1, v4r2, v3r2
ProviderKey: os.Getenv("TONCONSOLE_API_KEY"), // optional provider key
},
})
if err != nil { return }
ctx := context.Background()
user, err := client.GetUserInfo(ctx, "durov")
_ = user
if err != nil { return }
balance, err := client.WalletBalance(ctx)
_ = balance // TON and USDTTON are exact decimal strings.
if err != nil { return }
// Real-funds operations require both opt-in and one selected purchase.
if os.Getenv("FRAGMENT_ALLOW_PURCHASES") != "yes" { return }
switch os.Getenv("FRAGMENT_PURCHASE_KIND") {
case "stars":
_, err = client.BuyStars(ctx, "durov", 50, "usdt_ton")
case "premium":
_, err = client.BuyPremium(ctx, "durov", 3, "ton")
default:
return
}
var apiErr *donor.Error
if errors.As(err, &apiErr) {
if apiErr.OutcomeUnknown {
_ = apiErr.Details["tx_hash"] // reconcile manually; do not repeat.
}
_ = apiErr.RetryAfter // communicate wait, never auto-replay purchase.
}
}Читайте дальше
Telegram Stars API: 429, Retry-After и flood wait · Защита данных кошелька при интеграции API · Вопросы об API и SDK Fragment Donor