Skip to main content
  1. 存款将代币从用户的公共 Solana 余额转移到他们自己或其他人的私人余额。
  2. 通过单个 Solana 交易将存款发送到 Solana 钱包地址。

存款:什么是私人

无需许可的 Ring 是通过加密数量和资产来保密的。 可以将自定义 Ring 配置为保密或匿名(加密发件人、接收者、资产和数量)。

存款如何运作

存款是一个公开 Solana 转账,结果为私人余额。
  1. 用户的 SOL 或 SPL 余额在链上是公开的。
  2. 钱包设置金额和接收者,构建存款,所有者签名。存款不要求 ZK 证明。
  3. Solana 运行时验证签名并调用 Solana 隐私计划。
  4. 应用程序通过 Solana 交易哈希跟踪状态。
  1. 用户的 SOL 或 SPL 余额在链上是公开的。
  2. 钱包读取公共状态,构建转账,所有者签名。
  3. Solana 运行时验证签名并调用系统程序或代币程序,更新公共余额。
  4. 应用程序通过 Solana 交易哈希跟踪状态。
这是无需许可的保密 Ring 的高级交易流程。 与 概念 中的自定义 Ring 进行比较。

入门

1

先决条件

The TypeScript examples require Node.js 24 or later, pnpm 11.18.0, and the Solana CLI.
Source: sdk-libs/ts
Add a Helius API key:
.env
The examples use the Solana CLI wallet as the payer by default. The payer must hold devnet SOL. See How to Get Devnet SOL.
2

存款到私人余额

  • SDK 返回指令。应用程序签署并发送它们。
  • sendAndConfirmFactory 构建一个 Kit 交易,提交它,并返回签名加上着陆的槽位。
  • senderAddress 是接收者的 。此示例将存款转给发送者。接收者可以是发送者或第三方钱包。
  • senderViewTagsenderAddress.confidentialViewTag(),发送者在保密环中使用的 Solana 公钥。索引器使用它返回匹配的加密输出。
  • client.tree 是接收新输出承诺的状态 Merkle 树。
  • depositor / senderSigner 为公对私存款提供资金并签名。
  • DepositAsset.sol() 选择 SOL。DepositAsset.spl 获取铸造、源代币账户和用于 SPL 和 Token 2022 资产的代币程序。
  • recipientOwnerHashsenderAddress.ownerHash()。接收者签名和空白公钥的哈希值是提交给新私人代币账户的所有者字段。
  • randomBlinding() 为私人代币账户承诺添加随机性。
  • DEPOSIT_AMOUNT 使用 SOL 的 lamports,或用于 SPL 和 Token 2022 资产的代币基础单位。
  • sendAndConfirm 签名并提交 depositIx 作为 Solana 交易。
  • 确认产生的着陆槽用于获取索引器。

完整代码示例

克隆并运行该示例:
示例在本地/devnet 此处 使用保密 Ring。
deposit_transfer_withdraw.ts

相关指南

转账

提现

读取私人余额

读取私人历史

Didn’t find what you were looking for?

Reach out! Telegram | E-Mail | Contact