存款地址选项

Spark 在大多数场景下使用静态比特币存款地址。本文仅介绍静态存款流程。

静态存款地址(推荐)

  • 可重复使用 —— 同一地址可接收多笔存款
  • 友好易用 —— 降低一次性地址带来的误用风险
  • 生产可用 —— 适合用户可能多次充值的应用
我们建议在几乎所有生产应用中使用静态地址,它能显著降低用户误操作与运维复杂度。

生成存款地址

用于 L1 的比特币存款,Spark 生成 P2TR 地址。主网地址以 “bc1p” 开头,可从任意钱包接收比特币。
const staticDepositAddress = await wallet.getStaticDepositAddress();
console.log("静态存款地址:", staticDepositAddress);
// 此地址可重复使用
主网地址示例: bc1p5d7rjq7g6rdk2yhzks9smtbqtedr4dekq08ge8ztwac72sfr9rusxg3297
目前,每个钱包仅支持一个静态存款地址。若再次创建,将返回现有的静态地址而不会生成新的。

存入比特币

主网

在主网上,向您的静态存款地址发送资金即可完成充值。

Regtest

在 REGTEST 上,您可以使用我们的水龙头为您的 Spark 钱包提供资金。

监视存款交易

发送比特币至存款地址后,您需要使用区块链浏览器或自建基础设施监视入账交易。
// 您需要自行实现监控逻辑
const staticAddress = await wallet.getStaticDepositAddress();

// 示例:通过区块浏览器 API 轮询该地址的新交易
// const newTransactions = await yourBlockchainMonitor.checkAddress(staticAddress);

认领存款

静态存款认领

静态地址的认领流程分为两步:先获取报价,再使用返回的签名进行认领。
// 第一步:获取认领报价(交易创建后即可调用)
const quote = await wallet.getClaimStaticDepositQuote(txId);
console.log("Quote:", quote);

// 第二步:使用报价详情认领存款
// 注意:只有在链上 3 次确认后才会成功
const claimResult = await wallet.claimStaticDeposit({
  transactionId: txId,
  creditAmountSats: quote.creditAmountSats,
  sspSignature: quote.signature
});
console.log("Claim successful:", claimResult);
您可以在交易创建后随时调用 getClaimStaticDepositQuote,但 claimStaticDeposit 仅会在交易获得 3 次确认后成功。

退款静态存款

如果您希望在不将资金带入 Spark 的情况下退回静态存款,可将其直接原路退回到某个比特币地址。与“先认领再协作退出”相比,退款只需一笔矿工费,更加经济。 适用场景:
  • 您不满意 getClaimStaticDepositQuote 的报价
  • 希望避免双重费用(认领费 + 协作退出费)
  • 想在不使用 Spark 的情况下将资金发送到其他地址
// 退款静态存款(最低费用:300 sats)
const refundTxHex = await wallet.refundStaticDeposit(
  depositTxId,
  destinationAddress,
  feeSats // 至少 300 sats
);

// 需要由您自行广播此交易
console.log("Refund transaction hex:", refundTxHex);

确认要求

  • 存款在 L1 上需要 3 次确认
  • 确认后资金将在您的 Spark 钱包中可用

最佳实践

  • 生产环境优先使用静态存款地址,降低用户困惑与资金风险
  • 首次存款从小额测试开始
  • 跟踪您的存款交易 ID
  • 等待所需的确认次数后再视存款完成
  • 复用静态存款地址,便于多次充值
  • 退款静态存款时,确保费用不少于 300 sats

下一步

存款确认后,您可以:

需要帮助?