Диспенсер TestNet от Algorand превратился в кран Lora с обязательным входом
Диспенсер тестовой сети Algorand, долгие годы работавший по адресу bank.testnet.algorand.network, теперь обслуживает кран Fund проекта Lora: вход через Auth0, суточные лимиты на аккаунт, возврат средств и API AlgoKit Dispenser под капотом. Конкурирующий кран тестовой сети от AlgoExplorer не работает.
Прежний адрес диспенсера теперь открывает страницу входа
Сколько себя помнят большинство разработчиков на Algorand, первой остановкой после создания свежего кошелька в TestNet — экспериментальной цепочке Algorand, где токены не имеют реальной ценности, а приложения обкатывают перед выходом в mainnet — был bank.testnet.algorand.network1, «диспенсер Algorand», раздающий тестовые ALGO как минимум с 2019 года. Годами на нём висело неизменное объявление: «Выданные Algos не имеют денежной стоимости и должны использоваться только для тестирования приложений». Откройте этот адрес сегодня — и старой формы, где нужно вставить адрес и нажать кнопку, больше нет. Теперь домен отдаёт страницу Fund проекта Lora, браузерного обозревателя из набора инструментов разработчика AlgoKit2, и встречает посетителей другим сообщением: «Чтобы помочь защитить эту сеть, мы вводим суточные лимиты на средства. Войдите, чтобы пополнить свой аккаунт».
Переключение произошло недавно. Индекс Internet Archive показывает, что старая страница диспенсера отвечала нормально ещё 17 января 2026 года, а 7 февраля 2026 года с домена был записан редирект, — значит, переход состоялся в последние полгода. Предупреждение на старой странице выглядело реликтом куда более доверчивой эпохи; новое сообщение возвещает её конец: теперь тестовые ALGO выдаются только после подтверждения личности.
Lora: верстак разработчика, поглотивший кран
Lora (Live On-chain Resource Analyzer) — визуальный слой AlgoKit, набора инструментов для разработчиков от Algorand Foundation, представленного вместе с релизом AlgoKit 3.0 в марте 2025 года. Доступный в браузере по адресу lora.algokit.io3 или из терминала командой algokit explore и полностью открытый на GitHub4, инструмент читает данные цепи напрямую из сервисов нод и indexer, а не из проприетарного бэкенда: замечено, что развёрнутый в TestNet экземпляр обращался к публичному API тестовой сети от Algonode. Он построен вокруг четырёх модулей, каждый из которых отвечает за свою фазу цикла сборки и тестирования:
| Модуль | Концепция | Практическое значение |
|---|---|---|
| Explore | Просмотр блоков, транзакций, аккаунтов, активов и приложений с визуальным представлением транзакций | Проследить, что именно делает группа транзакций, ещё до её отправки |
| App Lab | Развёртывание и вызов смарт-контрактов из загруженной спецификации приложения ARC-4, ARC-32 или ARC-56 | Проверить контракт, не написав ни одного скрипта развёртывания |
| Txn Wizard | Визуальное составление и симуляция групп транзакций | Обойтись без ручной сериализации транзакций и управления порядком в группе |
| Fund | Выдача тестовых ALGO аккаунтам в TestNet и LocalNet | Получить игровые ALGO внутри инструмента, в котором вы и так работаете |
Вкладку Fund теперь и выполняет работу старого диспенсера. В её селекторе сетей есть LocalNet — приватная цепь, работающая целиком на машине самого разработчика, — а также FNet и BetaNet, ещё две сети для разработчиков, где обкатывают изменения протокола; MainNet исключён, и страница сообщает: «Пополнение в этой сети недоступно».
Как теперь устроена выдача
Открыв страницу Fund в TestNet и нажав «Log in», вы попадёте на экран, который обслуживает Auth0, с заголовком «Log in to dispenser-prod to continue to AlgoKit lora» и полями для адреса электронной почты и кода подтверждения. Руководство по пополнению на самом портале разработчика Algorand по-прежнему описывает вход через Google с reCAPTCHA, после чего нужно ввести адрес для получения тестовых ALGO; в продакшен-сборке никакого пути для входа через Google нет, так что на практике разработчик видит именно экран с почтой и кодом. После аутентификации форма принимает адрес получателя и сумму, требует минимум 0.1 ALGO и показывает, сколько ещё осталось из суточного лимита аккаунта.
Кран существует вообще из-за особенности экономики реестра Algorand: чтобы аккаунт был зарегистрирован, на нём должен лежать минимальный баланс, поэтому только что созданный адрес с нулевым балансом бесполезен — он не может оплатить даже комиссию за свою первую транзакцию. Диспенсер и есть тот начальный толчок, который превращает пару ключей в рабочий аккаунт. Работает он так: отправляет платёжную транзакцию на указанный адрес. Процесс можно запустить и в обратную сторону: разработчик, пополнивший счёт с избытком, может вернуть тестовые ALGO на кошелёк диспенсера и вызвать эндпоинт возврата, указав ID этой транзакции, — каждая отправленная в Algorand транзакция помечается уникальным идентификатором, и на его основании процедура возврата доказывает, какой именно выданный платёж возвращают. API, стоящий за всем этим, публичен и задокументирован: POST /fund/{assetID} для выдачи, GET /fund/{assetID}/limit для проверки остатка лимита, POST /refund для возврата неиспользованных средств; лимиты сбрасываются ежедневно в полночь по UTC.
Тот же сервис подключён к AlgoKit CLI как семейство команд algokit dispenser (login, fund, refund, limit), а выданный на 30 дней токен для CI можно сохранить в переменной окружения, чтобы автоматические наборы тестов пополняли себя сами: описанный в документации помощник ensureFundedFromTestNetDispenserApi проверяет баланс аккаунта и добивает его из диспенсера, когда тот опускается ниже порога. Тем, кто вообще не трогает TestNet, пополнение в LocalNet даётся ещё проще: Lora умеет создавать аккаунты и пополнять их напрямую из предварительно наполненного диспенсера, который поставляется вместе с локальной цепью, — логин в диспенсер не нужен вовсе.
Кран контролирует одна организация
Все слои этого стека обслуживает одна и та же структура: Lora живёт в организации algorandfoundation на GitHub, экран входа ссылается на тенант «dispenser-prod», а API диспенсера работает на api.dispenser.algorandfoundation.tools. Algorand Foundation, финансирующий AlgoKit, — это та же Algorand Foundation, что держит тестовые ALGO и решает, кому их давать; добавленный ею логин прогоняет каждого нового разработчика TestNet через собственную систему аккаунтов, прежде чем тот получит токены, не имеющие денежной стоимости.
У этой концентрации есть три конкретные цены. Во-первых, адрес электронной почты теперь собирают как плату за вход в кран, и именно к этой личности привязаны суточные лимиты. Во-вторых, запасного официального крана нет: тестовый диспенсер AlgoExplorer больше не разрешается — его родительский домен исчез, — так что при сбое API диспенсера от Foundation весь путь онбординга в TestNet сужается до одного оператора. В-третьих, хотя веб-интерфейс и логика его вызовов открыты и доступны для изучения в репозитории Lora, сам бэкенд диспенсера — сервис, который фактически подписывает и отправляет ALGO, — опубликован только как контракт API, а не как код, поэтому лимиты и любые их изменения обеспечивает закрытый сервис.
За этим ограждением стоит не одна лишь корысть. Старый диспенсер постоянно выкачивали: в посте на Reddit 2022 года описывалось, как примерно за час удалось собрать 4,300+ тестовых ALGO, а в ветке форума 2022 года жаловались, что диспенсеры выдают лишь по 10 ALGO за запрос — это медленно для того, кому нужно около 1,000 ALGO, чтобы протестировать смарт-контракты. Суточные лимиты на аккаунт, привязанные к личности, — прямой ответ на такие злоупотребления, к тому же остаток лимита сбрасывается каждый день в полночь по UTC, а не накапливается. Цена для разработчиков в том, что у борьбы со злоупотреблениями теперь есть имя, адрес электронной почты и единая точка контроля, — классический компромисс централизованного удобства в сети без разрешений.
Источники
- Algorand dispenser / Lora Fund1
- Lora3
- AlgoKit2
- algorandfoundation/algokit-lora4
- Algorand Developer Portal — Funding an Account5
- Lora Fund testnet6
- Lora Explore mainnet7
- Introducing AlgoKit 3.0: A new era for Algorand developers8
- AlgoKit TestNet Dispenser | Algorand Developer Portal9
- Lora Fund mainnet10
- Lora Overview | Algorand Developer Portal11
- https://web.archive.org/cdx/search/cdx?url=bank.testnet.algorand.network/&output=json&fl=timestamp,statuscode&collapse=t12
- Algorand Faucet 2026 Guide13
- https://web.archive.org/cdx/search/cdx?url=bank.testnet.algorand.network/&output=json&fl=timestamp,statuscode,redirect&c14
- GitHub - algorand/go-algorand-doc: Documentation for Algorand's Go implementation15
- TestNet Dispenser Client | Algorand Developer Portal16
- January 2026 Algo Insights Report17
Источники
- 1bank.testnet.algorand.network bank.testnet.algorand.network↩
- 2AlgoKit algorand.co↩
- 3lora.algokit.io lora.algokit.io↩
- 4GitHub github.com↩
- 5Algorand Developer Portal — Funding an Account dev.algorand.co↩
- 6Lora Fund testnet lora.algokit.io↩
- 7Lora Explore mainnet lora.algokit.io↩
- 8Introducing AlgoKit 3.0: A new era for Algorand developers algorand.co↩
- 9AlgoKit TestNet Dispenser | Algorand Developer Portal dev.algorand.co↩
- 10Lora Fund mainnet lora.algokit.io↩
- 11Lora Overview | Algorand Developer Portal dev.algorand.co↩
- 12web.archive.org/cdx/search/cdx web.archive.org↩
- 13Algorand Faucet 2026 Guide bitrue.com↩
- 14web.archive.org/cdx/search/cdx web.archive.org↩
- 15GitHub - algorand/go-algorand-doc: Documentation for Algorand's Go implementation github.com↩
- 16TestNet Dispenser Client | Algorand Developer Portal dev.algorand.co↩
- 17January 2026 Algo Insights Report algorand.co↩