diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 0000000..6fb09f5
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,24 @@
+/** @type {import('eslint').Linter.Config} */
+module.exports = {
+ root: true,
+ extends: ['plugin:@docusaurus/recommended'],
+ env: {
+ browser: true,
+ node: true,
+ es2022: true,
+ },
+ parserOptions: {
+ ecmaVersion: 'latest',
+ sourceType: 'module',
+ ecmaFeatures: {
+ jsx: true,
+ },
+ },
+ ignorePatterns: [
+ 'build/',
+ '.docusaurus/',
+ 'node_modules/',
+ 'working-docs/',
+ 'gitbook-src/',
+ ],
+};
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 5acc600..75d8ccd 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -19,6 +19,8 @@ jobs:
cache: npm
- name: Install dependencies
run: npm ci
+ - name: Lint
+ run: npm run lint
- name: Build website
run: npm run build
- name: Upload Build Artifact
diff --git a/.github/workflows/test-deploy.yml b/.github/workflows/test-deploy.yml
index 3e7dbd5..eca139e 100644
--- a/.github/workflows/test-deploy.yml
+++ b/.github/workflows/test-deploy.yml
@@ -23,5 +23,7 @@ jobs:
cache: npm
- name: Install dependencies
run: npm ci
+ - name: Lint
+ run: npm run lint
- name: Test build website
run: npm run build
diff --git a/AGENTS.md b/AGENTS.md
index 9f78fdb..97f2a63 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -140,5 +140,5 @@ When continuing polish / visual QA (see `working-docs/HANDOVER-HARDENING.md` if
```powershell
git status -sb
npm run build
-# spot-check: npm start → /, /masq-web3-privacy-browser, /resources/installer-checksums
+# spot-check: npm start → /, /masq-privacy-browser, /resources/installer-checksums
```
diff --git a/docs/advanced-use/cli-startup-guides/index.mdx b/docs/advanced-use/cli-startup-guides/index.mdx
index 810a875..462fb16 100644
--- a/docs/advanced-use/cli-startup-guides/index.mdx
+++ b/docs/advanced-use/cli-startup-guides/index.mdx
@@ -1,6 +1,8 @@
+import DocCardList from '@theme/DocCardList';
+
# CLI Startup Guides
-This are targeting to Quality Assurance (QA) testing for our development, but will be helpful for you to prepare your machine to run from Command Line (CLI)
+These guides target Quality Assurance (QA) testing for our development, but they also help you prepare a machine to run MASQ from the command line (CLI).
:::warning
@@ -8,4 +10,6 @@ Running MASQ from CLI **will** require technical knowledge and possibly adjustme
MASQ and the developers are not responsible for any issues that arise from user changes to their environment or machine!
-:::
\ No newline at end of file
+:::
+
+
diff --git a/docs/advanced-use/cli-startup-guides/masq-cli-linux.mdx b/docs/advanced-use/cli-startup-guides/masq-cli-linux.mdx
index 630d611..66de6b7 100644
--- a/docs/advanced-use/cli-startup-guides/masq-cli-linux.mdx
+++ b/docs/advanced-use/cli-startup-guides/masq-cli-linux.mdx
@@ -25,7 +25,7 @@ If you have previously tested MASQ Node you need to DELETE ALL OLD NODE DATABASE
Open the file manager and create a new folder named Masq in your home directory
-
+
Download the Binaries for the Masq software:
@@ -33,7 +33,7 @@ Download the Binaries for the Masq software:
Binaries are different versions of the software that change each time a new feature or fix is added. The simplest way to get started it to pick a set of Binaries which show a green tick like this
-
+
:::tip
@@ -53,17 +53,17 @@ Click on the Ubuntu version and the download will begin.
Go to downloads and copy and paste the downloaded zip file into your previously created Masq folder. You should now have this
-
+
1. Right click the file and select extract here and you will get a folder named Build results ubuntu-latest go in the folder then generated and then bin and you will see this
-
+
These are the files you want for testing. Copy them and paste into your Masq folder.
You should see something like this
-
+
Now we have the Binaries and we are ready to start using terminal
@@ -71,11 +71,11 @@ Now we have the Binaries and we are ready to start using terminal
Now right click anywhere in the folder to open the drop down box in there choose Open in terminal or alternatively you can press Ctrl + Alt + T to open the terminal.
-
+
We are now in the terminal, it should show that we are in the masq folder, if you are not in the masq folder type cd Masq and it should bring you right into the Masq folder
-
+
### Give Execute Permissions to MASQ Binaries
@@ -91,7 +91,7 @@ Now it's time to start the MASQ Daemon (`MASQNode`):
You should see this:
-
+
Now open another terminal window **(do not close the daemon window)** in the same manner as before - here we will now start the `masq` interactive tool
@@ -100,13 +100,13 @@ Now open another terminal window **(do not close the daemon window)** in the sam
We are now in **interactive mode** which shows a blinking curser after `masq>` and this makes your life easier (you can stay in standard mode but that requires a few more commands and you will get to know this as you test)
-
+
Now type: `setup` and press enter
You are now in the setup mode where you can configure the nodes many settings
-
+
A breakdown of what these are and how you configure them can be found [here](https://github.com/MASQ-Project/Node/blob/master/README.md#run-masq-node-locally)
@@ -130,13 +130,12 @@ In order to specify a ip type `setup --ip 1.2.3.4`and press enter
You should see this:
-
+
\
This shows us the setup list again but now the **STATUS** alongside ip is `Set` to 1.2.3.4 and the `ERRORS` message has disappeared.
-## Starting `masq` Node Process
-
+## Starting `masq` Node Process \{#starting-masq-node-process}
We can now start the Node by typing… Wait for it. `start`
:::info
@@ -147,7 +146,7 @@ We can now start the Node by typing… Wait for it. `start`
If you have followed the guide correctly you should see something like this in the terminal window
-
+
You should also see some action on the Daemon CLI screen which we opened, started and then left alone.
diff --git a/docs/advanced-use/cli-startup-guides/masq-cli-windows.mdx b/docs/advanced-use/cli-startup-guides/masq-cli-windows.mdx
index 6aed56e..525e4b2 100644
--- a/docs/advanced-use/cli-startup-guides/masq-cli-windows.mdx
+++ b/docs/advanced-use/cli-startup-guides/masq-cli-windows.mdx
@@ -27,13 +27,13 @@ If you have previously tested MASQ Node you need to DELETE ALL OLD NODE DATABASE
Create a new folder called Masq on your C drive:\
\
-\
+
Navigate to your `C:` drive
Right click the mouse, Scroll down to New then Folder and click it.\
Rename that folder `Masq`
-
+
Download the latest Binaries for the **MASQ Node** software here:
@@ -49,15 +49,15 @@ Go to downloads and cut/paste the downloaded zip file into your recently created
You should now have this:
-
+
Right click the file, select **Extract here** and you will get the below:
-
+
These are the files you want for testing. Copy and paste into your `Masq` folder. You should see something like this:
-
+
Now we have the Binaries (MASQNode and masq) and we are ready to start using CLI.
@@ -67,11 +67,11 @@ To run MASQ Node from CLI you will need to use a command line console or termina
Using the Windows search bar type: `command`
-
+
On the right hand side, click 'Run as Administrator' and click **Yes** on the confirmation message that pops up. You should see this:
-
+
We now have to navigate to the Masq folder you created earlier using this CLI. These commands assume you have created the Masq folder in the same location as I did above. Creating that folder elsewhere will mean the below command may not work and you will have to navigate to the Masq folder in the location you created it.
@@ -82,7 +82,7 @@ We now have to navigate to the Masq folder you created earlier using this CLI. T
CLI should now show you are in the right place:
-
+
## Initialize the Daemon (MASQNode binary)
@@ -102,13 +102,13 @@ You may get a pop up window where your Antivirus scans the file, wait for that t
:::
-
+
We now need to open another CLI window as we did before, but this time do not type anything yet.
You should now have 2 CLI open that look like this:
-
+
:::info
@@ -125,7 +125,7 @@ Press **Enter**
We are now in interactive mode which makes your life easier (you can stay in standard mode but that requires a few more commands and you will get to know this as you test).
-
+
## Setting Configuration for MASQ Node
@@ -134,7 +134,7 @@ Type: `setup`
Press **Enter**\
You should see the below:
-
+
A breakdown of what these are and how you configure them can be found below:
@@ -158,7 +158,7 @@ Press **Enter**
You should see this:
-
+
This shows us the setup list again but now the **STATUS** alongside ip is `Set` to 1.2.3.4 and the `ERRORS` message has disappeared.
@@ -175,7 +175,7 @@ In Windows, you may see an admin prompt asking you to allow 'masqnode' process t
Press **Enter**\
If you have followed all the above correctly you should see something like this:
-
+
You should also see some action on the Daemon CLI screen which we opened, started and then left alone.
diff --git a/docs/advanced-use/common-challenges/index.mdx b/docs/advanced-use/common-challenges/index.mdx
index 7e2ac5b..b6c7838 100644
--- a/docs/advanced-use/common-challenges/index.mdx
+++ b/docs/advanced-use/common-challenges/index.mdx
@@ -1 +1,7 @@
+import DocCardList from '@theme/DocCardList';
+
# Common Challenges
+
+Troubleshooting tips for issues that often block MASQ Node from starting or connecting — firewall rules, Port 53 conflicts, and Linux `--real-user` permissions.
+
+
diff --git a/docs/advanced-use/common-challenges/untitled-3.mdx b/docs/advanced-use/common-challenges/port-53-problems.mdx
similarity index 91%
rename from docs/advanced-use/common-challenges/untitled-3.mdx
rename to docs/advanced-use/common-challenges/port-53-problems.mdx
index f983f6f..bdf35eb 100644
--- a/docs/advanced-use/common-challenges/untitled-3.mdx
+++ b/docs/advanced-use/common-challenges/port-53-problems.mdx
@@ -1,7 +1,6 @@
# Port 53 Problems? (usually in Windows)
-## Identification
-
+## Identification \{#identification}
When you try to start your MASQ Node, do you see a message that looks something like one of these?
```
thread 'main' panicked at 'Cannot bind socket to V4(0.0.0.0:53): Os { code: 10048, kind: AddrInUse, message: "Only one usage of each socket address (protocol/network address/port) is normally permitted." }'
@@ -16,34 +15,27 @@ If you see both of those parts in the message, then you are definitely afflicted
If you don't care about what the problem is or why it happens, and you just want to know how to fix it, skip down to the **Solutions** section.
-## Background
-
-### Windows
-
+## Background \{#background}
+### Windows \{#windows}
Windows includes a service called Internet Connection Sharing (ICS) that listens on port 53. It's a somewhat dated service from the days before widespread WiFi availability that allows you to make your Windows machine a nexus through which other people can connect their machines to the Internet. If you're not already aware that you're doing this, you probably don't need to have ICS active.
-### Linux
-
+### Linux \{#linux}
Some Linux distributions (we know about Ubuntu Desktop >=16.04 and some versions of Mint, but there are probably others) come with an installed utility called `dnsmasq`. This utility is intended to let folks with small home LANs give intelligible names to their computers, printers, TVs, DVRs, mobile devices, and other Internet-enabled devices, rather than having to reference them by numeric IP address. You may instead have a distribution (for example Ubuntu 18.04) that uses `systemd-resolved` for this purpose. We'll generically call this dns caching.
DNS caching works by putting up a small DNS server on your local machine that fields name-resolution requests for things like "LivingRoomTV" and returns IP addresses like 192.168.0.47. This means that when you want to control your TV from upstairs, or watch its video feed, or whatever it allows you to do remotely, you can call it "LivingRoomTV" (or select it from a list) rather than having to remember its IP address (which may change unexpectedly).
-### In General
-
+### In General \{#in-general}
Any software that uses a DNS server to convert an intelligible name into an IP address will contact that DNS server on Port 53; it's part of the widely-accepted DNS protocol. Therefore, every DNS server must listen on Port 53 for requests if it expects to receive any.
Unfortunately, only one server can listen on Port 53 (or any port) at one time.
-## The Problem
-
+## The Problem \{#the-problem}
MASQ Node also includes a small DNS server that allows applications on your computer to send and receive data on the MASQ Network. Since this is a DNS server, it must also listen on Port 53. This means that a DNS-subverting MASQ Node and preexisting port 53 software are irredeemably inimical to one another and cannot ever operate simultaneously on the same computer.
Eventually, MASQ Node will be able to operate in regimes other than DNS subversion, which means that under some circumstances, and in the presence of certain sacrifices, it will be compatible with other port 53 software; but that's in the future, not the present.
-## Solutions
-
-### Windows
-
+## Solutions \{#solutions}
+### Windows \{#windows-1}
Internet Connection Sharing can be an annoyance. We had problems with it starting spontaneously after we stopped it, and reenabling itself and starting after we disabled it, and coming back into action over a reboot, in all cases monopolizing port 53 and preventing MASQ Node from starting. However, the solution turned out to be simple: we just installed all pending updates (in our case, they ended at version 1809), and the problem went away. We disabled ICS, and it stayed disabled.
ICS can be enabled and disabled for individual network interfaces, but you'll need to disable it across your entire system to free up port 53 for MASQ Node.
@@ -52,16 +44,13 @@ To do so, press your Windows button and type Services. Scroll down to where you
If it is, then right-click on the Internet Connection Sharing item and choose Properties. Pull down the "Startup type" list and choose "Disabled" so that it can't be restarted once it stops. Now click the "Stop" button to kill the service. You'll get a dialog box with a progress bar; the service should stop fairly quickly. After it does, click "OK" and verify that the service list now shows the service as "Disabled" in the "Startup Type" column, with no value at all in the "Status" column. If that's the case, you've successfully disabled ICS.
-### Linux
-
+### Linux \{#linux-1}
We know of two reasonable solutions to the **Port 53 Problem** in Linux: a complicated and annoying one that allows you to keep using dns caching, and a much simpler and easier one that consists of disabling dns caching but will no longer allow you to use intelligible names for the devices on your LAN.
-#### Complicated And Annoying: Docker
-
+#### Complicated And Annoying: Docker \{#complicated-and-annoying-docker}
This solution is too complex to detail here, but in broad strokes it involves running a Docker container that contains a version of Linux that does _not_ have the **Port 53 Problem**, starting the MASQ Node and a browser in that container, and having the browser display its window on the X11 server running on your host machine. We at MASQ have used this solution in the past, and you can see how we've done it by looking in our [source code](https://github.com/MASQ-Project/Node/tree/master/node/docker/linux_node). After installing Docker on your machine, you may be able to put together a similar solution.
-#### Simple But Incompatible: Disable DNS Caching
-
+#### Simple But Incompatible: Disable DNS Caching \{#simple-but-incompatible-disable-dns-caching}
**Ubuntu 18.04**
Disable the service:
diff --git a/docs/advanced-use/common-challenges/untitled-2.mdx b/docs/advanced-use/common-challenges/user-permissions-real-user.mdx
similarity index 86%
rename from docs/advanced-use/common-challenges/untitled-2.mdx
rename to docs/advanced-use/common-challenges/user-permissions-real-user.mdx
index 7302c15..69979e5 100644
--- a/docs/advanced-use/common-challenges/untitled-2.mdx
+++ b/docs/advanced-use/common-challenges/user-permissions-real-user.mdx
@@ -1,6 +1,6 @@
-# User permissions --real-user
+# User permissions (`--real-user`)
-## User permissions --real-user
+## User permissions `--real-user`
The Node will refuse to run unless it can relinquish root privileges once it has opened its ports. Long-running root-privileged servers with network access are a serious security risk.
diff --git a/docs/advanced-use/index.mdx b/docs/advanced-use/index.mdx
index 734cd55..a08b640 100644
--- a/docs/advanced-use/index.mdx
+++ b/docs/advanced-use/index.mdx
@@ -1 +1,7 @@
-# 👨💻 Advanced Use
+import DocCardList from '@theme/DocCardList';
+
+# Advanced Use
+
+Guides for running MASQ Node from the command line, configuring wallets and networking, and working around common setup issues. Intended for advanced users who are comfortable with terminals and custom network settings.
+
+
diff --git a/docs/advanced-use/masq-node-from-cli/cli-faq.mdx b/docs/advanced-use/masq-node-from-cli/cli-faq.mdx
index 7cb39fd..b720e40 100644
--- a/docs/advanced-use/masq-node-from-cli/cli-faq.mdx
+++ b/docs/advanced-use/masq-node-from-cli/cli-faq.mdx
@@ -12,8 +12,7 @@ The code is open sourced on [GitHub](https://github.com/MASQ-Project/Node).
Also there are dedicated channels in our [Discord](https://discord.gg/cdUsjBQrgq), where users can discuss running in CLI.
-## What do I need to run MASQ Node from CLI?
-
+## What do I need to run MASQ Node from CLI? \{#what-do-i-need-to-run-masq-node}
You will need the following, and some knowledge of editing your router settings if you intend to contribute serving bandwidth to the network:
* **ETH on Base** for gas (native ETH)
@@ -22,8 +21,7 @@ You will need the following, and some knowledge of editing your router settings
* Blockchain Service Endpoint - free, freemium or premium ([see this page for info](../blockchain-service-endpoint))
* Node ID (also called a _node neighbor descriptor_)
-## Why are there several manual settings?
-
+## Why are there several manual settings? \{#why-are-there-several-manual-settings}
You may not realize that even VPNs require entry configuration!
The reason for the Node descriptor is that the network is peer to peer – MASQ Network is not centralized.
@@ -32,8 +30,7 @@ Even blockchains work in similar ways.
As the Node software develops, the development team and the open source community will make things easier to operate.
-## Where can I get a Descriptor?
-
+## Where can I get a Descriptor? \{#where-can-i-get-a-descriptor}
You can get descriptors from other community members. MASQ team will likely launch some public nodes during test phases.
When testing is made public, the MASQ team will also publish an API, which will be able to provide validated Node , and submit your own descriptors for others to connect to.
@@ -50,8 +47,7 @@ Make sure there are no spaces in front or at the end.
Descriptors are not backwards compatible with previous test versions.
-## How do I forward ports?
-
+## How do I forward ports? \{#how-do-i-forward-ports}
You will need to forward the one port assigned by Node when you first connect.
Its located in your descriptor that appears on the GUI Dashboard - it is the last 4-5 digits:
@@ -64,8 +60,7 @@ There are many resources out there, but this website has a very comprehensive li
[https://portforward.com/router.htm](https://portforward.com/router.htm)
-## So Seed Words = Mnemonic Phrase??
-
+## So Seed Words = Mnemonic Phrase?? \{#so-seed-words-mnemonic-phrase}
Yes!
Your Mnemonic phrase is the 12 or 24 seed words used to generate wallets. By specifying a derivation path, your seed words will be run through BIP39 algorithm to produce keypairs and wallet addresses.
@@ -74,8 +69,7 @@ This is why you should NEVER share your seed words with anyone, keep several har
**Please do not ask MASQ team to help you recover your seed words!**
-## I'm Confused about the Mnemonic **Pass**phrase!
-
+## I'm Confused about the Mnemonic **Pass**phrase! \{#im-confused-about-the-mnemonic-passphrase}
Simply put, the Mnemonic Passphrase is an extra optional seed word that can be added when generating wallets.
It is not required, but if it is included with the other 12 or 24 seed words, will create a whole different set of wallets.
@@ -84,8 +78,7 @@ You can leave this field blank when generating or recovering wallets, but once y
Please note that some Wallet Managers and Software like Metamask do not support mnemonic passphrases – Metamask only supports 12 seedword phrases in many of their software plugins and integrations
-## What's the wallet/db-password?
-
+## What's the wallet/db-password? \{#whats-the-wallet-db-password}
Security is paramount with MASQ Node, and is an integral tenet of the project. Thus, the if the Node software stores any private information inside it (like the consuming-wallet-private key info required) it is only stored locally on the machine under encryption.
The db-password is a personal password a user sets to encrypt your database stored locally on your machine. It is also loosely referred to as the 'Wallet Password'
@@ -96,8 +89,7 @@ In the code, the parameter for this is `--db-password`. It has no character requ
Each time you run Node, you will be prompted for your `db-password`, which will then decrypt your wallet information so Node can access the MASQ Network.
-## My Port 80 or Port 53 is Occupied - "ERROR Could not listen on Port"
-
+## My Port 80 or Port 53 is Occupied - "ERROR Could not listen on Port" \{#my-port-80-or-port-53-is-occupied-error-could-not-listen-on-port}
This error usually occurs when another process is occupying the network port on your machine. (such as Apache taking up port 80, another instance of MASQNode running)
Firstly, ensure the user you are using has permissions to bind or occupy network ports (from command line you can run from an elevated Command Terminal, or use sudo in a UNIX system)
diff --git a/docs/advanced-use/masq-node-from-cli/untitled-1.mdx b/docs/advanced-use/masq-node-from-cli/configuration-methods.mdx
similarity index 98%
rename from docs/advanced-use/masq-node-from-cli/untitled-1.mdx
rename to docs/advanced-use/masq-node-from-cli/configuration-methods.mdx
index 0969a09..09a17f4 100644
--- a/docs/advanced-use/masq-node-from-cli/untitled-1.mdx
+++ b/docs/advanced-use/masq-node-from-cli/configuration-methods.mdx
@@ -14,16 +14,13 @@ Any piece of configuration information can be provided through any of these chan
Configuration information provided in the environment will supersede conflicting information provided in the configuration file, and information provided on the command line will supersede conflicting information from both of the other sources.
-### Command line
-
+### Command line \{#command-line}
This is the easiest. In this file, all our documentation of the configuration options shows you how to provide them on the command line. Keep in mind, though, that command lines tend to be preserved by the operating system for display to users who want to see process lists. Therefore, the command line may not be the best place to specify sensitive or secret configuration information. (Nothing prevents you from doing this, though, so be careful.)
-### Shell Environment
-
+### Shell Environment \{#shell-environment}
If you see that the command line accepts a parameter such as `--clandestine-port 1234`, then you can supply that same parameter in the environment by setting the MASQ\_CLANDESTINE\_PORT environment variable to 1234. Note that you need to remove the initial `--` prefix, convert the name to all uppercase, and add a MASQ prefix to namespace the parameter against other applications that might look for a similar variable.
-#### Configuration File
-
+#### Configuration File \{#configuration-file}
The configuration file, by default, resides in the data directory (see the `--data-directory` parameter for further information) and is named config.toml. If you leave the configuration file unspecified, this is where MASQ Node will look for it. If it's found, it will be used; if it's not, MASQ Node will act as though it had been found but empty. But if you want to use a different file, specify it either as `--config-file` on the command line or as MASQ\_CONFIG\_FILE in the environment. If you specify a relative filename, MASQ Node will look for the configuration file in the data directory; if you specify an absolute filename, MASQ Node will not use the data directory to find the configuration file. The configuration file should be in TOML format. TOML is a competitor to other formats like JSON and YAML, but the MASQ Node uses only scalar settings, not arrays or tables.
If you see that the command line accepts a parameter such as `--clandestine-port 1234`, then you can supply that same parameter in the configuration file by adding the following line to it: `clandestine-port = "1234"` Note that you need to remove the initial `--`prefix. All the configuration parameters will work if you supply their values as double-quoted strings, but if they're numeric values, you can supply them numerically as well--for example, `clandestine-port = 1234` Keep in mind that a configuration file is persistent information: anyone who has or can gain read access to the file can read whatever's in it, whether MASQ Node is running or not. Therefore, the configuration file may not be the best place to specify sensitive or secret configuration information. _(Nothing prevents you from doing this, though, so be careful.)_
diff --git a/docs/advanced-use/masq-node-from-cli/index.mdx b/docs/advanced-use/masq-node-from-cli/index.mdx
index d0b9cd7..42a6619 100644
--- a/docs/advanced-use/masq-node-from-cli/index.mdx
+++ b/docs/advanced-use/masq-node-from-cli/index.mdx
@@ -14,20 +14,13 @@ The code is open sourced on [GitHub](https://github.com/MASQ-Project/Node) - lat
:::
-[cli-faq.md](cli-faq)
-
-[masq-interface.md](masq-interface)
-
-[untitled-1.md](untitled-1)
-
-[cli-startup-guides](../cli-startup-guides)
-
-[setting-masq-wallets.md](../setting-masq-wallets)
-
-[blockchain-service-endpoint.md](../blockchain-service-endpoint)
-
-[port-forwarding.md](../port-forwarding)
-
-[common-challenges](../common-challenges)
+- [CLI FAQ](/advanced-use/masq-node-from-cli/cli-faq)
+- [MASQ Interface](/advanced-use/masq-node-from-cli/masq-interface)
+- [Configuration methods](/advanced-use/masq-node-from-cli/configuration-methods)
+- [CLI startup guides](/advanced-use/cli-startup-guides)
+- [Setting MASQ wallets](/advanced-use/setting-masq-wallets)
+- [Blockchain service endpoint](/advanced-use/blockchain-service-endpoint)
+- [Port forwarding](/advanced-use/port-forwarding)
+- [Common challenges](/advanced-use/common-challenges)
***
diff --git a/docs/advanced-use/port-forwarding.mdx b/docs/advanced-use/port-forwarding.mdx
index 9db839d..2b5ccfd 100644
--- a/docs/advanced-use/port-forwarding.mdx
+++ b/docs/advanced-use/port-forwarding.mdx
@@ -30,4 +30,6 @@ Once you have completed these steps you can check to see if your port is indeed
[Open link](https://ismyportopen.com/)
-## See Also [firewall-exceptions.md](common-challenges/firewall-exceptions.md "mention")
\ No newline at end of file
+## See Also
+
+[Firewall exceptions](./common-challenges/firewall-exceptions)
\ No newline at end of file
diff --git a/docs/advanced-use/setting-masq-wallets.mdx b/docs/advanced-use/setting-masq-wallets.mdx
index ba5578d..3fd720c 100644
--- a/docs/advanced-use/setting-masq-wallets.mdx
+++ b/docs/advanced-use/setting-masq-wallets.mdx
@@ -13,7 +13,7 @@ There are two Node **commands** available to load wallets into MASQ Node:
:::info
-You won't be able to use the `generate-wallets` or `recover-wallets` commands if the database already has wallet information, or if the database doesn't have a password set [(see`db-password`](masq-node-from-cli/cli-faq#whats-the-wallet-db-password) and [setting password](masq-node-from-cli/configuring-masq-node#configuring-using-commands) )
+You won't be able to use the `generate-wallets` or `recover-wallets` commands if the database already has wallet information, or if the database doesn't have a password set ([see db-password](./masq-node-from-cli/cli-faq#whats-the-wallet-db-password) and [setting password](./masq-node-from-cli/configuring-masq-node#configuring-using-commands)).
:::
diff --git a/docs/core-concepts/cores-packages/index.mdx b/docs/core-concepts/cores-packages/index.mdx
index 1d27f2d..5caaecb 100644
--- a/docs/core-concepts/cores-packages/index.mdx
+++ b/docs/core-concepts/cores-packages/index.mdx
@@ -1,3 +1,5 @@
+import DocCardList from '@theme/DocCardList';
+
# CORES Packages
A CORE(s) package is a series of instructions bundled in a way that allows each node within the network to receive just enough information to make a decision on how to handle a request. CORES stands for **C**lient-**O**rigin-**R**elay-**E**xit-**S**erver
@@ -14,4 +16,6 @@ Each Node that handles a CORES package plays a specific role in the life-cycle o
* **Originator:** The identity of the originating request node.
* **Relay:** Identifies Nodes that will be used to hop along routes to get to its destination.
* **Exit:** The exit node will make the true web request on behalf of the originator and send it back along the route stack.
-* **Server:** Information about the server that is hosting the requested information.
\ No newline at end of file
+* **Server:** Information about the server that is hosting the requested information.
+
+
diff --git a/docs/core-concepts/encryption-methods-explained.mdx b/docs/core-concepts/encryption-methods-explained.mdx
index e0a43b3..92754c7 100644
--- a/docs/core-concepts/encryption-methods-explained.mdx
+++ b/docs/core-concepts/encryption-methods-explained.mdx
@@ -4,20 +4,17 @@ description: >-
# Encryption Methods
-## NONE
-
+## NONE \{#none}
A standard HTTP connection (characterized by a URL beginning with "http://") has no communications security at all. Not only can an eavesdropper see everything transmitted by both the browser and the webserver; but it is also trivially vulnerable to a man-in-the-middle attack where the server is replaced by an impostor that can capture, modify, and re-transmit traffic in both directions, deceiving both client and server into believing things that aren't true.
Node does not compete with this level of security. Node allows you to employ this level of security, but if this is what you want, it's best not to use Node at all.
-## ENCRYPTED
-
+## ENCRYPTED \{#encrypted}
TLS (characterized by a URL beginning with "https://") is an example of an encrypted communications link. An eavesdropper on an encrypted link would be able to tell where the browser was running, and where the server was running. While the eavesdropper would be able to see the data passing between the two, and perhaps make guesses about its nature based on how much of it there was in each direction, how it was divided into packets, and statistics about the timing, the data the eavesdropper could see would be unintelligible, because it was encrypted. Also, if the eavesdropper attempted to interfere with the data stream, even by changing as little as a single bit of it, the recipient of the changed data would instantly be able to tell that there had been tampering. Finally, since identities are guaranteed by digital certificates, an attacker could not credibly pretend to be the real server the browser was looking for unless he had stolen the real server's private signing key.
Node does not compete here either. Node allows--and encourages--encrypted connections, but it mainly addresses operations on a lower level.
-## UNTRACEABLE
-
+## UNTRACEABLE \{#untraceable}
An untraceable communications link generally consists of multiple point-to-point hops that are combined to look to browser and server like a single network connection. The idea is that an eavesdropper must not only contend with the fact that the data he sees is encrypted, but also the fact that just because it's coming across the link he's eavesdropping on doesn't mean its original source was one end of that link, or that its ultimate destination is the other end of that link. One end or the other, or both, could be just a relay, and the object of the eavesdropper's interest might lie beyond the relay. There's also the fact that a particular link may be in use by a number of different clients and servers simultaneously, so traffic analysis by packet sizes or timings is greatly complicated. Untraceable comm links trade off increased latency (because the traffic has to traverse more network links) for increased security.
VPNs operate at this level. VPNs usually provide two hops--one from your machine to a central VPN proxy, and one from the VPN proxy to whatever website you're accessing. Eavesdroppers on the server side of the proxy can tell what servers are being accessed, and eavesdroppers on the client side can tell who's using the VPN; but it's difficult to match users with servers.
@@ -27,8 +24,7 @@ Tor operates at this level, but a step beyond the VPN, in that the Tor network w
* even an evil, compromised exit Node still can't see your unencrypted data, the way a Tor exit node can; and
* it's much more difficult to hold you legally responsible for data that passes through your Node because you can prove you couldn't have seen it.
-## CLANDESTINE
-
+## CLANDESTINE \{#clandestine}
A clandestine communications link is one that makes it difficult for an eavesdropper to tell that an effort to hide communications is even being made. Traffic that might raise an attacker's eyebrows is disguised within traffic that's innocent and commonplace.
Both VPNs and Tor don't compete on this level: an attacker might not know the nature of the traffic he sees, and he might not be able to tell exactly where it's coming from or exactly where it's going, but he can definitely tell that it's VPN or Tor traffic and identify one or both ends of the link he's listening on as VPN or Tor.
diff --git a/docs/core-concepts/gossip-protocol.mdx b/docs/core-concepts/gossip-protocol.mdx
index 9da4289..859cd45 100644
--- a/docs/core-concepts/gossip-protocol.mdx
+++ b/docs/core-concepts/gossip-protocol.mdx
@@ -1,25 +1,21 @@
# Gossip Protocol
-## Gossip
-
+## Gossip \{#gossip}
At certain times, the Neighborhood will trigger a round of Gossip. When this happens, the Neighborhood will send a CORES package to each of the Nodes to which your Node has a direct TCP connection. **(Note: this will not cost you any routing MASQ, because since each of these Nodes is right next to you, no Node but your own sends any data on your behalf, and therefore there's nobody to pay.)** This CORES package will contain part of what your Node knows about the current state of the network, including what it has learned from other Nodes when they have sent Gossip to it. When you start a decentralized Node, it needs to know how to locate just one other Node in the network; but these Gossip messages are how it strengthens its position over time and becomes an integral participant in the Network.
Of course, since every Node--not just yours--sends Gossip periodically, information about your Node will eventually percolate out across the network, and information about the farthest reaches of the network will eventually reach your Node.
-## Constraints
-
+## Constraints \{#constraints}
In order for this process to work correctly, safely, and profitably, there are certain common-sense constraints on what a Node should and shouldn't do.
-### **Connection**
-
+### **Connection** \{#connection}
Perhaps chief among these constraints is that you should keep your Node available at the same public IP address as long as you can. Suppose your Node is listed by another Node's Neighborhood in a route for a CORES package, and by the time the CORES package arrives at your Node, your Node cannot be contacted in the way the originating Node's Neighborhood expected it to be. In that case, the CORES package will fail to route, and it will have to be sent again; but in order to keep itself from making the same mistake, the Node that failed to contact your Node will A) make a note not to route any more data through your Node, and B) Gossip this information ("Don't route data through me to him; I can't contact him") out to other Nodes. In this way, even a brief period of disconnection can seriously affect the amount of (potentially) profitable routing work your Node will be given.
Therefore, it's not a good idea (for example) to suspend a laptop on which a Node is running. It should stay running and connected as long and steadily as possible. It's also not a good idea to move a Node-running laptop to the service area of another access point with a different public IP address. We have plans to make certain public-IP changes survivable, but currently none are. If your public IP address changes, your Node traffic will drop to zero and stay there; you'll need to kill your Node and restart it to get it back on the Network.
As a matter of fact, the best computer on which to run a MASQ Node is one whose public IP _never_ changes: one whose ISP has granted a static IP address. Failing that, the best way to run a Node is on a non-portable computer that is using a wired Ethernet connection. (Sending data through a wire keeps it far more secure than broadcasting it through the air.) Failing _that,_ the best way would be on a WiFi-connected computer that may move around in the territory of a particular router, but doesn't leave it and is never suspended or hibernated.
-### **Warm-Up Delay**
-
+### **Warm-Up Delay** \{#warm-up-delay}
Each Node in the network will know the IP addresses of the few Nodes that are directly connected to it, but it will not know the IP addresses of any other Node in the network. There are a few security-related implications of this.
One thing it means is that it requires a route at least three hops long to make sure that none of the Nodes on the route knows all the IP addresses in it. Therefore, a route less than three hops long is intrinsically insecure.
@@ -30,12 +26,10 @@ Hence, the question of whether a Neighborhood can produce valid routes is a comp
All this means that it may take a significant interval of time, marked by the periodic arrival and departure of Gossip, before a newly-started Neighborhood is complete enough to be able to generate routes to allow its owner to originate traffic. On the other hand, a Neighborhood will be ready to route other people's data as soon as it has two immediate neighbors. Of course, in order to do so it must be built into a route by another Node, and it may take some time for another Node to assimilate and choose it as well.
-## Technical Policies
-
+## Technical Policies \{#technical-policies}
The generation and integration of Gossip can be somewhat abstruse. Here are some elements of our various algorithms that might help make it clearer.
-### **Types of Gossip**
-
+### **Types of Gossip** \{#types-of-gossip}
There are three or four types of Gossip, depending on how you count them.
* `Debut` - When a Node first starts up, and doesn't know anything about the state of the network except information about itself and the local descriptor of a single neighbor, it will send Debut Gossip to that neighbor. Debut Gossip contains a single record describing the debuting Node, with the debuting Node's IP address and at least one neighbor link, to the target of the Debut. Debut Gossip always arrives from the Node it describes.
@@ -43,8 +37,7 @@ There are three or four types of Gossip, depending on how you count them.
* _`Pass`_- Pass Gossip operates just like an HTTP 302 Redirect response. When one Node is trying to Debut from another, and the target does not want a new neighbor, the target may respond with Pass Gossip, which says, "Not me, but you might have some luck contacting this Node instead." Pass Gossip contains a single record describing the Node to which the debuting Node is being relayed, with the relay target's IP address. Pass Gossip always arrives from a _different_ Node than the one it describes.
* `Update`- Update Gossip is the most common kind: it contains a partial or complete picture of what the sender knows about the network. It's sent whenever a Node has reason to believe another Node may not know about a change to the network that it has just seen. There may be any number of records in Update Gossip. In general, Update Gossip will contain IP addresses only for Nodes the target already knows the IP addresses for, except in the case of Introductions.
-### **Accepting Gossip**
-
+### **Accepting Gossip** \{#accepting-gossip}
* `Debut`- The response to a Debut depends on the state of the receiver. If the receiver has nothing but itself in its database, it assimilates the Debut but makes no response, because it wouldn't be able to say anything useful. If the receiver has fewer than five Nodes in its database, it will assimilate the Debut and do two things: to the debuting Node it will send a special Update containing an Introduction to its least-connected neighbor; and to all the other Nodes in its database, it will send a standard Update. If it has five neighbors already, it will respond to the Debut with a Pass indicating its least-connected neighbor. \[Note: this is inaccurate and should be updated.]
* `Pass` - The response to a Pass is simple: the receiver just sends a Debut to the Node given in the Relay.
* `Update` - The receiver of an Update first filters out all the Introductions; then it either incorporates the individual records into its own database or ignores them, based on whether their version numbers, when compared to the versions of the Nodes already in its database, show them to be new or obsolete. After this, it goes through the list of Introductions, if any, and sends a Debut to each of the indicated Nodes. (The introduced Nodes don't go in the database yet; that happens only if they respond favorably to the Debut.)
@@ -52,12 +45,10 @@ There are three or four types of Gossip, depending on how you count them.
* `Ragged Edges`- Gossip consists of information about a list of other Nodes, with each item containing a list of public keys of the Nodes to which the Node in that item is connected. Many of those connected Nodes may have their own item in the Gossip list, but some may not. This isn't an error; it's a necessary condition if we're not to send the entire world in every Gossip message. Of course, a Node cannot use for routing or exit a ragged-edge Node about which it knows nothing but its public key. (For one thing, it won't know that Node's service rates.)
* `Standoffishness` - It's important for security reasons that an exit Node not know the IP address of the originating Node whose route it's serving. This means that if a Node is too heavily connected, it can have trouble finding a qualified exit Node to route through.
-### **Producing Gossip**
-
+### **Producing Gossip** \{#producing-gossip}
* `Half Neighbors Reported` - When a Node produces Update Gossip to send, it will mention all its neighbors, both half neighbors and full neighbors. The one-way relationships turn out to be of no immediate use, but the neighbors are part of the versioned and signed state of the Node. Consider Nodes A and B, where A is connected to B but B has not yet connected to A. If A Gossips, say, version 42 of itself with no connection to B (because half-neighbor relationships are not useful), and then B establishes a return connection to A, A cannot now begin reporting version 42 of itself with B as its neighbor, because that would be two different states with the same version number. Neither can it update its version to 43 when B connects back to it, because the change has been in the state of B, not in the state of A. Changing version numbers without state changes leads to Gossip squalls and storms.
* `Custom Reporting` - When a Node decides to send Gossip, it doesn't create a single Gossip package and broadcast it to everyone it knows. Instead, it makes a list of all its half neighbors and custom-builds a special Gossip package for each one.
* `Introductions` - When a Node is responding to Debut Gossip, it will send Update Gossip containing the information in its database, properly censored so that the receiving Node will not receive the IP address of any Node it's not already directly connected to...with one exception. The responding Node will select its least-connected neighbor and include that neighbor's IP address in the Update Gossip, thereby making that record an Introduction. Note: it is our intention in the future to add a security step here: instead of preemptively introducing its neighbor, the responding Node will instead send a message to that neighbor suggesting an Introduction to the debuting Node, and only actually send the Introduction if the neighbor responds with assent. \[Note: this is inaccurate and should be updated.]
-### **Routing**
-
+### **Routing** \{#routing}
* `Only Full Neighbors` - Only full-neighbor relationships where each Node in the pair provides a signed statement that it is connected to the other Node in the pair are used for routing. Half-neighbor relationships with traffic flowing in only one direction will exist, but they will be useless for routing data, because the Node not accepting traffic has either not yet consummated an introduction to the other Node, in which case it will reject connections from that Node, or it has banned that Node for some reason, in which case it will also reject connections from that Node.
\ No newline at end of file
diff --git a/docs/core-concepts/index.mdx b/docs/core-concepts/index.mdx
index 75e300b..ccdfcda 100644
--- a/docs/core-concepts/index.mdx
+++ b/docs/core-concepts/index.mdx
@@ -1 +1,7 @@
-# 📑 Core Concepts
+import DocCardList from '@theme/DocCardList';
+
+# Core Concepts
+
+How the MASQ Network works under the hood — neighborhoods, gossip, CORES packages, encryption, and clandestine routing.
+
+
diff --git a/docs/core-concepts/neighborhoods/index.mdx b/docs/core-concepts/neighborhoods/index.mdx
index 9f93065..520613d 100644
--- a/docs/core-concepts/neighborhoods/index.mdx
+++ b/docs/core-concepts/neighborhoods/index.mdx
@@ -1,3 +1,5 @@
+import DocCardList from '@theme/DocCardList';
+
# MASQ Neighborhoods
Each MASQ Node in the MASQ Network contains a subsystem that we call the Neighborhood. The Neighborhood is responsible for keeping track of other Nodes in the network, remembering how (and whether) they're connected to one another, and storing other information about them as well.
@@ -5,3 +7,5 @@ Each MASQ Node in the MASQ Network contains a subsystem that we call the Neighbo
Currently, there are plans for neighborhoods to also remember things like when they were last used, what region they are operating in, how fast they have proven to be and whether they're acting suspiciously. Also, whenever a consuming Node wants to send a CORES package through the network, its Neighborhood is responsible for analyzing the network and determining what route the CORES package should take. This takes place through a 'routing engine' in the Node which evaluates all possible known routes in the Neighborhood and ranks them according to the most desirable (usually based on price of the route, number of hops etc).
The concept of MASQ Neighborhoods is also such that no single MASQ Node will be able to have awareness or knowledge of the entire MASQ Network - neighborhoods have a limitation in number of Nodes within reach of the Gossip protocol.
+
+
diff --git a/docs/developers/dev-docs/index.mdx b/docs/developers/dev-docs/index.mdx
index 4ad8588..2b20aef 100644
--- a/docs/developers/dev-docs/index.mdx
+++ b/docs/developers/dev-docs/index.mdx
@@ -1,5 +1,5 @@
# Technical Documentation
-Some helpful documentation and notes for developers
+Some helpful documentation and notes for developers.
-More information and links to README files from our Node repo will be added periodically
\ No newline at end of file
+More information and links to README files from our Node repo will be added periodically.
diff --git a/docs/developers/dev-docs/masq-node-routing-components.mdx b/docs/developers/dev-docs/masq-node-routing-components.mdx
index 8e44060..5463ea4 100644
--- a/docs/developers/dev-docs/masq-node-routing-components.mdx
+++ b/docs/developers/dev-docs/masq-node-routing-components.mdx
@@ -1,33 +1,28 @@
# MASQ Node Routing Components
-## The Hopper
-
+## The Hopper \{#the-hopper}
The purpose of the Hopper is to interpret CORES packages, and determine their next destination. The hopper receives incoming CORES packages, 'unwraps' an initial string of bytes - enough information to interpret what is the next 'hop' in the package route - and thus completing the required next phase of the package route. The possible phases that a Node may execute are:
* send the request to be served by the Proxy Server
* make a request to a website on behalf of the originating node
* or just move the request across the route
-## Proxy Client
-
+## Proxy Client \{#proxy-client}
The purpose of Proxy Client is to convert CORES packages from the MASQ Network into regular (non-clandestine) requests and convert the regular (non-clandestine) responses back into CORES packages to be transmitted back across MASQ Network. A Proxy Client within a Node neighbor several hops away is the component that does the non-clandestine communication with the broader clear-web on behalf of the originating node. This is what would be used by an Exit Node. The Proxy Client converts your CORES package back into a regular request, gets the response, and 'wraps' it in a new CORES package. That CORES package goes back onto the MASQ Network to continue on the Route back to the originating node.
-## Proxy Server
-
+## Proxy Server \{#proxy-server}
The purpose of the Proxy Server acts as the only server your device can get information from. It is a proxy for all your requests. For example, every website you request when running MASQ Node will be delivered via the proxy server. As far as your system is concerned this server represents every server.
Internally this means all traffic bound for MASQ Node is routed to localhost on 127.0.0.1
-## Blockchain Bridge
-
+## Blockchain Bridge \{#blockchain-bridge}
The blockchain bridge purpose is to communicate with the actual blockchain - at this present time this is the Ethereum blockchain. The blockchain bridge does not connect directly to the blockchain itself. It leverages the Proxy Client to make the connection. This allows nodes to subvert restrictions from access to blockchain information in the same way that Node subverts website restrictions via the Proxy Server.
Utilizing a cloud blockchain service or self-hosted node allows this and the code parameter is `--blockchain-service-url`
e.g. [Infura](https://infura.io/)
-## DNS Utility
-
+## DNS Utility \{#dns-utility}
The purpose of our DNS is to be the OS-agnostic tool that the MASQ Node user interface will use to inspect and manage the DNS settings of the machine for routing its TCP communications over the MASQ Network.
It is built as a binary and can be run from the command line.
diff --git a/docs/developers/dev-docs/node-neighborhood-modes-explained.mdx b/docs/developers/dev-docs/node-neighborhood-modes-explained.mdx
index c2e6ad0..29cd64a 100644
--- a/docs/developers/dev-docs/node-neighborhood-modes-explained.mdx
+++ b/docs/developers/dev-docs/node-neighborhood-modes-explained.mdx
@@ -2,22 +2,17 @@
These modes of operation control the way the Node interacts with other Nodes in the MASQ Network, each with different use cases and features.
-### **There are Four modes**
-
-## Standard Mode
-
+### **There are Four modes** \{#there-are-four-modes}
+## Standard Mode \{#standard-mode}
This is the default mode of operation. In this mode, the Node will open inbound network ports, debut on the MASQ Network and (most likely) receive two neighbors. Later, other Nodes may contact it through the inbound network ports (provided they have been properly forwarded through the router), and it will probably end up routing data for four Standard-mode neighbors, although the count may reach as high as five. This is the mode that provides the most functionality to the Network and holds the most promise of revenue for you.
-## Originate-Only Mode
-
+## Originate-Only Mode \{#originate-only-mode}
In this mode, the Node will not open any inbound network ports. It will debut on the MASQ Network and receive its two neighbors, but no Nodes other than those two will ever be able to contact it, because it won't accept incoming connections. It will only ever be able to route data from one of its neighbors to the other, and if one of those neighbors goes down, it won't be able to provide any routing services at all. However, Originate-Only Mode might be necessary in environments where the government or the ISP prevents you from listening on inbound ports, or in places like a coffee shop or a hotel where you don't have access to forward inbound ports through the router.
-## Consume-Only Mode
-
+## Consume-Only Mode \{#consume-only-mode}
This has all the constraints of Originate-Only Mode, with the additional constraint that in Consume-Only Mode a Node will never provide any routing services at all, even with two perfectly healthy neighbors. Consume-Only Mode is not terribly useful as the Node stands now, but in the future, if a Node is running on a battery-powered mobile device, Consume-Only Mode means that the Node has to be actually running only when it's actively being used by its owner; at other times, it can go passive and not have to keep using battery power to route data or else be performance-banned by the Network.
-## Zero-Hop Mode
-
+## Zero-Hop Mode \{#zero-hop-mode}
We have not found any real-world use for this mode; we use it only for testing. In Zero-Hop Mode, a Node is its own entire MASQ Network. Every route has only Originating and Exit Nodes--no Relay Nodes--and the Zero-Hop Node is both of them. Data comes in from the browser to the Originating part of the Node; the resulting CORES packages are internally routed around to the Exit part of the Node; the data is decrypted and sent directly to the server, and the response from the server goes back the same way.
Only use Zero-Hop Mode if you're running a test that doesn't need a whole Network, or if your computer is running annoyingly fast and you need to slow it down a bit.
\ No newline at end of file
diff --git a/docs/developers/qa-testing.mdx b/docs/developers/qa-testing.mdx
index 9bedbb1..b628934 100644
--- a/docs/developers/qa-testing.mdx
+++ b/docs/developers/qa-testing.mdx
@@ -16,6 +16,6 @@ To avoid this, if you insist on running MASQNode on a root access user, you can
OR
-You can define the [`--real-user` parameter](/broken/pages/-MQVUIMn2C_3bmF1k3Lw#real-user) in command line with a defined normal user.
+You can define the [`--real-user` parameter](/advanced-use/common-challenges/user-permissions-real-user) in command line with a defined normal user.
#### This is not applicable to Windows environments, as most things will run with administrator access
\ No newline at end of file
diff --git a/docs/ecosystem-accelerator/summary/index.mdx b/docs/ecosystem-accelerator/summary/index.mdx
index fdfa3f2..a63f041 100644
--- a/docs/ecosystem-accelerator/summary/index.mdx
+++ b/docs/ecosystem-accelerator/summary/index.mdx
@@ -2,7 +2,7 @@
MASQ Network is proud to announce the initiation of its Ecosystem Accelerator. This program is a strategic effort to foster growth within the MASQ ecosystem - by honouring and rewarding users, developers and community members who bring growth and innovation within MASQ’s web3 privacy space.
-**The Ecosystem Accelerator Program reflects our unwavering commitment to fostering a vibrant and dynamic ecosystem, where community engagement and development are not just encouraged, but actively facilitated.**
+**The Ecosystem Accelerator Program reflects our unwavering commitment to fostering a vibrant and dynamic ecosystem, where community engagement and development are not just encouraged, but actively facilitated.**
***
diff --git a/docs/index.mdx b/docs/index.mdx
index 0123900..1d0d937 100644
--- a/docs/index.mdx
+++ b/docs/index.mdx
@@ -1,10 +1,60 @@
-# 🌐 MASQ Network
+---
+slug: /
+title: MASQ Network
+description: Documentation for the MASQ Network — private browser, dVPN, token, and developer resources.
+hide_title: true
+hide_table_of_contents: true
+---
+import Link from '@docusaurus/Link';
+
diff --git a/docs/legal/index.mdx b/docs/legal/index.mdx
index 9d6387e..d1bb464 100644
--- a/docs/legal/index.mdx
+++ b/docs/legal/index.mdx
@@ -1 +1,7 @@
+import DocCardList from '@theme/DocCardList';
+
# Legal
+
+Policies and terms for using MASQ Network products and documentation.
+
+
diff --git a/docs/masq-extension-app.mdx b/docs/masq-extension-app.mdx
index 2ddfb71..7eec1f5 100644
--- a/docs/masq-extension-app.mdx
+++ b/docs/masq-extension-app.mdx
@@ -3,6 +3,13 @@
**Hot off the press** :fire:\
**Borderless browsing now available privately in Chrome**
-[Open link](https://chromewebstore.google.com/detail/masq-dvpn/dkdkmamkihojemdcdmkjmjnampopgogo)
+[Chrome Web Store - MASQ dVPN](https://chromewebstore.google.com/detail/masq-dvpn/dkdkmamkihojemdcdmkjmjnampopgogo)
-[Open link](https://youtu.be/Q7FqHGM8Bik)
\ No newline at end of file
+
+
+
\ No newline at end of file
diff --git a/docs/masq-network/faqs.mdx b/docs/masq-network/faqs.mdx
index 17c8af0..94cb0e2 100644
--- a/docs/masq-network/faqs.mdx
+++ b/docs/masq-network/faqs.mdx
@@ -164,7 +164,7 @@ MASQ Node carries only TLS connections between the browser and the server, not b
## How does MASQ work?
-Since MASQ Network is built on an entirely unique network protocol ([gossip-protocol.md](../core-concepts/gossip-protocol.md "mention")), it operates on the top of the network stack using leading edge communication - **no out of the box OpenVPN protocols, VPN software, using Tor node infrastructure or other means.**
+Since MASQ Network is built on an entirely unique network protocol ([gossip protocol](../core-concepts/gossip-protocol)), it operates on the top of the network stack using leading edge communication - **no out of the box OpenVPN protocols, VPN software, using Tor node infrastructure or other means.**
@@ -274,7 +274,7 @@ It is important to understand that even running multiple Nodes through one IP wi
-Is traffic routed through MASQ Node encrypted?
+Is traffic routed through MASQ Node encrypted?
ABSOLUTELY - all traffic inbound and outbound is encrypted and other nodes in the network cannot neither inspect the contents, nor identify the route of the data through the network.
@@ -345,8 +345,7 @@ MASQ is still in development and current has a Beta software that is not in fina
:::
-## Network Monetization Model
-
+## Network Monetization Model \{#incentive-monetization-model}
How do I earn $MASQ using the software?
diff --git a/docs/masq-network/official-community-links.mdx b/docs/masq-network/official-community-links.mdx
index 0c62842..09bc724 100644
--- a/docs/masq-network/official-community-links.mdx
+++ b/docs/masq-network/official-community-links.mdx
@@ -13,13 +13,25 @@ If you decide to use links from other sources, please check that they match our
:::
-
+| Community | Link |
+| --- | --- |
+| Website | [masqbrowser.com](https://masqbrowser.com) |
+| Twitter / X | [@MASQ_ai](https://twitter.com/MASQ_ai) |
+| Discord | [discord.gg/cdUsjBQrgq](https://discord.gg/cdUsjBQrgq) |
+| Telegram | [t.me/MASQ_ai](https://t.me/MASQ_ai) |
+| Blog | [masqbrowser.com/blog](https://masqbrowser.com/blog) |
+| Guild.xyz | [guild.xyz/masqnetwork](https://guild.xyz/masqnetwork) |
+| CMC Community | [CoinMarketCap profile](https://coinmarketcap.com/community/profile/MASQ_Network) |
+| YouTube | [@MASQnetwork](https://www.youtube.com/@MASQnetwork) |
+| Instagram | [@masqnetwork](https://www.instagram.com/masqnetwork/) |
+| Reddit | [r/MASQ](https://www.reddit.com/r/MASQ/) |
+| Facebook | [masqnetwork](https://www.facebook.com/masqnetwork/) |
***
:::info
-For the **MASQ Brand Kit**, visit **[Resources](../resources)**.
+For the **MASQ Brand Kit**, visit **[Resources](/resources)**.
:::
diff --git a/docs/masq-network/what-is-masq.mdx b/docs/masq-network/what-is-masq.mdx
index 9b04284..180caa7 100644
--- a/docs/masq-network/what-is-masq.mdx
+++ b/docs/masq-network/what-is-masq.mdx
@@ -6,9 +6,16 @@ MASQ Network is a dMeshVPN, browser, web3 Store, protocol, and earning ecosystem
The MASQ software suite offers users a truly private web3 browsing experience, built on a peer to peer mesh network. Users will be able to browse content that may be geo-blocked or censored in their region, enjoy their favorite website and dApps, while also offering the ability to earn cryptocurrency by supporting the peer network. The more the network grows, the stronger and more powerful the browsing experience will become - with all netizens sharing **borderless internet freedom worldwide**
-[Open link](https://youtu.be/woCgz_Ka6lo?si=-N652UwWxigjRWfH)
-
-## MASQ web3 privacy browser
+
+
+
+
+## MASQ privacy browser
The MASQ web3 browser software is a stunning User Interface that has been carefully curated to run on top of the core MASQ Node software, and provides privacy-centric benefits with instant everyday utility using the in-built Chromium browser.
diff --git a/docs/masq-web3-privacy-browser/beta-faqs.mdx b/docs/masq-privacy-browser/beta-faqs.mdx
similarity index 100%
rename from docs/masq-web3-privacy-browser/beta-faqs.mdx
rename to docs/masq-privacy-browser/beta-faqs.mdx
diff --git a/docs/masq-web3-privacy-browser/index.mdx b/docs/masq-privacy-browser/index.mdx
similarity index 89%
rename from docs/masq-web3-privacy-browser/index.mdx
rename to docs/masq-privacy-browser/index.mdx
index 244bbe8..d29662c 100644
--- a/docs/masq-web3-privacy-browser/index.mdx
+++ b/docs/masq-privacy-browser/index.mdx
@@ -1,13 +1,8 @@
-# 💻 MASQ Web3 Privacy Browser
-
-- [install-requirements](install-requirements)
-- [beta-faqs.md](beta-faqs)
-- [updating-masq-web3-browser](updating-masq-web3-browser)
-- [troubleshooting](troubleshooting)
-- [providing-feedback.md](providing-feedback)
-
+# 💻 MASQ Privacy Browser
+import DocCardList from '@theme/DocCardList';
+
The MASQ team has pushed the limits of software design to provide a User Experience that encompasses the true potential of a decentralized internet - leveraging the principles of a truly web3 READ-WRITE-OWN global network.
@@ -54,8 +49,8 @@ This includes a User Experience with immediate access in-app to:
:::warning
-Make sure you only download the MASQ web3 browser from the official website [https://masqbrowser.com](https://masqbrowser.com) and verify the checksums for any installers here:
+Make sure you only download the MASQ web3 browser from the official website [https://masqbrowser.com](https://masqbrowser.com) and verify the checksums for any installers here:
-[#installer-sha256-checksums](../masq-network/official-community-links#installer-sha256-checksums "mention")
+[Installer SHA256 checksums](/resources/installer-checksums)
-:::
\ No newline at end of file
+:::
diff --git a/docs/masq-web3-privacy-browser/install-requirements/index.mdx b/docs/masq-privacy-browser/install-requirements/index.mdx
similarity index 76%
rename from docs/masq-web3-privacy-browser/install-requirements/index.mdx
rename to docs/masq-privacy-browser/install-requirements/index.mdx
index 16f2f39..e4d01a7 100644
--- a/docs/masq-web3-privacy-browser/install-requirements/index.mdx
+++ b/docs/masq-privacy-browser/install-requirements/index.mdx
@@ -1,6 +1,8 @@
+import DocCardList from '@theme/DocCardList';
+
# Install Requirements
-##  **MASQ Browser Beta is now available for Public**
+## MASQ Browser Beta is now available for Public
Navigate to the [https://masqbrowser.com](https://masqbrowser.com) website to download the latest MASQ Browser desktop app.
@@ -15,6 +17,8 @@ Download links are available via web3 CDN host and also using IPFS through our [
Make sure you only download the MASQ web3 browser from the official website [https://masqbrowser.com](https://masqbrowser.com) and verify the md5 checksums for any installers here:
-[#installer-sha256-checksums](../../masq-network/official-community-links#installer-sha256-checksums "mention")
+[Installer SHA256 checksums](/resources/installer-checksums)
+
+:::
-:::
\ No newline at end of file
+
diff --git a/docs/masq-web3-privacy-browser/install-requirements/masq-tokens.mdx b/docs/masq-privacy-browser/install-requirements/masq-tokens.mdx
similarity index 95%
rename from docs/masq-web3-privacy-browser/install-requirements/masq-tokens.mdx
rename to docs/masq-privacy-browser/install-requirements/masq-tokens.mdx
index dc82536..51a4d91 100644
--- a/docs/masq-web3-privacy-browser/install-requirements/masq-tokens.mdx
+++ b/docs/masq-privacy-browser/install-requirements/masq-tokens.mdx
@@ -28,6 +28,6 @@ MASQ - _18 decimals (bridged from Ethereum with official Optimism L2 bridge cont
[Uniswap (Base chain)](https://app.uniswap.org/swap?theme=dark\&inputCurrency=ETH\&outputCurrency=0x06F3C323f0238c72BF35011071f2b5B7F43A054c)
$MASQ tokens can be bridged from Ethereum through official bridging app Superbridge.app:\
-[masqonbase-superbridge.md](../../masq-token/masqonbase-superbridge.md "mention")
+[MASQ on Base Superbridge](/masq-token/masqonbase-superbridge)
\ No newline at end of file
diff --git a/docs/masq-web3-privacy-browser/install-requirements/system-cleanup.mdx b/docs/masq-privacy-browser/install-requirements/system-cleanup.mdx
similarity index 92%
rename from docs/masq-web3-privacy-browser/install-requirements/system-cleanup.mdx
rename to docs/masq-privacy-browser/install-requirements/system-cleanup.mdx
index 04736fc..97d2a97 100644
--- a/docs/masq-web3-privacy-browser/install-requirements/system-cleanup.mdx
+++ b/docs/masq-privacy-browser/install-requirements/system-cleanup.mdx
@@ -15,7 +15,7 @@ import TabItem from '@theme/TabItem';
* [ ] Head to "Add or Remove Programs" menu in Windows, click on MASQ in the installed program list and click the "Uninstall" button
* [ ] The uninstaller may prompt you that MASQ is still running, and to click OK to stop process to complete uninstall. Click OK on this option
-* [ ] Follow the cleanup script guide [below here](https://docs.masq.ai/masq/masq-web3-browser/install-requirements/system-cleanup#cleanup-batchfiles)
+* [ ] Follow the cleanup script guide [below here](#cleanup-batchfiles)
:::warning
@@ -45,7 +45,7 @@ For Linux snap it's a single command: `sudo snap remove masq`
-You can use the Windows batch file to handle all of this is a few simple clicks [below](system-cleanup#using-batch-file-on-windows-to-clean-setup-files)!
+You can use the Windows batch file to handle all of this in a few simple clicks [below](#cleanup-batchfiles)!
* [ ] Uninstall any previous version of MASQ from machine
* [ ] Remove the firewall exception for masqnode.exe (more just to keep things clean)
@@ -65,7 +65,7 @@ You can use the Windows batch file to handle all of this is a few simple clicks
* [ ] **Locate 'MASQ Daemon' and right click it and select "Stop" service.**
* [ ] **Then you can delete the MASQNode.exe file from the previous installation directory under your installation directory (in Windows this is default under 'Program Files')**
-You can also use the Windows batch file to handle all of this is a few simple clicks [below](system-cleanup#using-batch-file-on-windows-to-clean-setup-files)!
+You can also use the Windows batch file to handle all of this in a few simple clicks [below](#cleanup-batchfiles)!
:::warning
@@ -118,8 +118,7 @@ Otherwise you can follow manual file removal steps below:
***
-## Using Scripts to Clean Setup Files
-
+## Using Scripts to Clean Setup Files \{#cleanup-batchfiles}
You can utilize a batch file to quickly delete cache, logs and database files in between installing/uninstalling Beta versions.
Here are some suggested command scripts users can employ:
diff --git a/docs/masq-web3-privacy-browser/install-requirements/using-installer-files-on-macos-linux.mdx b/docs/masq-privacy-browser/install-requirements/using-installer-files-on-macos-linux.mdx
similarity index 100%
rename from docs/masq-web3-privacy-browser/install-requirements/using-installer-files-on-macos-linux.mdx
rename to docs/masq-privacy-browser/install-requirements/using-installer-files-on-macos-linux.mdx
diff --git a/docs/masq-web3-privacy-browser/providing-feedback.mdx b/docs/masq-privacy-browser/providing-feedback.mdx
similarity index 100%
rename from docs/masq-web3-privacy-browser/providing-feedback.mdx
rename to docs/masq-privacy-browser/providing-feedback.mdx
diff --git a/docs/masq-web3-privacy-browser/troubleshooting/checking-masq-browser-version.mdx b/docs/masq-privacy-browser/troubleshooting/checking-masq-browser-version.mdx
similarity index 100%
rename from docs/masq-web3-privacy-browser/troubleshooting/checking-masq-browser-version.mdx
rename to docs/masq-privacy-browser/troubleshooting/checking-masq-browser-version.mdx
diff --git a/docs/masq-web3-privacy-browser/troubleshooting/index.mdx b/docs/masq-privacy-browser/troubleshooting/index.mdx
similarity index 90%
rename from docs/masq-web3-privacy-browser/troubleshooting/index.mdx
rename to docs/masq-privacy-browser/troubleshooting/index.mdx
index 252213b..59f5867 100644
--- a/docs/masq-web3-privacy-browser/troubleshooting/index.mdx
+++ b/docs/masq-privacy-browser/troubleshooting/index.mdx
@@ -28,7 +28,7 @@ You can attempt to run it again by opening your MASQ installation folder, and fi
Alternatively, if you have tried to uninstall to reinstall the Beta software, you may have not uninstalled it completely or removed residual logs and cache files.
-Please this head to page here and follow instructions here to remove them from your system, before reinstalling MASQ. Head to [System Cleanup](../install-requirements/system-cleanup) to ensure you have prepared your system for clean Beta install.
+Please head to this page and follow instructions to remove them from your system before reinstalling MASQ. See [System Cleanup](/masq-privacy-browser/install-requirements/system-cleanup) to ensure you have prepared your system for a clean Beta install.
Lastly, it is possible the background `masqnode` daemon process was blocked by your machine firewall or task manager. The name of the running process is MASQNode or MASQDaemon
@@ -95,12 +95,10 @@ To detect Double NAT problems, you can run a command from terminal `tracert 8.8.
### Common Issues:
-[macos-user-startup-issue.md](macos-user-startup-issue)
-
-[port-80-common-to-windows.md](port-80-common-to-windows)
-
-[ports-issue.md](ports-issue)
+- [MacOS user startup issue](/masq-privacy-browser/troubleshooting/macos-user-startup-issue)
+- [Port 80 (common to Windows)](/masq-privacy-browser/troubleshooting/port-80-common-to-windows)
+- [Port 53 problems](/masq-privacy-browser/troubleshooting/ports-issue)
### Other Helpful FAQs
-[beta-faqs.md](../beta-faqs)
\ No newline at end of file
+- [MASQ Browser FAQs](/masq-privacy-browser/beta-faqs)
\ No newline at end of file
diff --git a/docs/masq-web3-privacy-browser/troubleshooting/macos-user-startup-issue.mdx b/docs/masq-privacy-browser/troubleshooting/macos-user-startup-issue.mdx
similarity index 100%
rename from docs/masq-web3-privacy-browser/troubleshooting/macos-user-startup-issue.mdx
rename to docs/masq-privacy-browser/troubleshooting/macos-user-startup-issue.mdx
diff --git a/docs/masq-web3-privacy-browser/troubleshooting/port-80-common-to-windows.mdx b/docs/masq-privacy-browser/troubleshooting/port-80-common-to-windows.mdx
similarity index 89%
rename from docs/masq-web3-privacy-browser/troubleshooting/port-80-common-to-windows.mdx
rename to docs/masq-privacy-browser/troubleshooting/port-80-common-to-windows.mdx
index 4921824..d76077d 100644
--- a/docs/masq-web3-privacy-browser/troubleshooting/port-80-common-to-windows.mdx
+++ b/docs/masq-privacy-browser/troubleshooting/port-80-common-to-windows.mdx
@@ -81,4 +81,11 @@ Some Operating System services bind to port 80 (especially in Windows), which ma
This video below is also helpful to 'free up' port 80.
-[Open link](https://www.youtube.com/watch?v=hcH8LBYkY8Q)
\ No newline at end of file
+
+
+
\ No newline at end of file
diff --git a/docs/masq-web3-privacy-browser/troubleshooting/ports-issue.mdx b/docs/masq-privacy-browser/troubleshooting/ports-issue.mdx
similarity index 91%
rename from docs/masq-web3-privacy-browser/troubleshooting/ports-issue.mdx
rename to docs/masq-privacy-browser/troubleshooting/ports-issue.mdx
index 0be0ade..b70404d 100644
--- a/docs/masq-web3-privacy-browser/troubleshooting/ports-issue.mdx
+++ b/docs/masq-privacy-browser/troubleshooting/ports-issue.mdx
@@ -1,7 +1,6 @@
# Port 53 Problems (common to Windows)
-## Identification
-
+## Identification \{#identification}
When you try to start your MASQ Node, do you see a message that looks something like one of these?
```
thread 'main' panicked at 'Cannot bind socket to V4(0.0.0.0:53): Os { code: 10048, kind: AddrInUse, message: "Only one usage of each socket address (protocol/network address/port) is normally permitted." }'
@@ -16,34 +15,27 @@ If you see both of those parts in the message, then you are definitely afflicted
If you don't care about what the problem is or why it happens, and you just want to know how to fix it, skip down to the **Solutions** section.
-## Background
-
-### Windows
-
+## Background \{#background}
+### Windows \{#windows}
Windows includes a service called Internet Connection Sharing (ICS) that listens on port 53. It's a somewhat dated service from the days before widespread WiFi availability that allows you to make your Windows machine a nexus through which other people can connect their machines to the Internet. If you're not already aware that you're doing this, you probably don't need to have ICS active.
-### Linux
-
+### Linux \{#linux}
Some Linux distributions (we know about Ubuntu Desktop >=16.04 and some versions of Mint, but there are probably others) come with an installed utility called `dnsmasq`. This utility is intended to let folks with small home LANs give intelligible names to their computers, printers, TVs, DVRs, mobile devices, and other Internet-enabled devices, rather than having to reference them by numeric IP address. You may instead have a distribution (for example Ubuntu 18.04) that uses `systemd-resolved` for this purpose. We'll generically call this dns caching.
DNS caching works by putting up a small DNS server on your local machine that fields name-resolution requests for things like "LivingRoomTV" and returns IP addresses like 192.168.0.47. This means that when you want to control your TV from upstairs, or watch its video feed, or whatever it allows you to do remotely, you can call it "LivingRoomTV" (or select it from a list) rather than having to remember its IP address (which may change unexpectedly).
-### In General
-
+### In General \{#in-general}
Any software that uses a DNS server to convert an intelligible name into an IP address will contact that DNS server on Port 53; it's part of the widely-accepted DNS protocol. Therefore, every DNS server must listen on Port 53 for requests if it expects to receive any.
Unfortunately, only one server can listen on Port 53 (or any port) at one time.
-## The Problem
-
+## The Problem \{#the-problem}
MASQ Node also includes a small DNS server that allows applications on your computer to send and receive data on the MASQ Network. Since this is a DNS server, it must also listen on Port 53. This means that a DNS-subverting MASQ Node and preexisting port 53 software are irredeemably inimical to one another and cannot ever operate simultaneously on the same computer.
Eventually, MASQ Node will be able to operate in regimes other than DNS subversion, which means that under some circumstances, and in the presence of certain sacrifices, it will be compatible with other port 53 software; but that's in the future, not the present.
-## Solutions
-
-### Windows
-
+## Solutions \{#solutions}
+### Windows \{#windows-1}
Internet Connection Sharing can be an annoyance. We had problems with it starting spontaneously after we stopped it, and reenabling itself and starting after we disabled it, and coming back into action over a reboot, in all cases monopolizing port 53 and preventing MASQ Node from starting. However, the solution turned out to be simple: we just installed all pending updates (in our case, they ended at version 1809), and the problem went away. We disabled ICS, and it stayed disabled.
ICS can be enabled and disabled for individual network interfaces, but you'll need to disable it across your entire system to free up port 53 for MASQ Node.
@@ -52,16 +44,13 @@ To do so, press your Windows button and type Services. Scroll down to where you
If it is, then right-click on the Internet Connection Sharing item and choose Properties. Pull down the "Startup type" list and choose "Disabled" so that it can't be restarted once it stops. Now click the "Stop" button to kill the service. You'll get a dialog box with a progress bar; the service should stop fairly quickly. After it does, click "OK" and verify that the service list now shows the service as "Disabled" in the "Startup Type" column, with no value at all in the "Status" column. If that's the case, you've successfully disabled ICS.
-### Linux
-
+### Linux \{#linux-1}
We know of two reasonable solutions to the **Port 53 Problem** in Linux: a complicated and annoying one that allows you to keep using dns caching, and a much simpler and easier one that consists of disabling dns caching but will no longer allow you to use intelligible names for the devices on your LAN.
-#### Complicated And Annoying: Docker
-
+#### Complicated And Annoying: Docker \{#complicated-and-annoying-docker}
This solution is too complex to detail here, but in broad strokes it involves running a Docker container that contains a version of Linux that does _not_ have the **Port 53 Problem**, starting the MASQ Node and a browser in that container, and having the browser display its window on the X11 server running on your host machine. We at MASQ have used this solution in the past, and you can see how we've done it by looking in our [source code](https://github.com/MASQ-Project/Node/tree/master/node/docker/linux_node). After installing Docker on your machine, you may be able to put together a similar solution.
-#### Simple But Incompatible: Disable DNS Caching
-
+#### Simple But Incompatible: Disable DNS Caching \{#simple-but-incompatible-disable-dns-caching}
**Ubuntu 18.04**
Disable the service:
diff --git a/docs/masq-web3-privacy-browser/updating-masq-web3-browser/breaking-change-releases.mdx b/docs/masq-privacy-browser/updating-masq-browser/breaking-change-releases.mdx
similarity index 100%
rename from docs/masq-web3-privacy-browser/updating-masq-web3-browser/breaking-change-releases.mdx
rename to docs/masq-privacy-browser/updating-masq-browser/breaking-change-releases.mdx
diff --git a/docs/masq-web3-privacy-browser/updating-masq-web3-browser/index.mdx b/docs/masq-privacy-browser/updating-masq-browser/index.mdx
similarity index 76%
rename from docs/masq-web3-privacy-browser/updating-masq-web3-browser/index.mdx
rename to docs/masq-privacy-browser/updating-masq-browser/index.mdx
index 2c96b77..e01fc67 100644
--- a/docs/masq-web3-privacy-browser/updating-masq-web3-browser/index.mdx
+++ b/docs/masq-privacy-browser/updating-masq-browser/index.mdx
@@ -1,13 +1,15 @@
-# Updating MASQ web3 Browser
+import DocCardList from '@theme/DocCardList';
-MASQ web3 browser updates are released via in-app "Over-the-Air" (OTA) updates. An updater component in the application will detect new versions and displays an "Update Now" button on the top of the window bar, prompting the user to update.
+# Updating MASQ Browser
-[over-the-air-updating.md](over-the-air-updating)
+MASQ web3 browser updates are released via in-app "Over-the-Air" (OTA) updates. An updater component in the application will detect new versions and displays an "Update Now" button on the top of the window bar, prompting the user to update.
Users can find their current MASQ web3 browser app version in the General Settings screen at the bottom right:
-If users want to manually 'hard update' their MASQ browser app, they can follow instructions here for a full system cleanup, and reinstall from the latest version downloaded from [masqbrowser.com](https://masqbrowser.com):
+If users want to manually 'hard update' their MASQ browser app, they can follow instructions here for a full system cleanup, and reinstall from the latest version downloaded from [masqbrowser.com](https://masqbrowser.com):
+
+[System Cleanup](/masq-privacy-browser/install-requirements/system-cleanup)
-[system-cleanup.md](../install-requirements/system-cleanup)
\ No newline at end of file
+
diff --git a/docs/masq-web3-privacy-browser/updating-masq-web3-browser/over-the-air-updating.mdx b/docs/masq-privacy-browser/updating-masq-browser/over-the-air-updating.mdx
similarity index 100%
rename from docs/masq-web3-privacy-browser/updating-masq-web3-browser/over-the-air-updating.mdx
rename to docs/masq-privacy-browser/updating-masq-browser/over-the-air-updating.mdx
diff --git a/docs/masq-token/index.mdx b/docs/masq-token/index.mdx
index 3a357eb..409def5 100644
--- a/docs/masq-token/index.mdx
+++ b/docs/masq-token/index.mdx
@@ -1 +1,7 @@
-# 🔷 MASQ Token
+import DocCardList from '@theme/DocCardList';
+
+# MASQ Token
+
+Utility token docs for the MASQ Network — economy overview, bridging to Base, and official contract addresses.
+
+
diff --git a/docs/masq-token/masq-erc20.mdx b/docs/masq-token/masq-erc20.mdx
index 0ce12ac..e6a1784 100644
--- a/docs/masq-token/masq-erc20.mdx
+++ b/docs/masq-token/masq-erc20.mdx
@@ -1,12 +1,12 @@
---
-description: >-
+description: Official $MASQ contract addresses on Base, Polygon, and Ethereum.
---
# Contract Addresses
:::info
-**There was no private or public ICO mechanism for the token launch - read the full history** [token-economy.md](token-economy.md "mention")
+**There was no private or public ICO mechanism for the token launch - read the full history** [token economy](./token-economy)
:::
@@ -27,7 +27,7 @@ MASQ - _18 decimals (bridged from Ethereum with official Optimism L2 bridge cont
[Uniswap (Base chain)](https://app.uniswap.org/swap?theme=dark\&inputCurrency=ETH\&outputCurrency=0x06F3C323f0238c72BF35011071f2b5B7F43A054c)
$MASQ tokens can be bridged from Ethereum through official bridging app Superbridge.app:\
-[masqonbase-superbridge.md](masqonbase-superbridge.md "mention")
+[MASQ on Base Superbridge](./masqonbase-superbridge)
@@ -59,7 +59,7 @@ $MASQ is a utility token, with the purpose of providing holders mesh network acc
:::
-Archived testnet and deprecated network contract references (historical/dev only) are documented on [testnet-contracts.md](testnet-contracts).
+Archived testnet and deprecated network contract references (historical/dev only) are documented on [testnet contracts](./testnet-contracts).
## Liquidity Partners and Tracking Pages
diff --git a/docs/masq-token/masqonbase-superbridge.mdx b/docs/masq-token/masqonbase-superbridge.mdx
index 014534b..d6df885 100644
--- a/docs/masq-token/masqonbase-superbridge.mdx
+++ b/docs/masq-token/masqonbase-superbridge.mdx
@@ -1,5 +1,5 @@
---
-description: >-
+description: Official Optimism Superchain bridge for moving MASQ onto Base.
---
# Bridge to Base
diff --git a/docs/masq-token/testnet-contracts.mdx b/docs/masq-token/testnet-contracts.mdx
index 720541d..0cec140 100644
--- a/docs/masq-token/testnet-contracts.mdx
+++ b/docs/masq-token/testnet-contracts.mdx
@@ -1,5 +1,5 @@
---
-description: >-
+description: Archived testnet contracts for developer reference only (not used by live products).
---
# Archived Testnet Contracts (developer reference)
diff --git a/docs/masq-token/token-economy.mdx b/docs/masq-token/token-economy.mdx
index 76d7daf..731b693 100644
--- a/docs/masq-token/token-economy.mdx
+++ b/docs/masq-token/token-economy.mdx
@@ -1,5 +1,5 @@
---
-description: >-
+description: Refreshed summary of the MASQ utility token and utility framework.
---
# Token Economy
@@ -175,7 +175,10 @@ Since then, the MASQ Protocol team has provisioned various decentralized exchang
_(accurate at time of April 2025)_
-