インテグレーションガイド

zERC20をプロジェクトに統合する方法を説明します。

概要

zERC20トークンは標準的なERC-20インターフェースを公開しているため、ERC-20トークンをサポートするあらゆるプロトコルやアプリケーションとの統合が可能です。

新しいzERC20トークンの作成

新しいzERC20ラッパートークンの作成はガバナンスのプロセスを経て行われます。原資産トークンのサポートを追加するには、チームにお問い合わせください。

トークンインテグレーション

コントラクトアドレス

全てのデプロイ済みコントラクトアドレスはコントラクトアドレスページをご確認ください。

標準ERC-20インターフェース

zERC20は標準的なERC-20メソッドをすべてサポートしています:

// Solidityインターフェース
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

ラッピングとアンラッピング

LiquidityManagerコントラクトを通じて原資産とzERC20トークン間の変換を行います。

zERC20をオラクルとして

zERC20のマークルツリーは、他のプロトコルが利用可能なオンチェーンオラクルとして使用できます。

リーフ構造

各マークルツリーのリーフは、転送情報(送信者、受信者、金額など)のPoseidonハッシュです。

ツリー構造

Poseidonハッシュベースのバイナリマークルツリーを使用しています。

コントラクトからマークルルートを読み取る

Verifierコントラクトからグローバルマークルルートを読み取ることができます。

Poseidon Hashの互換性

zERC20はBN254曲線上のPoseidon Hashを使用しています。互換性のある実装を使用してください。

マークル証明の取得

インデクサーAPIからマークル証明を取得できます。

独自のインデクサーの運用

最大限のプライバシーのために、独自のインデクサーインスタンスを運用できます。

Docker Compose

docker-compose up -d

設定

インデクサーの設定は環境変数を通じて行います。以下の主要な設定項目があります:

  • RPCエンドポイント(各チェーン)
  • データベース接続設定
  • 同期するコントラクトアドレス
  • 開始ブロック番号