book-open-reader概要

INTMAX Client SDK の概要とアーキテクチャ、基本コンセプト

INTMAX Client SDK は、INTMAX ネットワークと連携するための安全で高性能なインターフェースを提供します。WebAssembly による最適化された暗号処理を基盤とし、複雑なブロックチェーン操作を開発者フレンドリーな API に抽象化しています。トランザクションの作成・署名からブロードキャストまで、完全なライフサイクルを扱います。 このドキュメントでは、SDK のコア機能、利用可能な関数、インターフェース仕様について説明します。安全なブロックチェーンウォレット統合の構築にお役立てください。

最新バージョン: 1.5.2

INTMAX Client SDK を GitHub で見る

GitHub で見るarrow-up-right

INTMAX Client SDK の使用例

GitHub で使用例を見るarrow-up-right

GitHub で E2E テスト例を見るarrow-up-right

INTMAX Client SDK 統合ガイド

統合ガイドを開く

アーキテクチャ

このセクションでは、INTMAX ネットワークがサポートするコアワークフローである DepositTransferWithdrawal について説明します。各ワークフローは、セキュリティ、スケーラビリティ、そして Ethereum メインネットと INTMAX ネットワーク間のシームレスな連携を実現するよう設計されています。

Deposit ワークフロー

Ethereum メインネットから INTMAX ネットワークへ資産を移動します。Predicate コントラクトが制裁対象アドレスからの Deposit をブロックし、不正資金の流入を防止します。その後、Deposit データは Scroll Messenger を通じて Scroll ネットワークに中継され、プロセス全体を通じて最大限のセキュリティが維持されます。

Ethereum Mainnet
    
    
[Deposit Contract (Predicate AML)]
    
    
[Deposit Analyzer]
    
    
[L1 Scroll Messenger]
    
    
[Rollup Contract]
       └─ A new deposit block is submitted and verified by the block builder
    
INTMAX Network

Transfer ワークフロー

ユーザーが署名したトランザクションは、単一の Transfer としてパッケージ化され、Block Builder によってロールアップコントラクト(Rollup Contract)に送信されます。

INTMAX ネットワーク内での即時かつ低コストな Value Transfer を実現します。

Withdrawal ワークフロー

セキュリティを損なうことなく、INTMAX ネットワークから Ethereum メインネットへ資産を返却します。 Withdrawal リクエストは Withdrawal Aggregator によってバッチ処理され、L2 上で証明されます。その証明は L2 Scroll Messenger を通じて送信され、Withdrawal Messenger Relayer が Ethereum 上に提出します。ERC-20 などの非 ETH トークンの場合、Liquidity Contract が資金のリリース前に追加の Claim ステップを実行し、最小限のガスオーバーヘッドでスムーズなクロスチェーン出金を実現します。

基本コンセプト

アカウントシステム

INTMAX は Ethereum とは異なる独自のアドレス形式を使用します。

  • アドレスの導出

    INTMAX アドレスは、指定された Ethereum アドレスから決定論的に導出されますが、INTMAX 独自のエンコーディングスキームを使用するため、結果の値は異なります。

  • パラメータの使い分け

    操作

    指定するアドレス

    Deposit

    INTMAX アドレス

    オンチェーントランザクション(INTMAX ネットワーク)

    INTMAX アドレス

    Withdraw

    Ethereum アドレス

  • 環境スコープ

    導出は環境固有です。同じ Ethereum アドレスから出発しても、メインネットとテストネットで生成される INTMAX アドレスは異なります。トランザクションを送信する前に、どちらのネットワークを対象としているか必ず確認してください。

    メインネット: i(小文字)で始まる 95 文字の文字列

    • 例: i9bX5qzARYR7geR35g4K9972DB8fcWqPjNNgQnoGFViZaTLaSiKUTEd7geR35g4K9972DB8fcWqPjNNgQnoGFViZPctJYmE

    テストネット: T(大文字)で始まる 95 文字の文字列

    • 例: T6ubiG36LmNce6uzcJU3h5JR5FWa72jBBLUGmEPx5VXcFtvXnBB3bqice6uzcJU3h5JR5FWa72jBBLUGmEPx5VXcB3prnCZ

    ⚠️ 重要: メインネットとテストネットのアドレスを混同しないよう注意してください。実行する操作に必要なアドレスの種類を常に確認し、INTMAX アドレスの導出・使用時には正しい環境(メインネットまたはテストネット)を使用してください。

環境設定

INTMAX は メインネットテストネット の 2 つの環境で動作します。 同じ Ethereum アドレスから導出しても、INTMAX アドレスは環境ごとに異なります。 SDK の初期化時に環境を明示的に指定してください。

プライバシーモデル

INTMAX のプライバシーモデルは、秘密鍵(Private Key)を持つウォレットオーナーのみが残高とトランザクション履歴を閲覧できる ことを保証します。

  • パブリックブロックチェーンとは異なり、第三者がアドレスの残高や履歴を直接確認することはできません。

  • Transfer データは saltnullifier の値を使用して受取人のアドレスを隠し、トランザクション同士の紐付けを防止します。

バッチサイズ制限

SDK は最適なパフォーマンスのためにバッチサイズ制限を設けています:

  • トランザクションのブロードキャスト: broadcastTransaction 呼び出しあたり最大 63 トランザクション

  • データ取得: 内部 API リクエストあたり最大 64 アイテム。SDK は fetchDeposits()fetchTransfers()fetchTransactions() などの高レベル API に対してページネーションを自動的に処理します。

詳細は API リファレンス を参照してください。

Tips

ローカル Balance Prover の実行方法

ローカルに Balance Prover インスタンスをセットアップし、リクエストを送信できます。

1. リポジトリのクローン

GitHub から intmax2 リポジトリ(main ブランチ)をローカル環境にクローンします。

2. Balance Prover ディレクトリへ移動

クローンしたリポジトリ内の balance-prover ディレクトリに移動します。

3. 環境設定ファイルの準備

提供されている .example.env テンプレートを基に、環境設定ファイル .env を作成します。

4. Balance Prover の起動

Cargo を使用してリリースモード(-r)で Balance Prover を実行します。

5. SDK 設定の変更

ブラウザと Node.js それぞれの設定更新方法を示します。

5-a. ブラウザ

http://localhost:9001 でホストされるプライベート ZKP サーバーを使用するには、以下のコードを使用します:

ローカルで Balance Prover を実行する場合は、use_private_zkp_serverfalse に設定してください。

5-b. Node.js

http://localhost:9001 でホストされるプライベート ZKP サーバーを使用するには、以下のコードを使用します:

ローカルで Balance Prover を実行する場合は、use_private_zkp_serverfalse に設定してください。

dna

We welcome contributions and feedback!

Please feel free to open an issuearrow-up-right or submit a pull requestarrow-up-right on GitHub.

Your support helps improve the INTMAX ecosystem.

リファレンス

以下に Rust コードとコントラクトのドキュメントへのリンクを掲載します。参考資料としてご利用ください。

スマートコントラクト

デプロイ済みコントラクトとその操作方法に関するドキュメントです。

スマートコントラクトのドキュメントを見る

Rust CLI

Rust を使用して INTMAX ネットワークと連携するためのコマンドラインインターフェースです。

GitHub で INTMAX CLI を見るarrow-up-right

Rust SDK

INTMAX ネットワークと外部から連携するための公式 Rust SDK です。

GitHub で INTMAX Client SDK を見るarrow-up-right

この SDK により、Rust を使用して INTMAX ネットワークとシームレスに連携できます。

最終更新