在支持 Stellar 的钱包里点“通过锚点充值”,接下来出现的往往不是链上转账界面,而是一个网页表单:要你选金额、有时还要补身份材料。这不是某个钱包的私有设计,而是 Stellar 生态的标准协议 SEP-24。协议开宗明义:它定义一套标准流程,让钱包或其他客户端不离开界面就能完成在锚点的存入、提取、费率沟通、KYC 处理与状态查询。它是 SEP-6 的后继,只保留交互式流程,并清理了旧协议里容易混淆的部分。
钱包怎么找到锚点的服务器
SEP-24 的第一步发生在链下:每个参与钱包交互的锚点必须在自己的 stellar.toml 文件里公布地址,钱包由此找到对应的转账服务器。协议同时要求所有端点使用 HTTPS,钱包与锚点都应拒绝不安全 HTTP 端点;跨域方面,所有响应必须带 Access-Control-Allow-Origin 头,且支持 OPTIONS 预检,浏览器系钱包才敢调用。理解这一层,你就能回答“钱包凭什么连这个服务器”——凭域名的 TLS 与 stellar.toml 的公开声明,这两点此前在 SEP-10 登录环节已经讲过:签一笔永不上链的交易:Stellar SEP-10 登录的挑战与回话逐项拆。

每一步都要带上的身份凭证
钱包要查你的交易记录或发起存取款,必须先通过 SEP-10 或 SEP-45 的网页认证拿到 JWT 令牌,之后除 GET /info 之外的每个端点都要把它放进请求头的 Authorization: Bearer 字段发送。没有令牌,服务器不会返回你的数据。这也解释了为什么第一次使用某个锚点时钱包会先弹一次“登录签名”——那笔永不上链的签名就是在换这个 JWT。
端点与状态机
核心端点包括:POST /transactions/deposit/interactive 发起存入、POST /transactions/withdraw/interactive 发起提取、GET /info 查询资产与服务能力、GET /transactions 与 GET /transaction 查询历史;旧的 GET /fee 已标记废弃,复杂费率改用 SEP-38 的报价接口。以存入为例:在你通过锚点的交互网页补齐信息之前,这笔交易在服务器侧一直保持 incomplete 状态;网页关闭后,状态应离开 incomplete,进入协议规定的几档之一——需要锚点先审材料的 pending_anchor、还需要用户动作的 pending_user、锚点已就绪等待你打钱的 pending_user_transfer_start,之后才可能走向完成或错误。
看到 transfer_start 之后
对存入方向,pending_user_transfer_start 是最常见的一档:意味着锚点已经准备好收款,钱包应当把那笔钱按金额与资产要求发出。协议明确规定这必须是一笔 payment 或 path_payment 操作,不接受通过 account_merge 或 create_account 顺带完成。锚点会通过签名过的 URL 回调或 /transaction(s) 查询同步状态变化——回调带签名,就是为了让钱包能验证通知确实来自锚点而不是有人伪造了一个链接。
两种特殊情况的处理
协议专门列了特殊场景。第一种,你的链上账户还没有信任目标资产:锚点如果支持可领取余额(claimable balance),会在交易记录里填 claimable_balance_id,钱包可以去 Horizon 查询该余额并认领;如果不支持,则会出现 pending_trust 状态,走协议另一节描述的信物先行流程。第二种,涉及非等价资产的兑换时,协议用 amount_in_asset、amount_fee_asset、amount_out_asset 等字段把币种一并报给钱包,钱包可以向你原样转述,而不是只报一串数字。
你该核对什么
把这层机制映射到用户动作:一是金额与费用,发出前先对照 /info 与报价字段里的 amount_fee 口径,确认到账差额来自哪一项;二是信任线,第一次收到某锚点的资产前钱包需要建立 trustline,这与此前讲过的“钱包要你填 Memo 的前置检查”钱包突然要你填 Memo:Stellar SEP-29 是怎么在提交前查到的 是两类不同的门槛,别互相顶包;三是状态含义,incomplete、pending 各档谁在干活、卡住该找谁,答案都写在状态名里。法币出入金涉及汇率与手续费,任何协议都不承诺成本,本文只讲流程规则,不构成投资建议。 回调之外还有一条兜底:协议在端点清单里保留了 GET /transaction 与 GET /transactions,状态随时可以主动查询。官方文本也把 URL 回调描述为可选机制,所以一个谨慎的钱包应当以查询接口为事实来源,把回调当提醒。遇到状态长时间停在某一档,先看协议定义里这档名字里写着谁该动——名字本身就是排查表。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。