Skip to main content

xgift

PyPI version Python Versions License: MIT

xgift — это простая и асинхронная Python библиотека для взаимодействия с API платформы xGift. Она позволяет легко получать информацию о коллекционных NFT-гифтах, их ценах, элементах и многом другом.

Библиотека предоставляет как высокоуровневый интерфейс (Gift) для удобного доступа к данным, так и низкоуровневый клиент (GiftRaw) для прямых запросов к API.


Особенности

  • Асинхронность: Полностью асинхронная работа на базе asyncio и curl_cffi.
  • Простота: Интуитивно понятный API для быстрого старта.
  • Гибкость: Поддержка одиночных и пакетных запросов к нескольким гифтам/коллекциям одновременно.
  • Низкоуровневый доступ: Возможность использовать "сырые" ответы от API через класс GiftRaw.
  • Эмуляция браузера: Использование curl_cffi для имитации реального браузера и обхода простых блокировок.
  • Утилиты: Встроенные функции для получения курса TON, списка NFT и Lottie-анимаций.

Установка

Установить библиотеку можно с помощью pip:

pip install xgift

Быстрый старт

Получение минимальной цены (Floor Price) гифта

import asyncio
from xgift import Gift

async def main():
    # 1. Создаем клиент
    client = Gift()

    # 2. Получаем цену для одного гифта (по его названию)
    price = await client.floorPrice("PlushPepe")
    print(f"PlushPepe floor price: {price} TON")

    # 3. Всегда закрываем клиент после использования
    await client.close()

asyncio.run(main())

Получение информации для нескольких гифтов

import asyncio
from xgift import Gift

async def main():
    client = Gift()

    gifts = ["PlushPepe", "AstralShard", "FreshSocks"]
    prices = await client.floorPrice(gifts)

    for gift, price in zip(gifts, prices):
        print(f"{gift}: {price} TON")

    await client.close()

asyncio.run(main())

Подробное руководство

1. Класс Gift (Высокоуровневый)

Это основной класс для взаимодействия с API. Он использует GiftRaw внутри себя и предоставляет удобные методы.

Инициализация

from xgift import Gift

client = Gift(
    proxy="http://user:pass@host:port",  # Опционально: прокси-сервер
    batch_size=5,                         # Опционально: кол-во запросов в пачке (для списков)
    delay=0.5,                             # Опционально: задержка между пачками (в секундах)
    impersonate="chrome_120"               # Опционально: браузер для эмуляции
)
  • proxy: Адрес прокси-сервера (поддерживается http/https).
  • batch_size: При передаче списка названий, запросы будут выполняться пачками по batch_size штук для оптимизации.
  • delay: Задержка между отправкой пачек.
  • impersonate: Указывает, какой браузер имитировать. По умолчанию safari_ios. Список поддерживаемых значений можно найти в документации curl_cffi.

Основные методы Gift

  • async floorPrice(name: Union[str, List[str]])

    • Возвращает текущую минимальную цену (floorPrice) для одного или нескольких названий коллекций.
    • Если передан str, возвращает float или False в случае ошибки.
    • Если передан List[str], возвращает List[float | bool].
    • Пример: await client.floorPrice("PlushPepe")
  • async simpleEstimation(slug: Union[str, List[str]])

    • Возвращает упрощенную оценочную цену (simpleEstimation.price) для одного или нескольких конкретных гифтов (slug).
    • slug — это уникальный идентификатор гифта, например "plushpepe-1".
    • Пример: await client.simpleEstimation("plushpepe-1")
  • async estimatedPrice(slug: Union[str, List[str]], asset: Literal["Ton", "Usd"]="Ton")

    • Возвращает оценочную цену (estimatedPriceTon или estimatedPriceUsd) для гифта(ов).
    • Пример: await client.estimatedPrice("plushpepe-1", asset="Usd")
  • async models_floor(name: Union[str, List[str]])

    • Возвращает словарь, где ключи — это названия моделей (модификаторов) гифта из коллекции name, а значения — их минимальные цены (floorPriceTon).
    • Пример: await client.models_floor("PlushPepe") вернет {'Amalgam': 9999.0, 'Aqua Plush': 9999.0, 'Barcelona': 10500.0, ...}
  • async backdrops_floor(name: Union[str, List[str]]) (Аналогично models_floor, но для фонов)

  • async symbols_floor(name: Union[str, List[str]]) (Аналогично models_floor, но для символов)

  • async getFloorGraph(slug: Union[str, List[str]])

    • Возвращает данные для построения графика цены (floor) для гифта(ов). Обычно это список исторических значений.
  • async isMonochrome(slug: Union[str, List[str]])

    • Проверяет, является ли гифт монохромным.
  • async close()

    • Важно! Этот метод закрывает HTTP-сессию. Всегда вызывайте его после завершения работы с клиентом, чтобы освободить ресурсы.

