Skip to main content
  1. 入金はユーザーの公開Solanaバランスから自分または他人のプライベートバランスにトークンを移動します。
  2. 入金は単一のSolanaトランザクションでSolanaウォレットアドレスに送信されます。

入金: プライベートとは何か

無許可リングは、金額と資産が暗号化されていて機密性があります。 カスタムリングは機密性または匿名性(送信者、受信者、資産、金額が暗号化された状態)として構成できます。

入金の仕組み

入金は、プライベートバランスの結果を伴う公開Solana転送です。
  1. ユーザーのSOLまたはSPLバランスはオンチェーンで公開されています。
  2. ウォレットは金額と受取人を設定し、入金を構築し、所有者が署名します。入金はZK証明を要求しません。
  3. Solanaランタイムは署名を検証し、Solanaプライバシープログラムを呼び出します。
  4. アプリはSolanaトランザクションハッシュを介してステータスを追跡します。
  1. ユーザーのSOLまたはSPLバランスはオンチェーンで公開されています。
  2. ウォレットは公開状態を読み取り、転送を構築し、所有者が署名します。
  3. Solanaランタイムは署名を検証し、システムプログラムまたはトークンプログラムを呼び出し、公開バランスを更新します。
  4. アプリはSolanaトランザクションハッシュを介してステータスを追跡します。
これは、無許可の機密リングの高レベルトランザクションフローです。 カスタムリングとの比較はconceptsをご覧ください。

はじめに

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はキットトランザクションを構築し、送信し、署名と到達したスロットを返します。
  • senderAddressは受取人のです。この例は送信者への入金です。受取人は送信者または第三者のウォレットとすることができます。
  • senderViewTagsenderAddress.confidentialViewTag()であり、機密リング内での送信者のSolana公開鍵です。インデクサーはそれを使用して一致する暗号化出力を返します。
  • client.treeは新しい出力コミットメントを受け取る状態マークルツリーです。
  • depositor / senderSignerはパブリックからプライベートへの入金に資金を提供し署名します。
  • DepositAsset.sol()はSOLを選択します。DepositAsset.splはSPLおよびToken 2022資産のためにミント、ソーストークンアカウント、トークンプログラムを取ります。
  • recipientOwnerHashsenderAddress.ownerHash()です。受取人の署名およびヌリファイア公開鍵のハッシュは新しいプライベートトークンアカウントにコミットされた所有者フィールドです。
  • randomBlinding()はプライベートトークンアカウントコミットメントにランダム性を追加します。
  • DEPOSIT_AMOUNTはSOLの場合はラマポートまたはSPLおよびToken 2022資産のためのトークンの基本単位を使用します。
  • sendAndConfirmはSolanaトランザクションとしてdepositIxを署名して送信します。
  • 確認によりインデクサーフェッチをゲートするために使用されたスロットが得られます。

完全なコード例

例をクローンして実行:
例はローカル/Devnet上の機密リングを使用しています。こちら
deposit_transfer_withdraw.ts

関連ガイド

転送

出金

プライベートバランスを読む

プライベート履歴を読む

Didn’t find what you were looking for?

Reach out! Telegram | E-Mail | Contact