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.
If you need help regarding the software specifically, please check out Discussions in Wasabi Wallet's main repository.
-
- Getting started guide.
-
- 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:
[![Title of the video](https://img.youtube.com/vi/VIDEO_ID/maxresdefault.jpg)](https://youtu.be/VIDEO_ID)
Optionally you can also specify the start position of a video in seconds (e.g. starts at 100 seconds):
[![Title of the video](https://img.youtube.com/vi/VIDEO_ID/maxresdefault.jpg)](https://youtu.be/VIDEO_ID?t=123)
And the index of the video of a playlist (e.g. starts the third video):
[![Title of the playlist](https://img.youtube.com/vi/VIDEO_ID/maxresdefault.jpg)](https://youtu.be/VIDEO_ID?list=PLAYLIST_ID)
If the image doesn't appear, that usually happens with older videos, use hqdefault.jpg instead of maxresdefault.jpg
In case that the thumbnail doesn't fit well with the documentation, a default image can be added as custom thumbnail, located at /Logo_without_text_with_bg_dark_with_yt.png
.
Currently, all thumbnails have been set to this default image as a temporary solution because videos are old, sometimes not under our control, and the thumbnails were irrelevant.
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:
### question
answer answer answer.
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/config.ts
.
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