2. Класс GiftRaw (Низкоуровневый)

Предоставляет "сырые" методы, которые напрямую соответствуют эндпоинтам API xGift и возвращают необработанные dict с ответом от сервера.

Методы GiftRaw

  • async GiftInfo(slug: Union[str, List[str]])

    • Получает детальную информацию о конкретном гифте по его slug.
    • Эндпоинт: https://app-api.xgift.tg/gifts/{slug}
  • async CollectionInfo(name: Union[str, List[str]])

    • Получает информацию о коллекции по её названию (например, "PlushPepe").
    • Эндпоинт: https://app-api.xgift.tg/collections/{name}
  • async CollectionGifts(name: Union[str, List[str]])

    • Получает список всех гифтов в коллекции, включая их модели, бэкдропы и символы.
    • Эндпоинт: https://app-api.xgift.tg/gifts/filters/{name}
  • async close()

    • Закрывает HTTP-сессию.
import asyncio
from xgift import GiftRaw

async def main():
    raw_client = GiftRaw()
    # Получаем "сырые" данные
    data = await raw_client.GiftInfo("plushpepe-1")
    print(data)  # Выведет полный JSON-ответ от API
    await raw_client.close()

asyncio.run(main())

3. Утилиты (xgift.utils)

Набор полезных функций для быстрого доступа к дополнительным данным.

  • async tonRate()

    • Возвращает текущий курс TON к фиатным валютам (обычно USD).
    • Пример: rate = await tonRate()
  • async nfts(type: Literal["names", "ids", "all"]="all")

    • Возвращает список всех доступных NFT-гифтов.
    • type="names" — вернет список названий.
    • type="ids" — вернет список ID.
    • type="all" — вернет словарь {name: id}.
    • Пример: all_nfts_dict = await nfts()
  • async lottie(slug: str)

    • Возвращает JSON с Lottie-анимацией для указанного гифта.
    • Пример: anim = await lottie("plushpepe-1")
  • async emoji(collection_id="all")

    • Загружает данные из локального файла gift_data.json, который содержит маппинг ID коллекций, названий и их моделей. Полезно для получения официальных emojiID телеграм подарков.
    • Пример: data = await emoji("6005564615793050414") (Вернет данные для коллекции Instant Ramen)
  • async graph(collection_id)

    • Возвращает URL до PNG-изображения графика цены для указанной коллекции.
    • Пример: graph_url = await graph("6005564615793050414")

Лицензия

Этот проект распространяется под лицензией MIT. Подробности смотрите в файле LICENSE.

Metadata

Release files for xgift 0.3.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xgift 0.3.8
File Size Uploaded
xgift-0.3.8.tar.gz 131.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for xgift 0.3.8
File Interpreter ABI Platform
xgift-0.3.8-py3-none-any.whl Python 3 none any Details

Total release size: 261.6 kB

Release files / xgift-0.3.8.tar.gz

Download URL xgift-0.3.8.tar.gz
Size 131.9 kB
Tags Source
SHA-256 checksum
How to use checksums
52c56e38a766d337b0b22ac1b6c47583d48f823b348466d4a98b197d9e5f9caa
BLAKE2b-256 checksum
How to use checksums
8ec43afc96f69a81a0f9315f70206138e2af3cd28c43a95c3d3987807a6630a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 19, 2026.

Transparency log

Release files / xgift-0.3.8-py3-none-any.whl

Download URL xgift-0.3.8-py3-none-any.whl
Size 129.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
031b38d344ce63a2a57ecfc08b3b99726b48b707e91920d335393f5d07f564b4
BLAKE2b-256 checksum
How to use checksums
d0a0c9fb1729412572563a978a7dabf0ef41272a223d682a21f31392beb891b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 19, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.8 This release

2 release files

0.3.4

1 release file

0.3.3

1 release file

0.3.2

1 release file

0.3.0

1 release file

0.2.7

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page