简而言之
Blockradar Withdraw API 允许您将稳定币资产从钱包发送到外部区块链地址。它支持单笔提款、向多个收款人的批量提款,并在执行前提供费用估算。
Blockradar Withdraw API 允许您将稳定币资产从钱包发送到外部区块链地址。它支持单笔提款、向多个收款人的批量提款,并在执行前提供费用估算。

前提条件
在使用 Withdraw API 之前,请确保您已具备:1
API 密钥
从 Blockradar 控制台 获取您的 API 密钥。前往 Developers 生成密钥。
2
已创建钱包
在控制台中(参见创建主钱包)创建钱包。提款操作需要使用
walletId。3
资产 ID
在控制台的 Assets 中或通过 Get Assets API 获取要提取的代币的
assetId。4
充足余额
确保钱包中有足够的待提取资产余额,以及用于支付网络手续费的原生代币(ETH、BNB、MATIC 等)。
工作原理
Withdraw API 将稳定币资产从您的 Blockradar 钱包发送到任意外部区块链地址:单笔提款
通过单次 API 调用将资产发送到一个收款地址。
批量提款
通过单次 API 调用将资产发送给多个收款人,减少开销并简化批量支付。
费用估算
在执行前计算网络手续费,以确保余额充足并向用户展示成本。
仅签名模式
签署交易但不广播,适用于离线签名或自定义提交等高级用例。
Master Wallet vs Child Address
Withdraw API 在两个层级可用:Master Wallet
直接从主钱包提款。适合财务运营和集中式资金管理。
Child Address
从单个 child address 提款。适合用户专属操作和资金隔离管理。
端点
单笔提款
将资产发送到单个收款地址。请求参数
标记为
* 的参数对于单笔提款是必填的,但如果您使用 assets 数组进行批量提款则不需要。单笔提款示例
单笔提款响应
链上 Memo
在 Solana 上,提款的note 字段会作为交易的 memo 写入区块链。在 Stellar 上,memo 来自 recipientRouting;省略 recipientRouting 时则来自 note。链上 memo 是公开的——任何人都可以在区块浏览器中查看,因此切勿在 memo 中包含敏感数据。在其他链上,note 不会上链。在所有情况下,note 都会保存在 Blockradar 的交易记录中。
Stellar 上的 Memo
交易所和托管平台通常让所有客户共用一个 Stellar 账户,并根据其分配的 memo 为每笔存款入账。未携带该 memo 的付款通常无法自动入账。请使用recipientRouting 设置 memo:
要提款到要求 memo ID 的交易所账户,请在
recipientRouting 中传入交易所提供的 ID。note 保留在您的交易记录中,不会上链:
recipientRouting 适用于单笔提款和批量提款中的每一项,master wallet 和 child address 均支持。在批量提款中,请在 assets 的每一项上设置它;当存在 assets 时,顶层的 recipientRouting 会被忽略。提款响应会按您发送的内容返回 recipientRouting,省略时为 null。
recipientRouting 仅支持 G... 收款地址。muxed(M...)和合约(C...)收款地址永远不会附加 memo,因此为它们包含 recipientRouting 的请求会被拒绝——请参阅 Stellar 收款地址。
不使用 recipientRouting 时
省略 recipientRouting 时,note 会作为 memo 发送:
这可以保证现有集成继续正常工作,但会把您的内部备注写入公开账本,并且长度限制为 28 字节。请改用
recipientRouting:设置收款方需要的 memo,或使用 { "type": "none" } 让 note 不上链。
Memo 校验
Blockradar 会在您发起请求时校验 memo。无法发送的 memo 会返回400,且不会创建提款;在批量提款中,任何一项无效都会导致整个请求被拒绝。如果某个策略将提款挂起等待审批,则校验会在提款获批时进行。
recipientRouting 对象会在请求校验阶段失败,此时 message 是一个数组:recipientRouting.type must be one of none, memo_id or memo_text、recipientRouting.value must not be supplied when type is none,或 recipientRouting.value is required and must be a non-empty string for memo_id(或 memo_text)。在批量提款中,路径会包含该项的位置,例如 assets.0.recipientRouting.type must be one of none, memo_id or memo_text。
Solana 上的 Memo
在 Solana 上,note 会作为一条 SPL Memo 程序指令附加到提款交易中,SOL 和代币提款均是如此:
- memo 始终是 UTF-8 纯文本——Solana 没有 memo ID 类型,因此仅包含数字的
note也会按字面文本写入。 - memo 由发送地址签名,收款方和索引服务可以由此验证它确实来自发送方。
- Memo 程序最多接受 566 字节的 UTF-8 内容。更长的 note 会在处理过程中失败——而且越短越好,因为 memo 会占用 Solana 交易大小的额度。
Stellar 收款地址
在 Stellar 上,address 字段接受三种收款地址格式。相同的规则适用于单笔提款、批量提款和费用估算,并且在 master wallet 和 child address 端点上均适用。Stellar 不支持仅签名模式。
Muxed 账户(M...)
Muxed 地址在经典 G... 账户之上嵌入了一个路由 ID。交易所和托管平台使用它来为正确的最终用户入账,而无需依赖 memo。发送到 muxed 地址的资金会结算到其底层的 G... 账户中。
对于 muxed 收款地址,不会附加任何 memo——路由 ID 已经嵌入在地址本身中。请勿发送 recipientRouting;包含它的请求会返回 400。您的 note 仍会保存在 Blockradar 的交易记录中。
Soroban 合约(C...)
向合约地址进行的代币提款会作为该代币 Stellar Asset Contract 上的 transfer 调用执行,并通过 Soroban RPC 提交。在链上,其结果是一次合约调用而非经典的 payment 操作——如果收款方的工具只监控 payment 操作,请留意这一点。
合约收款地址仅支持代币资产:
- 支持:代币提款(例如 USDC、EURC)以及相应的网络费用估算。
- 不支持:原生 XLM 提款——将 XLM 发送到
C...地址会返回400错误。法币提现、Swap和自动结算的目标地址也必须是经典G...或 muxedM...地址。
向
G... 或 M... 收款地址进行代币提款时,目标账户必须已存在并持有该资产的信任线(trustline)(请参阅地址激活)。合约收款地址没有信任线要求,且合约转账不会附加 memo。批量提款
通过单次 API 调用向多个收款人发送资产。批量提款按顺序执行,每笔提款作为独立的区块链交易处理。何时使用批量提款
- 批量支付:一次性向多个员工、供应商或合作伙伴付款
- 分发:将资产发送到多个地址
- 多收款人转账:向不同地址发送不同金额
- 提升运营效率:减少 API 调用并简化支付逻辑
批量请求参数
对于批量提款,请使用assets 数组而不是单独的参数:
assets 数组中的每一项:
批量提款示例
批量提款响应
处理部分失败
批量提款支持部分成功。如果某些提款失败,其余的仍会执行:批量提款规则
估算网络费用
在执行提款前请始终估算费用,以确保有足够的原生代币余额,并向用户展示准确的成本。单笔费用估算
单笔费用响应
批量费用估算
一次性估算多笔提款的费用:批量费用响应
费用响应字段
仅签名模式
签署交易但不将其广播到区块链。适用于:- 离线签名:准备交易以便稍后提交
- 多重签名工作流:在提交前收集签名
- 交易检查:在广播前审查交易细节
Stellar 不支持仅签名提款。从 Stellar wallet 或 address 发起的请求会返回
400,消息为 Sign-only withdrawals are not supported on Stellar yet。如需签署您自行构建的 Stellar 交易,请使用签名端点。Sign-Only 示例
Sign-Only 响应
Child Address 提款
从单个 child address 而非 master wallet 进行提款:Webhook 事件
通过 webhook 监控提款完成情况:Webhook 负载
networkFee 是您的钱包为本次付款支付的网络费用总额,以链的原生代币和美元计。请用它将确切成本转嫁给您的客户。每笔交易的明细见 networkFees 字段,参见 Webhook 载荷中的网络费用。完整流程示例
以下是展示费用估算 → 用户确认 → 提款流程的完整实现:错误响应
余额不足
余额不足
Gas 不足
Gas 不足
无效地址
无效地址
资产未找到
资产未找到
金额过低
金额过低
批次大小超限
批次大小超限
最佳实践
安全
- 验证地址:在发起提款前始终验证收款地址——Validate Address 端点可检查地址对于给定区块链是否有效,并为 EVM 地址返回校验和格式
- 使用引用:使用唯一的 reference ID 跟踪提款,便于对账
- 实现 webhook:监听
withdraw.success和withdraw.failed事件以确认状态 - 检查 AML:Blockradar 会自动筛查地址—请审查任何被标记的交易
费用管理
- 执行前估算:在提款前始终调用 network-fee 端点
- 监控原生余额:确保有足够的 ETH/BNB/MATIC 用于支付 Gas 费
- 使用批量提升效率:将多笔提款分组以减少 API 调用和运营开销
错误处理
- 处理部分失败:在批量提款中,同时检查
success和errors数组 - 实现重试:对临时故障使用指数退避
- 记录所有交易:存储交易 ID 和哈希以便调试和对账
性能
- 使用合适的批次大小:较大的批次可减少 API 调用,但会增加单次请求时间
- 缓存资产 ID:在本地存储资产 ID 以避免重复查询
- 实施限流:遵守 API 速率限制以避免被节流
API 参考
Master Wallet 端点
Child Address 端点
支持
- 邮箱:[email protected]
- 文档:API 参考
- Webhook 指南:Webhooks
Withdraw API 提供了向外部地址发送稳定币资产的灵活接口。先从单笔提款和费用估算入手,随着需求增长再引入批量操作以处理批量支付。

