book-openAPI リファレンス

INTMAX Client SDK の全プロパティ・メソッド・パラメータ・戻り値の詳細リファレンス

INTMAX Client SDK の包括的な API リファレンスです。プロパティ、メソッド、パラメータ、戻り値、使用例の詳細な説明を含み、アカウント管理、トランザクション、Deposit、Withdrawal、手数料などを網羅しています。

プロパティ

isLoggedIn: boolean

ウォレットユーザーの現在の認証状態を示すプロパティです。ユーザーが認証プロセスを正常に完了し、アクティブなセッションを持っている場合に true を返します。トランザクションやデータアクセスなど、機密性の高い操作を実行できるかどうかの判定に重要です。

address: string

接続されたウォレットの Ethereum アドレスと1対1で対応する、INTMAX ネットワーク上のアドレスを表します。

tokenBalances: TokenBalance[] | undefine

ユーザーの現在のトークン残高を表します。トークンアドレス、残高、シンボル、小数桁数、名前を含みます。undefined の場合、残高はまだ取得されていません。

関数

このセクションでは、IntMaxClient SDK が提供するすべての関数とメソッドを説明します。各関数には、目的、パラメータ、戻り値、使用例の詳細な説明が含まれています。これらの API により、INTMAX ネットワークに対するアカウント管理、トランザクション、Deposit・Withdrawal 操作を直接行えます。

特に指定がない限り、すべてのメソッドは非同期です。WebAssembly を介した安全な暗号演算により、最適なパフォーマンスを実現するよう設計されています。

初期化

IntMaxClient は INTMAX SDK のコアコンポーネントで、INTMAX ネットワークとのシームレスな連携を提供します。environment には testnet または mainnet を指定してください。

import { IntMaxClient } from "intmax2-client-sdk";

const intMaxClient = IntMaxClient.init({ environment: "mainnet" });

ローカル Balance Prover のセットアップについては、Tips: How to Run a Local Balance Proverarrow-up-right を参照してください。

アカウント

アカウントモジュールは、ウォレット管理のための包括的な認証機能と暗号演算を提供します。

login

ウォレットの認証を開始し、安全なセッションを確立します。このメソッドは鍵導出、セッショントークン管理、初期データ同期を処理します。ウォレットの保護された機能への安全なアクセスに不可欠です。

Q. INTMAX ネットワークにおける「ログイン」とは?

高度な機能:

nonceencryptionKey を使用して秘密鍵(Private Key)を保護し、以降の使用時に外部ウォレットの署名(Signature)なしでリカバリーを可能にできます。この機能の使用は任意です。

encryptionKey は AES-GCM 暗号化のキーとして使用できる 32 バイトの文字列で、Base64 エンコードされた文字列として出力されます。

nonce は暗号化キーの生成に関連する値です。同じ nonce は常に同じ encryptionKey を生成します。

encryptionKey の値は、外部ウォレットによって署名された固定メッセージと nonce 値から導出されます。encryptionKey が漏洩するリスクがある場合は、nonce を更新して新しい暗号化キーを生成できます。

logout

現在のウォレットセッションを安全に終了し、メモリから機密データをクリアします。このメソッドは認証トークン、キャッシュデータ、アクティブな接続の適切なクリーンアップを保証します。ウォレット操作の終了時にセキュリティを維持するために重要です。

getPrivateKey

署名操作に必要な場合に、INTMAX の秘密鍵を安全に取得します。ユーザーが INTMAX の秘密鍵をバックアップしたい場合に使用できます。この関数を実行しなくても、トランザクションの署名やトランザクション履歴の復号は引き続き可能です。

signMessage

INTMAX アカウントを使用してメッセージに署名します。この関数は、任意の文字列であるメッセージに対して署名を行います。

注意: 署名は決定論的に計算されます。つまり、同じアカウントで同じメッセージに署名すると、常に同じ署名が生成されます。

verifySignature

signMessage 関数で生成された署名を検証し、元のメッセージと INTMAX アカウントに一致することを確認します。

sync

