Виджет обмена Pera встраивает торговый блок в другие приложения Algorand
Pera Wallet предлагает маршрутизатор, лежащий в основе собственных обменов, в виде встраиваемого виджета и API: посетитель подключает кошелёк, видит курс и подписывает, не покидая приложение. Демо-сайт показывает четыре способа подключения, а котировки можно запрашивать без хранения средств.

Торговый блок, который остаётся внутри приложения
Pera Swap Widget — это торговый блок, который приложение Algorand может разместить на своих экранах: посетитель подключает кошелёк, выбирает два актива, видит курс и подписывает, не покидая страницу. За ним стоит P.E.R.A., маршрутизатор, который Pera Wallet1 использует для обменов в собственном приложении; теперь он предлагается сторонним разработчикам в виде пакета, который можно встроить целиком или вызывать через API, рисуя собственный интерфейс.
Два способа подключения. Быстрее всего — iframe, указывающий на размещённый виджет Pera2, с настройкой через URL: сеть, тема, актив на входе (ALGO, если не указано иное) и на выходе (USDC по умолчанию). Более полный путь — построить собственный экран обмена на swap API; README3 пакета предлагает на выбор встроить виджет «в iframe, при необходимости подписывая транзакции своим кошельком4» или создать «свой собственный интерфейс обмена поверх Pera Swap API (котировки, транзакции, активы)».
Подписание — это та часть, которая определяет, где находится кошелёк. При включённом родительском подписании виджет не открывает собственного подключения к кошельку, а просит подписать родительскую страницу; в README сказано, что Pera API уже подписал транзакции, не относящиеся к счёту пользователя, поэтому родительская страница возвращает только свои подписи.
Маршрутизация в такой схеме становится функцией, которую вызывает приложение, а не местом, куда заходит пользователь. Приложение не становится биржей и никогда не хранит торгуемый актив; ему нужно лишь быть тем местом, где пользователь уже находится. Эта схема повторяется везде, где on-chain-сервис в основном занимается маршрутизацией, и делает заказчиком разработчика на другой стороне.
Как попробовать и что это требует от пользователя
Разработчики начинают с демо-сайта5, который показывает четыре варианта подключения: сгенерировать URL виджета, собрать iframe в коде, вызвать swap API напрямую или передать подписание родительской странице. Котировки можно запрашивать, ничего не имея на счету, но для подготовки сделки нужен счёт с средствами: запрос транзакций для адреса без ALGO вернул «Algo balance is insufficient» и ничего не создал.
Обычный пользователь ничего не устанавливает. Он встречает блок внутри того приложения, которое его встроило, подключает кошелёк и торгует. Если покупаемый токен нов для его счёта, кошелёк в рамках обмена предложит дать согласие на его получение.
Сколько стоит обмен и что говорит строка комиссии
Справочный центр6 Pera сообщает, что кошелёк взимает комиссию до 17% за обмены, рассчитываемую от стоимости актива «from» и отображаемую как Pera Fee на экране котировки до подписания. Там же указано, что комиссия самой площадки обычно составляет 0,258–0,3% и, по утверждению страницы, идёт поставщикам ликвидности; эта ставка — соглашение пула, а не что-то, устанавливаемое сетью, и она различается по площадкам. Фиксированный минимум Algorand — 0,001 ALGO за транзакцию; страница Pera оценивает сетевую комиссию менее чем в $0,019 и отмечает, что она взимается независимо от успеха или неудачи обмена, а один обмен может состоять из нескольких транзакций в группе.
То, в каком активе выражена строка комиссии, меняет её смысл. Собственный экран проверки виджета печатает Pera Fee с единицей ALGO, деля исходную сумму на миллион.
Панель демо обозначает то же число иначе. Её котировки на 5 ноября показывали Pera Fee 0,01 при обмене 1 ALGO на 0,097522 USDC и Pera Fee 1,00 при обмене 100 ALGO на 9,748322 USDC, обе с меткой USDC. Пример кода, лежащий в основе этой панели, форматирует комиссию с десятичными знаками и именем единицы выходного актива — отсюда и метка USDC. Число в обоих случаях составляет 1% от того, что пользователь внёс: 0,01 от 1 ALGO, 1,00 от 100 ALGO, — тогда как в прочтении как USDC это было бы около десятой части сделки, что выходит за описанный на странице Pera предел в 1%. Таким образом, метка ALGO в виджете соответствует опубликованной комиссии, а метка USDC в демо выглядит опечаткой форматирования в примере; что напечатает интерфейс, собранный вручную, решает тот, кто его строит.
Площадки, стоящие за курсом
Справочный центр10 Pera называет четыре платформы, стоящие за агрегатором: Vestige, Tinyman, Folks Finance и Deflex (TxnLabs). Поставляемый пакет определяет три имени провайдеров, которые может запросить вызывающая сторона, — tinyman, tinyman-swap-router и vestige-v4 — и не содержит значения для Folks Finance или Deflex. Разработчик, читающий описание продукта, ожидает четыре площадки; код принимает три.
Кто это строит и как идут дела
Pera Wallet — продукт Pera Wallet, Lda, описывающий себя как некастодиальный и self-hosted: ключи и активы остаются на устройстве пользователя, и компания заявляет, что не хранит и не восстанавливает фразы восстановления. Он начинался как официальный Algorand Wallet, был переименован в феврале 2022 года, в августе выпустил полную переработку мобильных приложений 7.011 (эта история), а в январе заменил прежний on-ramp на нативный для кошелька поток пополнения — Pera Fund.
API для разработчиков был анонсирован в блоге Pera12 9 октября 2025 года, где P.E.R.A. описан как Pera Ecosystem Routing Aggregator, и сопровождался предложением npm-пакета и демо-приложения. Пакет13 присутствует на npm с 14 августа 2025 года; 1.0.014-beta.5, текущая версия, была опубликована 28 октября 2026 года — примерно через год после предыдущей. За тридцать дней до 4 ноября его скачали 466 раз15, а репозиторий3 показывает четыре звезды и последний push 2 ноября. Счётчик загрузок учитывает автоматические установки и зеркала наравне с людьми, поэтому ни одна из цифр не говорит о том, сколько приложений несут этот блок.
В посте о запуске также обещано интеграторам «Стабильный доход от комиссий — зарабатывайте на комиссиях за обмены в USDC или любом предпочитаемом стабильном активе16». Как этот доход устанавливается, делится или собирается, не сказано ни в одном из материалов, опубликованных вокруг пакета: единственный рычаг в клиенте — необязательный URL реферера, документированный для атрибуции. Возможно, это устроено на стороне сервера или через поле, которого нет в README.
Альтернатива — собственный Swap Widget Tinyman17, документированный и поддерживаемый основной командой Tinyman, который направляет обмены через Tinyman Swap Router — маршрутизатор одной площадки, а не поход по нескольким.
Что может пойти не так
Условия Pera перекладывают саму сделку на другую сторону: в них указано, что Pera «не управляет обменами, не контролирует их, не исполняет и не осуществляет расчёты по ним18», а ценообразование, исполнение и маршрутизация исходят исключительно от стороннего провайдера, поэтому неудачное исполнение — дело между пользователем и площадкой, которая его исполнила. Строка комиссии — отдельно: собственный сбор виджета, который справочный центр Pera оценивает вплоть до 119% на финансирование разработки и поддержки кошелька, взимается сверх доли пула.
В условиях также названы США, Канада, Китай и Израиль среди мест, где торговля ALGO может быть запрещена, и оставлено право блокировать доступ по территории. Поставлять виджет пользователям в этих странах — решение, которое разработчик принимает, держа эту страницу открытой.
Подтверждённый обмен исполнен. Если он исполняется по худшему курсу, чем показывал экран, в пределах проскальзывания, допущенного пользователем, исполнение остаётся в силе. Неудачный обмен всё равно стоит комиссий отправленных для него транзакций — обмен может состоять из нескольких в одной группе, — а активы остаются в кошельке.
Релиз 1.0.0-beta.5 закрыл дыру в том, как встроенный виджет общается с окружающей страницей. До него, как сказано в списке изменений, любая страница или фрейм могли отправить запрос на подписание, вызвать запрос кошелька и получить подписанные транзакции. Теперь контроллер принимает сообщения только от origin виджета Pera и игнорирует остальные с однократным предупреждением в консоли, а тот, кто размещает виджет в другом месте, должен явно указать этот origin. Старые версии остаются на npm, поэтому версия, которую закрепляет разработчик, определяет, есть ли эта защита.
Другая ловушка — сеть по умолчанию, и умолчаний два. Сама страница виджета по умолчанию использует testnet, поэтому iframe, написанный вручную без параметра сети, помещает посетителей в цепочку, где монеты ничего не стоят. Хелперы пакета теперь всегда передают сеть и по умолчанию используют mainnet, поэтому виджет, собранный через них, открывается в mainnet, если не указано иное.
И собственный справочный центр20 Pera ничего из этого не упоминает: в нём перечислены Pera Connect, API для данных об активах, спецификации разбора NFT и URL-схемы приложений, но нет ни записи о swap API, ни о виджете. Обнаружение идёт через README, один пост в блоге и демо.
Итак, разработчик решает вопрос зависимости: бета-версия, выходящая примерно раз в год и ломающаяся при изменениях, и список маршрутизации в коде короче, чем на странице. Для читателя, который встречает блок внутри чужого приложения, важно то, что на экране до подписания: провайдер, минимальная сумма к получению, влияние на цену и строка комиссии с проверенной единицей.
Источники
- Swap (registry.npmjs.org)13
- Breaking Changes3
- Pera Wallet – How to Swap Tokens in Pera Wallet10
- Pera Wallet – Understanding Swap Fees and Slippage in Pera6
- Introducing the P.E.R.A. API: Seamless Swap Integration | by Joseph Cecala | Pera Wallet12
- Pera Swap Widget Examples5
- Swap Widget | Tinyman Docs17
- Pera Wallet – Terms of Service21
- Pera swap (github.com)3
- Swap (api.npmjs.org)15
9 цифр в этом материале проверено.Все проверки
Источники
- 1Pera Wallet perawallet.app↩
- 2размещённый виджет Pera swap-widget.perawallet.app↩
- 3README github.com↩
- 5демо-сайта perawallet.github.io↩
- 6Справочный центр support.perawallet.app↩
- 10Справочный центр support.perawallet.app↩
- 12анонсирован в блоге Pera blog.perawallet.app↩
- 13Пакет registry.npmjs.org↩
- 15скачали 466 раз api.npmjs.org↩
- 17собственный Swap Widget Tinyman docs.tinyman.org↩
- 20справочный центр docs.perawallet.app↩
- 21Pera Wallet – Terms of Service perawallet.app↩