# Exit Process

This page walks through the full exit process from start to finish.

## Step 1: Connect your wallet

Connect the **same Ethereum wallet** you used with INTMAX2 (e.g., MetaMask).

After connecting, you will be asked to **sign a message** to prove address ownership. This is a read-only verification — it does not authorize any transaction or transfer of funds.

The application then checks whether your address has any registered INTMAX accounts. If accounts are found, you go directly to the status page. Otherwise, you proceed to Step 2.

## Step 2: Register mining accounts

Click **"Start Key Derivation"** to derive your INTMAX mining accounts from your wallet.

The application:

1. Derives your INTMAX key pairs (the same ones created when you first used INTMAX2).
2. Checks each account for deposit history on the INTMAX2 network.
3. Registers eligible accounts by submitting their **view keys** to the server (encrypted).

Your **main account** (index 0) is always registered. Additional accounts are registered only if they have deposit history.

**Important**: Your spend key (which controls your funds) is never sent to the server. Only the view key (which allows reading data) is submitted. See [Glossary: View key](/intmax-exit-documentation/reference/glossary.md#view-key).

## Step 3: Balance calculation

The server processes your data in the background:

1. **Data sync** — Downloads and decrypts your transaction history from the Data Store Vault.
2. **Balance calculation** — Processes all deposits, sends, and incoming transfers chronologically.
3. **Transfer validation** — Verifies incoming transfers by checking that senders had sufficient balance (see [Glossary: Transfer validation](/intmax-exit-documentation/reference/glossary.md#transfer-validation)).

On the status page, your sync status will progress: **Pending** → **Data Synced** → **Balance Calculated**.

{% hint style="warning" %}
Balance calculation depends on the progress of view key submissions across the network. If you received transfers from other users, the server must verify that those senders had sufficient balance — which requires those senders to have submitted their own view keys. Until then, those transfers remain "pending" and are not counted in your balance. Your balance updates automatically as more users register and validation progresses.

If a sender does not submit their view key, a new countermeasure is planned for deployment by the end of February 2026 to resolve pending transfers without requiring the sender's participation.
{% endhint %}

## Step 4: Exit request

Once your balance is calculated, exit requests are **automatically created and submitted** to the Exit smart contract on Ethereum. A separate request is created for each token with a non-zero balance.

On the status page, each request shows: **Pending** → **Submitted** → **Executed**.

After submission, a **24-hour timelock** begins. During this period, the Guardian monitors requests and can cancel any that appear suspicious. See [Glossary: Timelock](/intmax-exit-documentation/reference/glossary.md#timelock).

## Step 5: Execute withdrawal

After the 24-hour timelock expires, return to the status page and click the **"Execute"** button next to the eligible request. Your wallet will prompt you to confirm an on-chain transaction. If you have multiple executable requests, you can use **"Execute All"** to process them in a single transaction.

Once confirmed, the Exit contract instructs the Liquidity contract to send funds directly to your Ethereum address. You can verify the transaction on a block explorer using the execution transaction hash shown on the status page.

## Timeline summary

| Step                      | Duration                                       |
| ------------------------- | ---------------------------------------------- |
| Connect wallet & register | A few minutes (wallet signatures required)     |
| Balance calculation       | Minutes to hours (depends on transfer history) |
| Exit request submission   | Automatic                                      |
| Timelock                  | **24 hours** (fixed)                           |
| Execution                 | User-initiated after timelock                  |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://intmax-exit.gitbook.io/intmax-exit-documentation/guide/exit-process.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