sync 関数は、ユーザーの残高を最新の状態に更新します。INTMAX ネットワークでは、Transfer や Withdrawal を行う前にユーザーの残高を更新する必要があります。

ただし、フロントエンドでは通常、この関数を手動で呼び出す必要はありません。IntMaxClient のインスタンスが作成されると、sync 関数はバックグラウンドで定期的に自動実行されます。

重要:

  • ⚠️ フロントエンドでは、sync 関数を通常の使用で手動呼び出ししないでください。

  • ⚠️ 複数の sync 呼び出しは同時実行できません — 同時に呼び出された場合、いずれかが失敗します。

  • ✅ ただし、異なる秘密鍵で 2 つの別々の IntMaxClient インスタンスを作成した場合、それぞれの sync 関数を同時に呼び出すことは安全です。

updatePublicClientRpc

Deposit トランザクション実行時に使用する Ethereum(Sepolia)ネットワークの RPC URL をカスタマイズできます。

トークン

この SDK は、ウォレットエコシステム内の暗号資産やデジタルアセットの情報を管理します。

Q. tokenListtokenBalances とは?

getTokensList

トークンの一覧を取得する API です。tokenIndex パラメータは、Deposit・Withdrawal・Transfer などの操作でトークンを指定する際に特に重要です。これにより、INTMAX Client SDK 内でトークンを正確に識別できます。

fetchTokenBalances

現在ログイン中の INTMAX アカウントが保有するすべてのトークン残高を取得します。アプリケーション内でユーザーの資産保有状況を表示する際に便利です。

トランザクション

INTMAX ネットワーク内の Transfer メカニズムでトランザクションを実行することで、ネットワーク内での Transfer が行われます。ETH、ERC-20、ERC-721、ERC-1155 トークンに対応しています。

fetchTransfers

ユーザーが受信したトークンの履歴を取得します。金額、送信者(from)、受信者(to)、ステータス、タイムスタンプ、トークン情報などの詳細が含まれます。

Q. Transfer とトランザクションの違いは?

fetchTransactions

ユーザーが送信したトークンの履歴を取得します。各トランザクションには、異なる受信者への複数の Transfer と手数料の支払いが含まれる場合があります。

トランザクションと Transfer の違いについては、以下の FAQ を参照してください。

Q. Transfer とトランザクションの違いは?

broadcastTransaction

broadcastTransaction 関数は、1つ以上のトランザクションをブロックチェーンネットワークにブロードキャストします。受信者アドレス、送金額、トークンタイプなどのトランザクションパラメータの配列を受け取ります。トランザクションのブロードキャスト後、トランザクションツリーのルートを検証し、確認を待ちます。レスポンスには、確認ステータス、ブロック番号などの関連情報を含むトランザクション結果が含まれます。

1回の呼び出しで最大 63 トランザクションまで指定できます。

waitForTransactionConfirmation

waitForTransactionConfirmation 関数は、Transfer の実行後にトランザクションが完全にファイナライズされたかどうかを検証するために使用します。INTMAX ネットワークでは、トランザクションは broadcastTransaction 関数を使用してノードに送信され、その後処理されます。

broadcastTransaction の成功レスポンスだけでは、オンチェーンでのファイナライズを保証しません。そのため、waitForTransactionConfirmation 関数は、トランザクションのステータスが success または failed になるまで追跡する信頼性の高い方法を提供します。

重要:

  • ⚠️ Transfer トランザクションの実行後に waitForTransactionConfirmation を呼び出すことが重要です。

注意: この関数は withdraw 関数の txTreeRoot でも使用できます。ただし、withdraw 関数の実行が完了した時点でトランザクションは既にオンチェーンに反映されているため、この関数でさらに待機する必要はありません。

Deposit

Ethereum メインネットから INTMAX ネットワークへの Deposit は、Ethereum メインネットの Liquidity Contract 上でトランザクションを実行することで行われます。ETH、ERC-20、ERC-721、ERC-1155 トークンに対応しています。

fetchDeposits

