# Clementine Web App

## Clementine Web App

The Clementine Web App lets you bridge between Bitcoin and Citrea from your browser.

You can use it to:

* Deposit **10 BTC** and receive **10 cBTC** on Citrea.
* Withdraw **10 cBTC** and receive **BTC** on Bitcoin.

### URLs

* Mainnet: [clementine.citrea.xyz](https://clementine.citrea.xyz)
* Testnet: [clementine.testnet.citrea.xyz](https://clementine.testnet.citrea.xyz)

### Before you start

You will need:

* An **EVM wallet** connected to Citrea.
* A **Bitcoin wallet** that can send exact BTC amounts.
* For deposits: exactly **10 BTC**.
* For withdrawals: **10 cBTC** on Citrea and a Bitcoin dust UTXO.

The same EVM wallet is used throughout each flow. The app may ask your wallet to sign messages so it can generate the Bitcoin keys needed for the bridge process.

These keys are generated locally in your browser and are kept only for your current session. If you refresh the page, they are cleared. You can regenerate them by signing the same message again with the same EVM wallet.

Each page also has a **Restart Flow** button in the top right. This clears the current flow and lets you start over.

For advanced users who want stronger key isolation, such as signing from an offline machine, use the [Clementine CLI](/essentials/using-clementine/clementine-cli.md).

For more background, see:

* [Clementine: trust-minimized Bitcoin Bridge](/essentials/clementine-trust-minimized-bitcoin-bridge.md)
* [Using Clementine](/essentials/using-clementine.md)

***

## Deposit BTC to Citrea

Use the **Deposit** page to bridge **10 BTC** into **10 cBTC**.

### Step 1: Choose your Citrea destination

Connect the Citrea wallet where the minted cBTC should be sent.

By default, the connected wallet address is used as the destination address on Citrea.

### Step 2: Generate your recovery key

Click **Generate Recovery Signer Key**.

Your wallet will ask you to sign a message. This signature is used locally in your browser to generate a Bitcoin recovery key.

This recovery key is required to recover your BTC if something goes wrong with the deposit, such as sending the wrong amount.

The first time you generate this key, the app may ask you to run a **Determinism Check**. This confirms that your wallet can reliably regenerate the same key later.

If the result is **Match**, you can continue.

### Step 3: Send exactly 10 BTC

The app will generate a Bitcoin deposit address.

Send **exactly 10 BTC** to the address shown in the app.

Do not send more or less than 10 BTC. Deposits with any other amount will not complete normally and must be recovered.

You can optionally open the mempool.space link shown in the app to verify the deposit address details.

After sending the BTC, click **Continue**.

### Step 4: Track your deposit

The app will show the status of your deposit.

Common statuses are:

| Status                         | Meaning                                                                   |
| ------------------------------ | ------------------------------------------------------------------------- |
| In Mempool                     | Your Bitcoin transaction has been seen but is not confirmed yet.          |
| New                            | Your transaction is confirmed on Bitcoin and is waiting for finalization. |
| In Progress                    | The bridge is processing your deposit.                                    |
| Move To Vault Transaction Sent | The bridge has moved your deposit into the vault.                         |
| Completed                      | Your 10 cBTC has been minted on Citrea.                                   |

When the deposit is complete, the app shows the Citrea transaction hash.

### Recovering a deposit

If you sent the wrong amount, the app will show the deposit under **Incorrect amount deposits**.

To recover it:

1. Wait for the **200-block recovery delay** to pass.
2. Derive the recovery key using the **Sign to derive key** button.
3. Click **Generate recovery tx**.
4. Enter the Bitcoin address where you want the funds returned.
5. Choose a fee rate.
6. Preview or broadcast the recovery transaction.

For valid 10 BTC deposits, you can also create and download a recovery transaction as a safety backup. This transaction can only be used if the bridge does not process your deposit in time.

***

## Withdraw cBTC to Bitcoin

Use the **Withdraw** page to bridge **10 cBTC** back to BTC.

You burn **10 cBTC** on Citrea, and the amount of BTC you receive depends on which payout path completes the withdrawal:

* **Optimistic payout:** **9.9999976 BTC** This is the default path and completes within 12 hours in the normal case.
* **Operator payout:** **9.97 BTC** This fallback runs if no optimistic payout arrives within 12 hours, and pays a higher fee to the operator that completes the withdrawal.

### Step 1: Connect your Citrea wallet

Connect the EVM wallet that holds the **10 cBTC** you want to withdraw.

The app will show your current cBTC balance.

### Step 2: Enter your Bitcoin address

Enter the Bitcoin address where you want to receive BTC.

The app checks that the address matches the current network.

### Step 3: Generate your withdrawal key

Click **Generate Withdrawal Signer Key**.

Your wallet will ask you to sign a message. This signature is used locally to generate a Bitcoin key for the withdrawal.

This key is used to sign the withdrawal payout bound to your selected Bitcoin address.

As with deposits, the app may ask you to run a **Determinism Check**. If the result is **Match**, you can continue.

### Step 4: Send the dust transaction

The app will show a Bitcoin signer address and a small dust amount. The default is **0.0000033 BTC**; if your wallet doesn't support that amount, you can change the dust value in **Settings**.

Send the indicated dust amount from your Bitcoin wallet to the signer address.

This small Bitcoin transaction is used as part of the withdrawal process.

Once the dust transaction appears on Bitcoin:

1. Click **Scan for UTXOs**.
2. Select the UTXO you just sent.
3. Click **Continue**.

### Step 5: Sign and send the withdrawal transaction

The app will prepare your withdrawal transaction on Citrea.

Before sending, click **Simulate Transaction**. This checks that the transaction can be submitted successfully.

Once the simulation passes, click **Send Transaction**.

Your EVM wallet will ask you to confirm the transaction. This sends **10 cBTC** to the bridge contract on Citrea.

After the transaction is submitted, the app shows the Citrea transaction hash.

If the selected Bitcoin UTXO needs more confirmations, the send button will stay disabled and the app will show how many blocks are left.

### Step 6: Track your withdrawal

The app will show the withdrawal status.

Common statuses are:

| Status                                     | Meaning                                                                  |
| ------------------------------------------ | ------------------------------------------------------------------------ |
| Waiting for Citrea finalization on Bitcoin | The withdrawal request is waiting for Citrea finalization before payout. |
| completed                                  | The withdrawal is complete.                                              |

### Step 7: Submit operator signatures, if needed

Most withdrawals complete through the optimistic payout path.

If no optimistic payout arrives within **12 hours**, the withdrawal falls back to **operator payout**: you can move on by submitting signatures so an operator can complete your payout instead.

Click **Submit Operator Signatures**.

After the signature is submitted, Step 7 is marked as **Submitted**. This means the operator signature was sent successfully; continue using **Monitor Status** to track payout completion.


---

# 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://docs.citrea.xyz/essentials/using-clementine/clementine-web-app.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.
