Skip to main content
私人钱包由用于签名的 Solana 密钥对、一个空值密钥和一个用于加密的查看密钥组成,这些密钥合在一起形成了受保护的密钥对。 您的密钥管理中包含受保护的密钥对。 钱包代码使用 Privacy Interface 和 SDK 来构建私人交易。 密钥管理和 Privacy SDK 通过 Privacy Interface 连接。Privacy SDK 调用 Privacy API。Privacy API 将交易提交到 Solana。 该集成使您的用户能够:
  1. 创建一个自我托管的私人钱包
  2. 使用 Solana 地址接收私人转账
  3. 将代币存入私人余额
  4. 私密发送至 Solana 地址
  5. 提现至任意 Solana 地址
  6. 在本地解密私人余额和交易历史
该集成包括:
  1. 受保护的密钥对 – 在您的密钥管理中用于加密
  2. Privacy Interface 和 SDK – 用于构建私人交易
  3. 用户流程 – 集成到您的钱包中

您的 AI 的上下文

Add a Private Wallet to an existing Solana wallet

在 Cursor 中打开
1

集成受保护的密钥对

私人钱包集成会在您的密钥管理中添加一个受保护的密钥对。 受保护的密钥对用于签名、加密和解密交易。受保护的密钥对是签名、空值和查看密钥的集合。
  • 签名密钥: 钱包的 Ed25519 Solana 密钥对用于签署交易。
  • 查看密钥: 一个 P-256 密钥对,用于加密和解密交易。
  • 空值密钥:
钱包可以通过两种方式创建受保护的密钥对:
  1. 对于基于种子的钱包,选择从种子短语导出
  2. 对于非基于种子的钱包,选择从 EdDSA 签名导出
基于种子的钱包从一个 BIP-39 助记符和账户索引(01……)中导出受保护的密钥对。每个账户索引映射一个 Solana 密钥对到一个受保护的密钥对。 您可以通过与恢复 Solana 密钥对相同的方式恢复受保护的密钥对。例如:
  • 账户 0: Solana 密钥对 0 和受保护的密钥对 0
  • 账户 1: Solana 密钥对 1 和受保护的密钥对 1
受保护的签名密钥就是该账户的 Solana Ed25519 密钥。 空值和查看密钥是从同一个种子导出的附加密钥。
示例实现: TypeScript 示例 · Rust 示例
2

集成 Privacy Interface 和 SDK

Privacy Interface 使您的代码能够使用 Privacy SDK 来构建私人交易,而无需直接访问密钥材料。 您的密钥管理将 Privacy Interface 实现为两个部分。
  1. 使用 Privacy SDK 构建交易的签名接口。查看源码:TypeScript/ Rust
  2. 加密和解密接口。查看源码:TypeScript/ Rust
Privacy Interface 是无状态的,因此不存储余额或交易历史。 为了提高性能,我们建议在本地缓存用户余额和交易历史。

关于证明生成

生成零知识证明需要完整用户交易数据和空值密钥的明文输入。目前,通过标准 Helius RPC URL 提供服务器证明生成。本地证明生成即将推出。 计划在主网发布前在 AWS Nitro 上进行端到端加密的服务器证明生成。
3

集成用户流程

创建私人钱包

私人钱包的创建分两步:
  1. 导出受保护的密钥对
  2. 在链上注册 Solana 地址。
注册表将签名公钥链接到空值和查看公钥——这些公钥共同构成受保护的地址。
每个注册记录是由 拥有的 PDA,任何人都可以查找以确认 Solana 地址是否可以接收私人转账。

同步私人余额和交易历史

余额同步从 RPC 获取加密状态并在钱包中解密。RPC 不负责解密。只有拥有查看密钥的所有者可以解密私人余额。
在进行私人交易和运行回填时,钱包应在解锁、打开私人钱包、应用程序恢复、网络重新连接、流间隙或钱包恢复时解密并更新余额。

读取私人余额

读取私人交易历史

存入私人余额

用户可以通过两种方式将资金存入私人余额:
  1. 从法币余额进入私人加密余额
  2. 从公共 SPL 账户存入私人余额
上坡通道与存款在隐私保证上有所不同。 我们建议使用上坡通道而不是存款以获得更好的隐私。

上/下坡通道

将法币直接上/下坡到私人余额。

存款

从公共加密余额存入。

私人转账

用户可以向任何 Solana 钱包地址发送私人转账。对于每次私人转账,Privacy SDK 会在链上注册表中查找钱包地址,以检查接收者是否有私人钱包。当接收者没有私人钱包时,Privacy SDK 可以将私人转账解析为私到公的提现。
我们建议在用户界面中将交易标记为提现,以确保用户不会意外提取到公共余额。

私人转账

私密转至私人余额。

提现至公共余额

提现可以通过两种方式使用:
  1. 作为对没有私人钱包的接收者的私人转账的后备,或
  2. 直接提现到公共 SPL 代币账户。
对于提现,我们建议清晰标记用户正在离开私人余额,类似于种子短语或私钥导出。

提现

提现至公共加密余额。

Didn’t find what you were looking for?

Reach out! Telegram | E-Mail | Contact