Wasabi Wallet is an open-source, non-custodial, privacy focused Bitcoin wallet for desktop. It implements a trustless privacy technique, called WabiSabi CoinJoin.
This is Wasabi Wallet's open-source documentation repository. Here you will find information about the nuances of privacy in Bitcoin, how Wasabi solves some of the existing problems, and how you can use this tool to defend yourself.
If you would like to support the project by educating other people, this documentation repository is the right place for your efforts! If you have a question regarding the documentation, please open an issue. If you have an answer to a question, please open a pull request. For more details on how to contribute, see the contribution checklist or the to-do list.
If you need help regarding the software specifically, please check out Discussions in Wasabi Wallet's main repository.
-
- Why privacy is important.
-
- How to use Wasabi Wallet.
-
- How to contribute to Wasabi.
-
- Frequently asked questions.
-
- Explanations of common words.
Just like the Wasabi Wallet software, this documentation is libre and open-source under the MIT license. Not only do we appreciate everyone's contribution, but we desperately need it!
- VuePress
- Writing Conventions
- Reference files
- Embedding images
- Embedding videos
- Text Highlights
- Frequently asked questions
- Variables
The Wasabi documentation website is built using an open-source static site generator called VuePress. Its configuration and theme are extremely customizable, and it offers great defaults out-of-the-box. Check out the VuePress website for details on how to use it.
To contribute to the content of the website, you can make PRs related to the markdown files in the /docs/
directory, and if merged, the changes will automatically be integrated into the documentation website by VuePress.
Know that you do not need to understand/deal with VuePress at all in this case.
- Wasabi [capitalized]
- coinjoin [not capitalized, one word]
- WabiSabi [capitalized, one word]
- Every sentence must start in a new line.
- For a paragraph, add an
empty line
or</br>
in the markdown.
Please consider this repository structure for hyperlinks, and use relative links whenever possible, for example:
[What is a coinjoin?](FAQ-Introduction.md#what-is-a-coinjoin)
The images are stored in the /docs/.vuepress/public/
directory.
They can be embedded via the following markdown tags:
![Alternative text of the image](/IMAGENAME.png "Title of the image")
Youtube videos and playlists can be embedded via the following custom markdown tags:
@[youtube](VIDEO_ID)
@[youtubePlaylist](PLAYLIST_ID)
Optionally you can also specify the start position of a video in seconds (e.g. starts at 100 seconds):
@[youtube](VIDEO_ID,100)
And the index of the video of a playlist (e.g. starts the third video):
@[youtubePlaylist](PLAYLIST_ID,VIDEO_ID)
There are three types of text highlights that can be used to display different colored boxes.
A green box displaying a friendly tip:
:::tip
foo
:::
A yellow box with a cautious warning:
:::warning
foo
:::
A red box with a clear danger, you can also add a title foo
to any container:
:::danger foo
bar
:::
Use this markdown box with the headers to write the FAQ:
:::details
### question
answer answer answer.
answer answer answer.
:::
When you want to highlight text within a question, then you need to nest containers by adding more :
for the outer block start/end. The outer details
container has now four ::::
, and the inner warning
container has still three :::
.
::::details
### question
answer answer answer.
:::warning
answer answer answer.
:::
::::
To have a single place to maintain universal strings like the current Wasabi version number, we use variables in the Markdown (i.e. ${currentVersion}
and ${zksnacksPublicKeyFingerprint}
).
These variables are managed in docs/.vuepress/variables.js
.
Occurrences of ${variableName}
get substituted before the Markdown is processed.
In order to build the website locally, you'll need Node.js >= 10.16 (or basically the latest LTS version).
- Install dependencies
- Serve locally (by default on port 8080)
npm install
npm start