> For the complete documentation index, see [llms.txt](https://docs.kanalabs.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kanalabs.io/smart-wallet-sdk/mirai-sdk-the-evm-smart-wallet-and-paymaster/sdk-gateway-functions/evm-sdk-functions.md).

# EVM SDK Functions

<table><thead><tr><th>Methods</th><th>Description</th></tr></thead><tbody><tr><td><p></p><pre class="language-typescript"><code class="lang-typescript">getCounterFactualAddress(): Promise&#x3C;string>;
</code></pre></td><td>To get the KanaWallet address</td></tr><tr><td><p></p><pre class="language-typescript"><code class="lang-typescript">signMessage(dto: SignMessageDto): Promise&#x3C;string>;
</code></pre></td><td>To sign a message</td></tr><tr><td><p></p><pre class="language-typescript"><code class="lang-typescript">getNativeBalance(): Promise&#x3C;string>;
</code></pre></td><td>To get the native token balance of the wallet</td></tr><tr><td><p></p><pre class="language-typescript"><code class="lang-typescript">addUserOpsToBatch(tx: UserOpsRequest): Promise&#x3C;BatchUserOpsRequest>;
</code></pre></td><td>To add transactions to the batch</td></tr><tr><td><p></p><pre class="language-typescript"><code class="lang-typescript">clearUserOpsFromBatch(): Promise&#x3C;void>;
</code></pre></td><td>To clear the transactions in the batch</td></tr><tr><td><p></p><pre class="language-typescript"><code class="lang-typescript">estimate(gasDetails?: TransactionGasInfoForUserOp): Promise&#x3C;UserOperationStruct>;
</code></pre></td><td>To estimate transactions added to the batch and get the fee data for the UserOp. Returns UserOperationStruct</td></tr><tr><td><p></p><pre class="language-typescript"><code class="lang-typescript">send(userOp: UserOperationStruct): Promise&#x3C;string>;
</code></pre></td><td>To sign the UserOp and send it to the bundler. Returns userOp hash</td></tr><tr><td><p></p><pre class="language-typescript"><code class="lang-typescript">createSession(dto?: CreateSessionDto): Promise&#x3C;Session>
</code></pre></td><td>To sign create a session</td></tr><tr><td><p></p><pre class="language-typescript"><code class="lang-typescript">getUserOpReceipt(userOpHash: string): Promise&#x3C;any>
</code></pre></td><td>To get the transaction hash</td></tr><tr><td><p></p><pre class="language-typescript"><code class="lang-typescript">getGasFee(): Promise&#x3C;import("./common").Gas>;
</code></pre></td><td>To get the Gas data</td></tr><tr><td><p></p><pre class="language-typescript"><code class="lang-typescript">destroy(): void;
</code></pre></td><td>To destroy the SDK instance</td></tr><tr><td><p></p><pre class="language-typescript"><code class="lang-typescript">getUserOpHash(userOp: UserOperationStruct): Promise&#x3C;string>;
</code></pre></td><td>To get the UserOp Hash</td></tr><tr><td><p></p><pre class="language-typescript"><code class="lang-typescript">getAccountContract(): Promise&#x3C;import("./contracts").EtherspotWallet>;
</code></pre></td><td>To get the account contract</td></tr><tr><td><p></p><pre class="language-typescript"><code class="lang-typescript">totalGasEstimated(userOp: UserOperationStruct): Promise&#x3C;BigNumber>;
</code></pre></td><td>To estimate the gas for the transactions</td></tr><tr><td><p></p><pre class="language-typescript"><code class="lang-typescript">getCrossChainQuotes(dto: GetExchangeCrossChainQuoteDto): Promise&#x3C;BridgingQuotes>;
</code></pre></td><td>To get the crosschain quotes</td></tr><tr><td><p></p><pre class="language-typescript"><code class="lang-typescript">getAdvanceRoutesLiFi(dto: GetAdvanceRoutesLiFiDto): Promise&#x3C;AdvanceRoutesLiFi>
</code></pre></td><td>To get the routes for the LiFi</td></tr><tr><td></td><td></td></tr></tbody></table>