Deposit トランザクションのページネーション付きリストを、金額、送信者、受信者、ステータス、タイムスタンプ、トークン情報などの関連する詳細とともに取得します。このメソッドは、Deposit の追跡と管理のための包括的なデータを提供し、ユーザーがトランザクションのステータスと履歴を効率的に確認できるようにします。

deposit

必要なトランザクションパラメータを使用して、ユーザーのアカウントへの Deposit トランザクションを処理します。このメソッドは、バリデーション、署名、ネットワークへのブロードキャストを含む完全な Deposit フローを処理し、Predicate Contract を介したオンチェーン AML(Anti-Money Laundering)チェックを含みます。

ここで、estimateDepositGas はトランザクションに十分なガスがあるかを事前に検証するために必要です。

deposit 関数は txHash と status の両方を返します。status: 1 は処理中、status: 2 は完了を表します。

Withdrawal

INTMAX ネットワークから Ethereum メインネットへの Withdrawal は、メインネットの Liquidity Contract 上でトランザクションを実行することで行われます。ETH、ERC-20、ERC-721、ERC-1155 トークンに対応しています。

fetchWithdrawal

Withdrawal トランザクションを、現在のステータスに基づいてカテゴリ別のリストに整理します。Failed、NeedClaim、Relayed、Requested、Success の各状態が含まれます。この構造化された整理により、Withdrawal の効率的なフィルタリングと管理が可能になり、ユーザーはトランザクションの進行状況を追跡し、各 Withdrawal 状態を個別に処理できます。各ステータスカテゴリには、詳細なトランザクション情報を含む ContractWithdrawal オブジェクトの配列が格納されます。

withdraw

withdraw 関数は、ユーザーのウォレットからの Withdrawal リクエストを処理する非同期メソッドです。この関数は、Withdrawal が安全かつ正確に処理されるよう、包括的なバリデーションとセキュリティチェックを実行します。残高の検証、トランザクション手数料の計算、トランザクションの署名を含む、Withdrawal フロー全体を実行します。

broadcastTransaction 関数と同様に、withdraw 関数の実行後に waitForTransactionConfirmation 関数を使用してトランザクションのファイナライズを待つことができます。

claimWithdrawal

1つ以上の Withdrawal トランザクションの Claim プロセスを開始し、トランザクションハッシュとステータスを含むレスポンスを返します。この関数の実行完了後、ブロックチェーン上での成功を確認するために Claim 操作の進行状況を追跡できます。

Q. claimWithdrawal とは?

注意: Claim 可能なトークンがない場合、No withdrawals to claim エラーが発生します。

技術用語

  • Nullifier — 同一の Deposit / Withdrawal が二重使用されるのを防ぐための一意な識別子

  • Salt — 暗号化やハッシュ処理時に追加されるランダム値。同一の入力から異なる出力を生成するために使用され、受信者の Deposit アドレスを秘匿する

  • Token index — INTMAX ネットワーク内でトークンを一意に識別する数値 ID

バッチサイズの制限

INTMAX Client SDK は、最適なパフォーマンスの確保とリソース枯渇の防止のため、特定の操作にバッチサイズの制限を設けています:

トランザクションのブロードキャスト

  • broadcastTransaction 1回あたりの最大トランザクション数: 63

  • この制限は、1回のトランザクションブロードキャストで複数の Transfer をバッチ処理する場合に適用されます

データ取得操作

  • 内部 API リクエストあたりの最大アイテム数: 64

  • この制限は以下の関数が使用する内部ページネーションに適用されます:

    • fetchDeposits()

    • fetchTransfers()

    • fetchTransactions()

  • SDK がページネーションを自動処理するため、高レベル API の使用時にこの制限を管理する必要はありません

  • 64 を超える値を指定すると、Limit exceeds max batch size または Batch size exceeds maximum limit of 64 エラーが発生します

手数料

手数料の詳細については以下を参照してください。

getTransferFee

getTransferFee 関数は、INTMAX ネットワーク内でのトークン Transfer に必要なトランザクション手数料を見積もります。

getWithdrawalFee

INTMAX ネットワーク内でのトークン Withdrawal に必要なトランザクション手数料を見積もります。

最終更新