Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,5 @@ yarn-debug.log*
yarn-error.log*

# Backups
docusaurus.config copy.js
docusaurus.config copy.js
_reference/
2 changes: 1 addition & 1 deletion docs/about/under-the-hood.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ The SMSG network enables BasicSwap to offer functionality beyond what atomic swa
* Automating complex swap procedures from the user's perspective
* Facilitating secure communication between independent blockchain networks

In practice, BasicSwap functions as a decentralized alternative to SWIFT—providing a messaging protocol that enables direct peer-to-peer communication for executing atomic swaps using official coin cores (Bitcoin Core, Litecoin Core, etc.).
In practice, BasicSwap functions as a decentralized alternative to SWIFT in that it provides a messaging protocol that enables direct peer-to-peer communication for executing atomic swaps using official coin cores (Bitcoin Core, Litecoin Core, etc.) or [Electrum light wallets](/docs/user-guides/lightweight-modes) for supported coins (currently Bitcoin and Litecoin), or [remote nodes](/docs/user-guides/lightweight-modes#monero-remote-nodes) for Monero and Wownero.

It's important to understand that BasicSwap itself does not process, initiate, or execute the actual swaps. Its role is strictly limited to enabling secure communication between trading parties and simplifying the complex process of performing atomic swaps across different blockchains.

Expand Down
8 changes: 4 additions & 4 deletions docs/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -170,17 +170,17 @@ BasicSwap's primary function is to help users establish a secure communication c
<Tabs>
<TabItem value="bitcoin" label="Bitcoin & Forks" default>
<ul>
<li><strong>Bitcoin (BTC)</strong> - The original cryptocurrency</li>
<li><strong>Litecoin (LTC)</strong> - Faster and cheaper Bitcoin alternative with privacy</li>
<li><strong>Bitcoin (BTC)</strong> - The original cryptocurrency (supports <a href="/docs/user-guides/lightweight-modes">light wallet mode</a>)</li>
<li><strong>Litecoin (LTC)</strong> - Faster and cheaper Bitcoin alternative with privacy (supports <a href="/docs/user-guides/lightweight-modes">light wallet mode</a>)</li>
<li><strong>Bitcoin Cash (BCC)</strong> - Bitcoin fork focused on payments</li>
<li><strong>Dogecoin (DOGE)</strong> - Bitcoin with dogs</li>
<li><strong>Namecoin (NMC)</strong> - Decentralized DNS and public key infrastructure</li>
</ul>
</TabItem>
<TabItem value="privacy" label="Privacy Coins">
<ul>
<li><strong>Monero (XMR)</strong> - Leading privacy-focused cryptocurrency</li>
<li><strong>Wownero (WOW)</strong> - Monero fork with experimental features</li>
<li><strong>Monero (XMR)</strong> - Leading privacy-focused cryptocurrency (supports <a href="/docs/user-guides/lightweight-modes#monero-remote-nodes">remote node mode</a>)</li>
<li><strong>Wownero (WOW)</strong> - Monero fork with experimental features (supports <a href="/docs/user-guides/lightweight-modes#monero-remote-nodes">remote node mode</a>)</li>
<li><strong>Particl (PART)</strong> - Privacy coin with marketplace features</li>
<li><strong>Firo (FIRO)</strong> - Privacy coin using zero-knowledge proofs</li>
<li><strong>PIVX (PIVX)</strong> - Proof-of-stake privacy coin</li>
Expand Down
26 changes: 20 additions & 6 deletions docs/user-guides/enable-disable-coins.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
sidebar_position: 3
sidebar_position: 4
title: Enable or Disable Coins
description: "How to enable or disable coins on your BasicSwap DEX instance"
---
Expand Down Expand Up @@ -31,11 +31,18 @@ If you've built BasicSwap using the Docker method, follow these steps to enable
```

2. Add a cryptocurrency to your BasicSwap instance by running the command below, replacing bitcoin with the specific coin you wish to enable after the `--addcoin` parameter.

```bash title="Terminal"
docker-compose run --rm swapclient basicswap-prepare --datadir=/coindata --addcoin=bitcoin
```

:::tip
When adding **Bitcoin** or **Litecoin**, you can enable [Electrum light wallet mode](/docs/user-guides/lightweight-modes) to avoid downloading their full blockchains. Add `--btc-mode=electrum` or `--ltc-mode=electrum` to the command:
```bash title="Terminal"
docker-compose run --rm swapclient basicswap-prepare --datadir=/coindata --addcoin=bitcoin --btc-mode=electrum
```
:::

:::tip
You can copy an existing pruned datadir (excluding `bitcoin.conf` and any wallets) over to `$COINDATA_PATH/bitcoin`. Remove any existing wallets after copying over a pruned chain, or the Bitcoin daemon won't start.
:::
Expand Down Expand Up @@ -74,14 +81,21 @@ Linux users can simplify the process of adding and removing coins with community
1. Stop BasicSwap completely.

2. Add a cryptocurrency to your BasicSwap instance by running the command below, replacing bitcoin with the specific coin you wish to enable after the `--addcoin` parameter.
```bash title="Terminal"

```bash title="Terminal"
basicswap-prepare --usebtcfastsync --datadir=$SWAP_DATADIR --addcoin=bitcoin
```

:::tip
When adding **Bitcoin** or **Litecoin**, you can enable [Electrum light wallet mode](/docs/user-guides/lightweight-modes) to avoid downloading their full blockchains. Add `--btc-mode=electrum` or `--ltc-mode=electrum` to the command:
```bash title="Terminal"
basicswap-prepare --datadir=$SWAP_DATADIR --addcoin=bitcoin --btc-mode=electrum
```
:::

3. Apply the changes to your BasicSwap instance.
```bash title="Terminal"

```bash title="Terminal"
. $SWAP_DATADIR/venv/bin/activate && python -V
```

Expand Down
70 changes: 43 additions & 27 deletions docs/user-guides/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ Watch particularly for permission issues, dependency failures, or network connec

## Install Using Docker

BasicSwap is currently in beta stage and doesn't offer pre-compiled executables or integrations with third-party services (upcoming). You'll need to compile the source code and run a full node on your device.
BasicSwap is currently in beta stage and doesn't offer pre-compiled executables or integrations with third-party services (upcoming). You'll need to compile the source code and run a full node on your device for most coins. However, **Bitcoin and Litecoin** support an optional [Electrum light wallet mode](/docs/user-guides/lightweight-modes) that eliminates the need to sync their full blockchains, while **Monero** and **Wownero** support [remote node mode](/docs/user-guides/lightweight-modes#monero-remote-nodes) to avoid running a local daemon.

### Install Docker

Expand Down Expand Up @@ -230,24 +230,28 @@ After creating BasicSwap's Docker image, it's time to configure it to your prefe

5. Determine whether you want to use fast synchronization for the Bitcoin blockchain by including the `--usebtcfastsync` parameter. Fast sync uses checkpoints to reduce initial setup time significantly.

6. Append `--client-auth-password=<YOUR_PASSWORD>` to the below command to optionally enable client authentication to protect your web UI and API port access from unauthorized access.
6. **(Optional)** To use [Electrum light wallets](/docs/user-guides/lightweight-modes) instead of full nodes for Bitcoin and/or Litecoin, add the `--light` flag (enables Electrum for all supported coins) or use per-coin flags like `--btc-mode=electrum` or `--ltc-mode=electrum`.

7. **(Optional)** To use a [remote Monero node](/docs/user-guides/lightweight-modes#monero-remote-nodes) instead of running a local Monero daemon, prefix the command with `XMR_RPC_HOST` and `XMR_RPC_PORT` environment variables (e.g., `-e XMR_RPC_HOST="node2.monerodevs.org" -e XMR_RPC_PORT=18089`).

8. Append `--client-auth-password=<YOUR_PASSWORD>` to the below command to optionally enable client authentication to protect your web UI and API port access from unauthorized access.

9. Execute the following command to configure your BasicSwap, adjusting it according to your preferences as described above.

7. Execute the following command to configure your BasicSwap, adjusting it according to your preferences as described above.

```bash title="Terminal"
docker run --rm -t --name swap_prepare -v $COINDATA_PATH:/coindata i_swapclient basicswap-prepare --datadir=/coindata --withcoins=monero,bitcoin --htmlhost="0.0.0.0" --wshost="0.0.0.0" --xmrrestoreheight=$CURRENT_XMR_HEIGHT --usebtcfastsync
```

8. Note down and store the mnemonic provided by the above command in a safe place. It serves as your backup key and is valid for all enabled coins.
10. Note down and store the mnemonic provided by the above command in a safe place. It serves as your backup key and is valid for all enabled coins.

11. Note down the result of the following command, it will speed up the process of recovering your Monero if needed.

9. Note down the result of the following command, it will speed up the process of recovering your Monero if needed.

```bash title="Terminal"
echo $CURRENT_XMR_HEIGHT
```

10. **(Optional)** Adjust your timezone by specifying the appropriate `TZ` value in your `.env` file, located within the BasicSwap Docker directory. Use the `timedatectl list-timezones` command to view valid timezone options.
12. **(Optional)** Adjust your timezone by specifying the appropriate `TZ` value in your `.env` file, located within the BasicSwap Docker directory. Use the `timedatectl list-timezones` command to view valid timezone options.

```bash title="Terminal"
nano .env
```
Expand All @@ -256,15 +260,15 @@ After creating BasicSwap's Docker image, it's time to configure it to your prefe
</TabItem>
<TabItem value="linux" label="Linux">
1. Open a terminal.

2. Navigate to BasicSwap's Docker folder.

```bash title="Terminal"
cd basicswap/docker/
```

3. Set `xmrrestoreheight` to Monero's current chain height.

```bash title="Terminal"
CURRENT_XMR_HEIGHT=$(curl -s http://node2.monerodevs.org:18089/get_info | jq .height)
```
Expand All @@ -273,23 +277,27 @@ After creating BasicSwap's Docker image, it's time to configure it to your prefe

5. Determine whether you want to use fast synchronization for the Bitcoin blockchain by including the `--usebtcfastsync` parameter. Fast sync uses checkpoints to reduce initial setup time significantly.

6. Append `--client-auth-password=<YOUR_PASSWORD>` to the below command to optionally enable client authentication to protect your web UI and API port access from unauthorized access.
6. **(Optional)** To use [Electrum light wallets](/docs/user-guides/lightweight-modes) instead of full nodes for Bitcoin and/or Litecoin, add the `--light` flag (enables Electrum for all supported coins) or use per-coin flags like `--btc-mode=electrum` or `--ltc-mode=electrum`.

7. **(Optional)** To use a [remote Monero node](/docs/user-guides/lightweight-modes#monero-remote-nodes) instead of running a local Monero daemon, prefix the command with `XMR_RPC_HOST` and `XMR_RPC_PORT` environment variables (e.g., `-e XMR_RPC_HOST="node2.monerodevs.org" -e XMR_RPC_PORT=18089`).

8. Append `--client-auth-password=<YOUR_PASSWORD>` to the below command to optionally enable client authentication to protect your web UI and API port access from unauthorized access.

9. Execute the following command to configure your BasicSwap, adjusting it according to your preferences as described above.

7. Execute the following command to configure your BasicSwap, adjusting it according to your preferences as described above.

```bash title="Terminal"
docker run --rm -t --name swap_prepare -v $COINDATA_PATH:/coindata i_swapclient basicswap-prepare --datadir=/coindata --withcoins=monero,bitcoin --htmlhost="0.0.0.0" --wshost="0.0.0.0" --xmrrestoreheight=$CURRENT_XMR_HEIGHT --usebtcfastsync
```

8. Note down and store the mnemonic provided by the above command in a safe place. It serves as your backup key and is valid for all enabled coins.
10. Note down and store the mnemonic provided by the above command in a safe place. It serves as your backup key and is valid for all enabled coins.

11. Note down the result of the following command, it will speed up the process of recovering your Monero if needed.

9. Note down the result of the following command, it will speed up the process of recovering your Monero if needed.

```bash title="Terminal"
echo $CURRENT_XMR_HEIGHT
```

10. **(Optional)** Adjust your timezone by specifying the appropriate `TZ` value in your `.env` file, located within the BasicSwap Docker directory. Use the `timedatectl list-timezones` command to view valid timezone options.
12. **(Optional)** Adjust your timezone by specifying the appropriate `TZ` value in your `.env` file, located within the BasicSwap Docker directory. Use the `timedatectl list-timezones` command to view valid timezone options.

```bash title="Terminal"
nano .env
Expand Down Expand Up @@ -446,10 +454,14 @@ Once the installation is complete, configure BasicSwap according to your require

5. Determine whether you want to use fast synchronization for the Bitcoin blockchain by including the `--usebtcfastsync` parameter. Fast sync uses checkpoints to reduce initial setup time significantly.

6. Append `--client-auth-password=<YOUR_PASSWORD>` to the below command to optionally enable client authentication to protect your web UI and API port access from unauthorized access.
6. **(Optional)** To use [Electrum light wallets](/docs/user-guides/lightweight-modes) instead of full nodes for Bitcoin and/or Litecoin, add the `--light` flag (enables Electrum for all supported coins) or use per-coin flags like `--btc-mode=electrum` or `--ltc-mode=electrum`.

7. **(Optional)** To use a [remote Monero node](/docs/user-guides/lightweight-modes#monero-remote-nodes) instead of running a local Monero daemon, prefix the command with `XMR_RPC_HOST` and `XMR_RPC_PORT` environment variables (e.g., `XMR_RPC_HOST="node2.monerodevs.org" XMR_RPC_PORT=18089`).

8. Append `--client-auth-password=<YOUR_PASSWORD>` to the below command to optionally enable client authentication to protect your web UI and API port access from unauthorized access.

9. Execute the following command to configure your BasicSwap, adjusting it according to your preferences as described above.

7. Execute the following command to configure your BasicSwap, adjusting it according to your preferences as described above.

```bash title="Terminal"
basicswap-prepare --datadir=$SWAP_DATADIR --withcoins=monero,bitcoin --xmrrestoreheight=$CURRENT_XMR_HEIGHT --usebtcfastsync
```
Expand All @@ -458,13 +470,13 @@ Once the installation is complete, configure BasicSwap according to your require
1. Open a terminal.

2. Navigate to your BasicSwap folder.

```bash title="Terminal"
cd $HOME/coinswaps
```

3. Set `xmrrestoreheight` to Monero's current chain height.

```bash title="Terminal"
CURRENT_XMR_HEIGHT=$(curl -s http://node2.monerodevs.org:18089/get_info | jq .height)
```
Expand All @@ -473,10 +485,14 @@ Once the installation is complete, configure BasicSwap according to your require

5. Determine whether you want to use fast synchronization for the Bitcoin blockchain by including the `--usebtcfastsync` parameter. Fast sync uses checkpoints to reduce initial setup time significantly.

6. Append `--client-auth-password=<YOUR_PASSWORD>` to the below command to optionally enable client authentication to protect your web UI and API port access from unauthorized access.
6. **(Optional)** To use [Electrum light wallets](/docs/user-guides/lightweight-modes) instead of full nodes for Bitcoin and/or Litecoin, add the `--light` flag (enables Electrum for all supported coins) or use per-coin flags like `--btc-mode=electrum` or `--ltc-mode=electrum`.

7. **(Optional)** To use a [remote Monero node](/docs/user-guides/lightweight-modes#monero-remote-nodes) instead of running a local Monero daemon, prefix the command with `XMR_RPC_HOST` and `XMR_RPC_PORT` environment variables (e.g., `XMR_RPC_HOST="node2.monerodevs.org" XMR_RPC_PORT=18089`).

8. Append `--client-auth-password=<YOUR_PASSWORD>` to the below command to optionally enable client authentication to protect your web UI and API port access from unauthorized access.

9. Execute the following command to configure your BasicSwap, adjusting it according to your preferences as described above.

7. Execute the following command to configure your BasicSwap, adjusting it according to your preferences as described above.

```bash title="Terminal"
basicswap-prepare --datadir=$SWAP_DATADIR --withcoins=monero,bitcoin --xmrrestoreheight=$CURRENT_XMR_HEIGHT --usebtcfastsync
```
Expand Down
2 changes: 1 addition & 1 deletion docs/user-guides/integrate-coin.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
sidebar_position: 8
sidebar_position: 9
title: Integrate a Coin
description: "How to add your coin to the BasicSwap DEX"
---
Expand Down
Loading