21 октября Telegram включил перенос коллекционных подарков из профиля во встроенный кошелёк. Блокчейн показывает время: первый подарок пришёл на кошелёк Telegram в 07:10 UTC, и с 07:00 до 12:00 UTC подарки ушли в кошельки Telegram 2 624 раза. Всего из профилей в блокчейн за эти пять часов ушло 3 639 подарков. Ещё 195 раз подарок вернулся из кошелька Telegram обратно в профиль. 19 октября в те же часы через кошельки Telegram прошли четыре подарка.
Что включилось
Перенос был готов в клиентах до запуска. 16–17 октября в бетах Telegram для macOS и Android появились методы и строки интерфейса для переноса подарка из профиля в кошелёк и обратно, 18 октября строки переноса для iOS появились на платформе переводов. 20 октября те же методы вошли в схему API Telegram Desktop (слой 232):
payments.withdrawStarGiftпереносит подарок в кошелёк и отвечает просто «да» или «нет», без ссылки на сайт. В запросе есть полеtmp_password— судя по названию, пароль двухэтапной аутентификации, как при выводе звёзд, — и флагkeep_on_profile, по названию оставляющий подарок на виду в профиле;payments.depositStarGiftвозвращает подарок из кошелька в профиль. Получатель задаётся полемpeer, то есть, судя по схеме, им может быть и другой человек, а флагhide_senderскрывает отправителя. Сервер в ответ отдаёт адрес NFT, полезную нагрузку и сумму — по всей видимости, для транзакции, которую затем отправляет сам кошелёк;- в истории кошелька у такой операции свой тип —
walletTransactionPeerTelegramGift. В iOS у него две подписи: перенос из профиля и перенос в профиль.
Раньше вывести подарок в блокчейн можно было только через сайт Fragment и только во внешний кошелёк TON: Telegram выдавал ссылку на вывод (метод getStarGiftWithdrawalUrl в схеме остался). Новый метод ссылки не возвращает, перенос идёт из интерфейса самого Telegram.
Как это видно в блокчейне
Ссылки на сайт в переносе нет, а адрес, с которого подарки уходят в блокчейн, остался прежним. Подарки в блокчейн выпускает адрес, который TonAPI подписывает как Fragment Gift Minter. Это highload-кошелёк, через который и раньше шёл вывод через Fragment. Подарок уходит с него одним из двух способов:
- выпуск — подарок ещё ни разу не был в блокчейне, и минтер разворачивает новый NFT в контракте коллекции (сообщение
telemint_msg_deploy_v2); - перевод — подарок уже был в блокчейне, потом его вернули в Telegram, и всё это время NFT лежал на адресе минтера. Теперь минтер пересылает его обычным
nft_transfer.
Обратный путь тоже идёт через этот адрес: NFT отправляют на минтер с комментарием вида Ref#…, и Telegram зачисляет подарок в профиль. Возвраты из кошелька Telegram устроены так же, как прежние возвраты через Fragment: адрес тот же, формат комментария тот же. Вероятно, этот комментарий и есть полезная нагрузка из ответа depositStarGift, но проверить это по блокчейну нельзя.
Кошелёк Telegram отличается от остальных кодом контракта: у tg-wallet свой хеш кода. По этому хешу получатель каждого подарка разделён на два вида: кошелёк Telegram или любой другой.
Первые пять часов
Время — UTC, 21 октября. «В кошелёк Telegram» — выпуски и переводы, у получателя которых код tg-wallet.
| час | ушло из профилей | из них в кошелёк Telegram | вернулось из кошелька Telegram |
|---|---|---|---|
| 07:00–08:00 | 293 | 194 | 2 |
| 08:00–09:00 | 1 044 | 778 | 30 |
| 09:00–10:00 | 801 | 662 | 56 |
| 10:00–11:00 | 845 | 563 | 48 |
| 11:00–12:00 | 656 | 427 | 59 |
| всего | 3 639 | 2 624 | 195 |
Для сравнения, 19 октября с 07:00 до 12:00 UTC из профилей ушло 772 подарка, и только четыре из них — на адреса, у которых сейчас код кошелька Telegram. До запуска подарок попадал на такой адрес, видимо, обычным выводом через Fragment, где адрес получателя указывается вручную. Возвратов из кошельков Telegram в те часы не было ни одного.
Первый перевод на кошелёк Telegram прошёл в 07:10:31 UTC, первый выпуск — в 07:11:05 (подарок Fresh Socks), первый возврат в профиль — в 07:22:41.
Ещё 451 выпуск и 93 перевода за эти часы ушли на адреса без развёрнутого контракта. Такой адрес может принадлежать и кошельку Telegram, у которого ещё не было ни одной исходящей транзакции, и любому другому, поэтому в таблице они посчитаны только в первой колонке. Код получателя снят 21 октября в 12:02 UTC.
Кто переносит
Подарки получили 1 019 кошельков Telegram. 592 из них получили по одному подарку, а самый крупный — 36 подарков. Возвращали подарки в профиль 126 кошельков.
Чаще всего в кошельки Telegram выпускали Chill Flame (133 раза), Liberty Figure (117) и Vice Cream (115). Все три числа — выпуски: эти экземпляры попали в блокчейн впервые.
Что не видно из блокчейна
Блокчейн показывает только момент, когда минтер отправил подарок. Сколько прошло от нажатия кнопки в профиле до транзакции, по нему не узнать. Не видна и плата за перенос, если она есть: на каждый выпуск минтер сам отправляет в контракт коллекции 0,06 TON, а списывает ли Telegram что-то с владельца подарка, по блокчейну не видно. Перенос в интерфейсе для этой статьи не воспроизводился.




