The primary purpose of this SDK is to abstract the complex operations of interacting with the INTMAX network, providing a secure and user-friendly interface. It leverages WebAssembly to enable high-speed cryptographic processing while maintaining robust security features. This SDK manages the entire workflow from transaction creation to signing and broadcasting, allowing developers to access these complex functionalities through a simplified API.
The SDK achieves its goal of providing a robust, secure, and developer-friendly solution for blockchain wallet integration while maintaining high performance and reliability.
👉 Check out the INTMAX Client SDK on GitHub
Deposit Workflow
Ethereum
│
â–¼
[Deposit](Predicate AML)
│
â–¼
[Deposit Analyzer]
│
â–¼
[Scroll Messenger]
│
â–¼
[Rollup Contract] When the block builder posts a new block for deposit, it is processed and verified
│
â–¼
INTMAX Mainnet
Transfer Workflow
INTMAX Mainnet
│
â–¼
[Transfer]
│
â–¼
[Rollup Contract] When the block builder posts a new block for transfer, it is processed and verified
│
â–¼
INTMAX Mainnet
Withdrawal Workflow
INTMAX2 Mainnet
│
â–¼
[Withdrawal]
│
â–¼
[Withdrawal Aggregator]
│
â–¼
[Scroll Messenger]
│
â–¼
[Withdrawal Messenger Relayer]
│
â–¼
[Liquidity Contract] If you are withdrawing tokens other than ETH, an additional claim process is required.
│
â–¼
Ethereum
The INTMAXClient
is an SDK interface designed for interacting with the INTMAX network. This interface provides essential features such as account management, transaction operations, deposits, and withdrawals. Below is an overview of each functionality.
This interface offers high-level APIs for seamless integration with the INTMAX network. It integrates account login/logout, transaction management, and deposit/withdrawal processing, allowing developers to execute complex blockchain operations through simple functions. Additionally, with WebAssembly support, it ensures fast and secure processing.
export interface INTMAXClient {
// properties
tokenBalances: TokenBalance[] | undefined;
address: string; // IntMax public_key
isLoggedIn: boolean;
// account
fetchTokenBalances: () => Promise<TokenBalancesResponse>;
getPrivateKey: () => Promise<string | undefined>;
signMessage: (message: string) => Promise<SignMessageResponse>;
verifySignature: (signature: SignMessageResponse, message: string | Uint8Array) => Promise<boolean>;
// transaction
fetchTransactions: (params: FetchTransactionsRequest) => Promise<Transaction[]>;
broadcastTransaction: (
rawTransfers: BroadcastTransactionRequest[],
isWithdrawal: boolean,
) => Promise<BroadcastTransactionResponse>;
waitForTransactionConfirmation: (
params: WaitForTransactionConfirmationRequest,
) => Promise<WaitForTransactionConfirmationResponse>;
// deposit
deposit: (params: PrepareDepositTransactionRequest) => Promise<PrepareDepositTransactionResponse>;
fetchDeposits: (params: FetchTransactionsRequest) => Promise<(Transaction | null)[]>;
// withdrawal
fetchPendingWithdrawals: (params: FetchWithdrawalsRequest) => Promise<FetchWithdrawalsResponse>;
withdraw: (params: WithdrawRequest) => Promise<WithdrawalResponse>;
claimWithdrawal: (params: ContractWithdrawal[]) => Promise<ClaimWithdrawalTransactionResponse>;
// additional services
login: () => Promise<LoginResponse>;
logout: () => Promise<void>;
getTokensList: () => Promise<Token[]>;
}
The Function List outlines key properties and interfaces of the INTMAX Core SDK, enabling seamless user authentication, token balance management, and interaction with the INTMAX network. It provides clear and standardized methods for handling authentication states, token information, and paginated data retrieval to ensure efficient integration and extensibility across different use cases.