Pera 兑换小部件让其他 Algorand 应用内置可用的交易框
Pera 钱包将其自身兑换功能背后的路由引擎以可嵌入小部件和 API 的形式开放,访客无需离开宿主应用即可连接钱包、查看汇率并签名。一个演示站点展示了四种接入方式,且无需持有资金即可获取报价。

一个留在应用内的交易框
Pera 兑换小部件是一个交易框,Algorand 应用可以将其嵌入自己的界面:访客连接钱包、选择两种资产、查看汇率并签名,全程不离开页面。其背后是 P.E.R.A.,即 Pera 钱包1 在其自身应用中用于兑换的路由引擎,现在以软件包形式向外部开发者开放,开发者可以整体嵌入,也可以将其作为 API 调用并自行绘制界面。
有两种接入方式。更快捷的是使用指向 Pera 托管小部件2 的 iframe,通过 URL 进行配置:网络、主题、输入资产(默认为 ALGO)和输出资产(默认为 USDC)。更完整的方式是在兑换 API 上构建自己的兑换界面;该软件包的 README3 将选择描述为:将小部件嵌入“iframe 中,并可选使用自己的钱包签署交易4”,或者在“Pera 兑换 API(报价、交易、资产)之上构建自己的兑换界面”。
签名是决定钱包位于何处的关键。开启父级签名后,小部件不会自行打开钱包连接,而是请求宿主页面进行签名;README 称,Pera API 已对非用户账户发起的交易完成签名,因此宿主页面只需返回自己的签名。
在这种安排下,路由变成了应用调用的函数,而非用户访问的场所。应用永远不会变成交易所,也永远不会持有被交易的资产;它只需要是用户已经所在的地方。只要链上服务主要是路由,这种模式就会重复出现,并让另一侧的构建者成为客户。
试用它,以及对用户的要求
开发者从 演示站点5 开始,该站点演示了四种接入方式:生成小部件 URL、在代码中构建 iframe、直接调用兑换 API,或将签名交给父页面。无需持有任何资产即可请求报价,但准备交易需要已注资的账户:针对没有 ALGO 的地址请求交易会返回“Algo 余额不足”,且不会产生任何结果。
普通用户无需安装任何东西。他们在嵌入该小部件的任何应用中遇到这个框,连接钱包并进行交易。如果他们购买的代币对其账户来说是新的,钱包会在兑换过程中提示他们选择加入。
兑换的成本,以及手续费行的含义
Pera 的 帮助中心6 称,钱包对兑换收取最高 17% 的手续费,按“卖出”资产的价值计算,并在签名前的报价屏幕上显示为 Pera 手续费。同一页面称,交易场所自身的资金池费用通常为 0.258–0.3%,并表示该费用归流动性提供者所有;这一费率是资金池的惯例,而非网络设定的任何标准,且因场所而异。Algorand 的固定最低费用为每笔交易 0.001 ALGO;Pera 的页面称网络费用低于 0.019 美元,并指出无论兑换成功与否都会收取,且一次兑换可能是一组中的多笔交易。
手续费行以哪种资产计价,会改变其含义。小部件自身的审核屏幕以 ALGO 为单位打印 Pera 手续费,将原始金额除以一百万得出。
演示站点的面板对同一数字的标注不同。其 11 月 5 日的报价显示,1 ALGO 兑换返回 0.097522 USDC 时 Pera 手续费为 0.01,100 ALGO 兑换返回 9.748322 USDC 时 Pera 手续费为 1.00,两者均标注为 USDC。该面板背后的示例代码使用输出资产的小数位数和单位名称来格式化手续费,USDC 标签即由此而来。无论哪种情况,该数字都是用户投入金额的 1%——1 ALGO 的 0.01,100 ALGO 的 1.00——而若按 USDC 解读,则约为交易额的十分之一,超出了 Pera 页面所述的最高 1%。因此,小部件的 ALGO 标签与公布的手续费相符,而演示的 USDC 标签应视为示例中的格式疏漏;手工构建的界面打印什么,取决于构建者。
汇率背后的交易场所
Pera 的 帮助中心10 列出了聚合器背后的四个平台:Vestige、Tinyman、Folks Finance 和 Deflex (TxnLabs)。已发布的软件包定义了调用者可请求的三个提供者名称——tinyman、tinyman-swap-router 和 vestige-v4——而没有 Folks Finance 或 Deflex 的值。阅读产品描述的构建者预期有四个场所;代码只接受三个。
谁构建了它,进展如何
Pera 钱包是 Pera Wallet, Lda 的产品,自称非托管且自托管:密钥和资产留在用户设备上,公司表示不存储也不恢复助记词。它最初是官方 Algorand 钱包,于 2022 年 2 月更名,8 月发布了移动应用的完整 7.011 重构版本(相关报道),并于 1 月用钱包原生的入金流程 Pera Fund 取代了旧的入金通道。
开发者 API 于 2025 年 10 月 9 日在 Pera 的博客上宣布12,将 P.E.R.A. 描述为 Pera 生态系统路由聚合器,并提供 npm 包和演示应用。该 软件包13 自 2025 年 8 月 14 日起已在 npm 上;当前版本 1.0.014-beta.5 于 2026 年 10 月 28 日发布,距上一版本约一年。截至 11 月 4 日的三十天内,它被 下载 466 次15,代码仓库3 显示四颗星,最后推送于 11 月 2 日。下载量既统计自动化安装和镜像,也统计真实用户,因此这两个数字都不能衡量有多少应用集成了该交易框。
发布帖还向集成者承诺“稳定的手续费收入——以 USDC 或任何首选稳定资产赚取兑换手续费16”。该收入如何设定、分配或收取,在软件包周围发布的任何材料中均未出现:客户端对此唯一的控制是一个可选的推荐人 URL,文档中说明用于归因。它可能在服务器端安排,或通过 README 未展示的字段实现。
另一种选择是 Tinyman 自己的兑换小部件17,由 Tinyman 核心团队记录和维护,通过 Tinyman 兑换路由器路由兑换——即一个场所的路由器,而非跨多个场所的比价之旅。
可能出现的问题
Pera 的条款将交易本身置于他人处:条款声明 Pera“不运营、控制、执行或结算兑换交易18”,定价、执行和路由完全来自第三方提供商,因此成交出错是用户与成交场所之间的事。手续费行是分开的:小部件自身的收费,Pera 帮助中心称最高 119% 用于资助钱包的开发和维护,在资金池抽成之上额外收取。
条款还将美国、加拿大、中国和以色列列为可能禁止交易 ALGO 的地方,并保留按地区阻止访问的权利。向这些地区的用户提供小部件,是构建者需要对照该页面做出的决定。
已确认的兑换即告结算。如果成交汇率比屏幕显示的更差,但在用户允许的 滑点 范围内,成交仍然有效。失败的兑换仍需支付为其提交的交易手续费——一次兑换可能是一组中的多笔交易——资产仍留在钱包中。
1.0.0-beta.5 版本堵住了嵌入小部件与周围页面通信方式中的一个漏洞。更新日志称,在此之前,任何页面或框架都可以发送签名请求、触发钱包提示并接收已签名的交易。现在控制器只接受来自 Pera 小部件来源的消息,并忽略其余消息,同时给出一次性控制台警告,任何在其他地方托管小部件的人都必须明确指定该来源。旧版本仍留在 npm 上,因此构建者固定的版本决定了保护是否存在。
默认网络是另一个陷阱,而且有两个默认值。小部件页面本身默认为 测试网,因此手写 iframe 若省略网络参数,会将访客置于代币毫无价值的链上。软件包的辅助函数现在始终发送网络参数,并默认使用 主网,因此通过它们构建的小部件除非另有说明,否则在主网上打开。
而 Pera 自己的 文档中心20 对此只字未提:它列出了 Pera Connect、资产数据 API、NFT 解析规范和应用程序 URL 方案,却没有兑换 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 钱包 perawallet.app↩
- 2Pera 托管小部件 swap-widget.perawallet.app↩
- 3README github.com↩
- 5演示站点 perawallet.github.io↩
- 6帮助中心 support.perawallet.app↩
- 10帮助中心 support.perawallet.app↩
- 12Pera 的博客上宣布 blog.perawallet.app↩
- 13软件包 registry.npmjs.org↩
- 15下载 466 次 api.npmjs.org↩
- 17Tinyman 自己的兑换小部件 docs.tinyman.org↩
- 20文档中心 docs.perawallet.app↩
- 21Pera Wallet – Terms of Service perawallet.app↩