# BTC.b to LBTC and LBTC to BTC.b Swaps

This guide covers how to convert between BTC.b and LBTC by interacting directly with Lombard's smart contracts through block explorers.

All amounts are denominated in **satoshis** (1 BTC = 100,000,000 satoshis).

***

### How to Swap BTC.b for LBTC

#### Step 1: Initiate Deposit on the Asset Router

Open the Asset Router contract in explorer:

<https://etherscan.io/address/0x9eCe5fB1aB62d9075c4ec814b321e24D8EA021ac#writeProxyContract>

Open the **Contract** tab and select **Write as Proxy**.

Click on **Connect to Web3** to connect to the wallet. Make sure that connection established is with the correct address (the one you have BTC.b on).

![](https://1161095600-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl7wTwC5uXA2Yk5tvZMBg%2Fuploads%2F3HA0GnnGVUhcQiMUkPPp%2F02-asset-router-connected.png?alt=media\&token=28ded40b-89ea-42e6-8567-1056098559c5)

Navigate to the function [**18. deposit (0x8340f549)**](https://etherscan.io/address/0x9eCe5fB1aB62d9075c4ec814b321e24D8EA021ac#writeProxyContract#F18) and enter:

* `fromAddress`: your address (where you have BTC.b)
* `toToken`: LBTC contract address <https://etherscan.io/address/0x8236a87084f8B84306f72007F36F2618A5634494>
* `amount`: amount of BTC.b you want to deposit (convert to LBTC)

![](https://1161095600-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl7wTwC5uXA2Yk5tvZMBg%2Fuploads%2FjzZsBVI1Uh4bX5CRuUcy%2F03-deposit-function-fields.png?alt=media\&token=dc25ed28-59db-45cb-b97d-817e92abf67d)

The amount should be in satoshis.

Click on the **Write** button, check transaction details in your wallet app and accept if everything is correct. After transaction submission it would take some time for Lombard (depending on the blockchain) to notarize it and produce data for further minting.

#### Step 2: Get Authorization Signatures to Mint LBTC

In order to get proof and payload for your transaction from Step 1, navigate to:

```
https://mainnet.prod.lombard.finance/api/v1/address/native-deposits/{address}
```

with your address. e.g.

```
https://mainnet.prod.lombard.finance/api/v1/address/native-deposits/0x659579F1460c38C3ce3288b47b074646CEF855fc
```

**Example API response:**

```json
{
  "tx_hash": "0x8d511e9f7341ab408c13a5ba240e254e0c557b43ecbc4c389989bcd4255d69e1",
  "event_index": 1,
  "from_blockchain": "BLOCKCHAIN_KATANA",
  "to_blockchain": "BLOCKCHAIN_KATANA",
  "from_address": "0x659579f1460c38c3ce3288b47b074646cef855fc",
  "to_address": "0x659579f1460c38c3ce3288b47b074646cef855fc",
  "to_token_address": "0xecac9c5f704e954931349da37f60e39f515c11c1",
  "block_height": "16913834",
  "block_time": "2025-11-20T16:37:25Z",
  "amount": "20000",
  "payload_hash": "0xf6f7c2077a12278c78f763c5a61c061a75c4925d58b8831fe5eebe31544e30b7",
  "raw_payload": "0xe288fb4a022d9999...0000000000000000",
  "proof": "0x00000000000000000...1ba0b2",
  "session_id": "75684",
  "notarization_status": "NOTARIZATION_STATUS_SESSION_APPROVED",
  "session_state": "SESSION_STATE_COMPLETED",
  "claim_tx": "0x999d2f78e04c7c2cff3b53cf5b6199b5ea51823f69622a7305485b3b43aa4436"
}
```

The `raw_payload` and `proof` fields in a real response are much longer. Copy them in full.

Use payload and proof for Step 3.

> **Note:** Payload and proof is available only after Lombard notarized your transaction (JSON above should have `"notarization_status": "NOTARIZATION_STATUS_SESSION_APPROVED"`).

#### Step 3: Mint LBTC

Open the LBTC contract in explorer:

<https://etherscan.io/address/0x8236a87084f8B84306f72007F36F2618A5634494#writeProxyContract>

Open the **Contract** tab and select **Write as Proxy**.

Click on **Connect to Web3** to connect to the wallet. Make sure that connection established is with the correct address (the one you have LBTC on).

![](https://1161095600-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl7wTwC5uXA2Yk5tvZMBg%2Fuploads%2F1glTwOR8UNvyrOomK5KG%2F05-lbtc-etherscan-connected.png?alt=media\&token=ffaa939e-e85f-4426-8cd5-799ad5923cba)

Navigate to the function **21. mint (0x6bc63893)**. Copy and paste payload and proof collected at previous step.

![](https://1161095600-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl7wTwC5uXA2Yk5tvZMBg%2Fuploads%2FzRYhhYqSNfUH2QgLhqYX%2F06-mint-lbtc-filled.png?alt=media\&token=8bd68ad0-b4c6-4252-8356-05f91af71fec)

Click on the **Write** button, check transaction details in your wallet app and accept if everything is correct.

Corresponding amount of LBTC will be minted on the address that initially had deposited BTC.b as soon as the transaction gets mined and added to the blockchain.

***

### How to Redeem LBTC for BTC.b

#### Step 1: Initiate Redeem on the LBTC Contract

Open the LBTC contract in explorer:

<https://katanascan.com/address/0xecAc9C5F704e954931349Da37F60E39f515c11c1#writeProxyContract>

Open the **Contract** tab and select **Write as Proxy**.

Click on **Connect to Web3** to connect to the wallet. Make sure that connection established is with the correct address (the one you have LBTC on).

![](https://1161095600-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl7wTwC5uXA2Yk5tvZMBg%2Fuploads%2FykfqSD3F9BY7YjijjwJ2%2F08-lbtc-katana-connected.png?alt=media\&token=01fa1fe7-d84a-425a-b497-97e6aafbe943)

Navigate to the function **25. redeem (0xdb006a75)** and enter amount of LBTC you want to redeem (convert to BTC.b).

The amount should be in satoshis.

Click on the **Write** button, check transaction details in your wallet app and accept if everything is correct.

#### Step 2: Get Authorization Signatures to Mint BTC.b

LBTC must be unstaked from Bitcoin Secured Networks before BTC.b is available. This process takes up to 8 days to complete (availability based on working capital). After this period of time, Lombard's Security Consortium notarizes the request and issues a payload and proof on Lombard Ledger (Lombard's appchain).

In order to get proof and payload for your transaction from Step 1, navigate to:

```
https://mainnet.prod.lombard.finance/api/v1/address/unstakes/{address}?show_redeems=true&to_native=true
```

with your address. e.g.

```
https://mainnet.prod.lombard.finance/api/v1/address/unstakes/0x659579f1460c38c3ce3288b47b074646cef855fc?show_redeems=true&to_native=true
```

**Example API response:**

```json
{
  "tx_hash": "0xb2ce453e884d4bc85d23c64f4ceea52de2fda1f00535a1ac2a3b8bc0fbddd2ee",
  "blockchain": "BLOCKCHAIN_KATANA",
  "block_height": "16986686",
  "block_time": "1763729497",
  "from_address": "0x659579f1460c38c3ce3288b47b074646cef855fc",
  "output_script": "",
  "amount": "3300",
  "sanctioned": false,
  "to_address": "0x000000000000000000000000659579f1460c38c3ce3288b47b074646cef855fc",
  "to_chain": "BLOCKCHAIN_KATANA",
  "proof": "0x00000000000000000...851ddc6",
  "payload": "0xe288fb4a022d9999...0000000000000000",
  "notarization_status": "NOTARIZATION_STATUS_SESSION_APPROVED",
  "session_state": "SESSION_STATE_COMPLETED",
  "claim_tx": "0x9cd22474ce277f4c39c50f93b24807bf50af83bf98d9e06481608a0d8f9bcf47",
  "from_token_address": "0xecac9c5f704e954931349da37f60e39f515c11c1"
}
```

The `payload` and `proof` fields in a real response are much longer. Copy them in full.

Use payload and proof for Step 3.

> **Note:** Payload and proof is available only after Lombard notarized your transaction (JSON above should have `"notarization_status": "NOTARIZATION_STATUS_SESSION_APPROVED"`).

#### Step 3: Mint BTC.b

Open the BTC.b contract in explorer:

<https://katanascan.com/address/0xb0f70c0bd6fd87dbeb7c10dc692a2a6106817072#writeProxyContract>

Open the **Contract** tab and select **Write as Proxy**.

Click on **Connect to Web3** to connect to the wallet. Make sure that connection established is with the correct address (the one you have LBTC on).

![](https://1161095600-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl7wTwC5uXA2Yk5tvZMBg%2Fuploads%2FKEtiuPVxQ1guLtL0b9Va%2F10-btcb-katana-connected.png?alt=media\&token=707defee-fa1a-4a60-b3cd-3d5e40bb0613)

Navigate to the function **21. mintV1 (0x8307f738)**. Copy and paste payload and proof collected at previous step.

![](https://1161095600-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl7wTwC5uXA2Yk5tvZMBg%2Fuploads%2FyqOQ1W9zBKODT9TdKwd8%2F11-mintv1-btcb-filled.png?alt=media\&token=94eb5424-1865-43b8-a781-a4dfa7f6f012)

Click on the **Write** button, check transaction details in your wallet app and accept if everything is correct.

Corresponding amount of BTC.b will be minted on the address that initially had redeemed LBTCs as soon as the transaction gets mined and added to the blockchain.
