Skip to content

Commit 70f1142

Browse files
robdefeotboeckmannantonio-ivanovski
authored andcommitted
feat: init docusaurus (#278)
* feat: init docusaurus * chore: prettier * chore: don't run on draft * chore: dont run on draft * chore: only on ready for review * chore: setup docs add bone structure edit visuals remove templates * chore: re-structure docs * chore: restructure docs * chore: remove edit links for now * chore: remove blog config * chore: remove comments and update config * docs: add faqs * chore: remove unwanted page * chore: update links * chore: fix link * chore: update gitignore for docs * chore: roll back gitignore change `apps/docs/.gitignore` folder already handles ignores * chore: handle env for docs site * chore: move text to live in locale file, update links * docs: rename file, fix sidebar order * feat: update routeBasePath to remove docs folder in path * docs: update url for docs * fix: validation reference * docs: update url and structure * fix: update sidebar to handle external link * docs: fix link to docs * fix: broken link * chore: add urls to locales and update links * chore: pretteir * fix: add missing env varible * fix: start build if not draft * chore: run regardless * fix: vscode settings * chore: remove console message * docs: update Readme * chore: remove docs/.vscode/settings in favor of workspace one * chore: remove console.log * docs: update understanding-connecting-wallets content * chore: cleanup URLs for docs * docs: update articles with contents * chore: create docs deployment * chore: remove deps * chore: fix owner * chore: format Co-authored-by: Tim Boeckmann <[email protected]> Co-authored-by: Antonio Ivanovski <[email protected]> GitOrigin-RevId: bdd2fc2b722acb1650cc305836a606a5f9e1846e
0 parents  commit 70f1142

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+8457
-0
lines changed

.gitignore

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Dependencies
2+
/node_modules
3+
4+
# Production
5+
/build
6+
7+
# Generated files
8+
.docusaurus
9+
.cache-loader
10+
11+
# Misc
12+
.DS_Store
13+
.env.local
14+
.env.development.local
15+
.env.test.local
16+
.env.production.local
17+
18+
npm-debug.log*
19+
yarn-debug.log*
20+
yarn-error.log*

README.md

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Website
2+
3+
This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator.
4+
5+
### Installation
6+
7+
```
8+
$ yarn
9+
```
10+
11+
### Local Development
12+
13+
```
14+
$ yarn start
15+
```
16+
17+
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
18+
19+
### Build
20+
21+
```
22+
$ yarn build
23+
```
24+
25+
This command generates static content into the `build` directory and can be served using any static contents hosting service.
26+
27+
### Deployment
28+
29+
Using SSH:
30+
31+
```
32+
$ USE_SSH=true yarn deploy
33+
```
34+
35+
Not using SSH:
36+
37+
```
38+
$ GIT_USER=<Your GitHub username> yarn deploy
39+
```
40+
41+
If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch.

babel.config.js

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module.exports = {
2+
presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
3+
};

docs/developer/api-docs.md

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
title: 'API Docs'
3+
sidebar_position: 20
4+
---

docs/developer/intro.md

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
slug: /developer
3+
sidebar_position: 10
4+
---
5+
6+
# Introduction
7+
8+
<!-- Introduction [TODO] -->
9+
10+
### Architecture
11+
12+
### APIs
13+
14+
### SDKs

docs/getting-help.md

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
title: 'Getting Help'
3+
slug: './getting-help'
4+
sidebar_position: 101
5+
---
6+
7+
# Channels
8+
9+
To contact us, please use any one of the following methods:
10+
11+
- Send us a mailchain message or email to [email protected]
12+
- Log a ticket via https://support.mailchain.com
13+
- Contact us in our Discord support channel: [https://discord.gg/CjK8FkXqNx](https://discord.gg/CjK8FkXqNx)
14+
15+
> ⚠ WARNING:<br/>Remember we will **never** ask you for any sensitive information, your seed phrase, your password, and <br/>we will **never** contact you first to request you give us any information or carry out any actions.

docs/index.md

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
slug: welcome-to-mailchain
3+
---
4+
5+
# Welcome To Mailchain
6+
7+
[Mailchain](https://app.mailchain.com) is a multi-protocol messaging and communications protocol for web3 addresses.
8+
9+
Account holders or owners of a public address often need to communicate in the context of the account or public address. Communication may relate to transactions, account actions or some type of notification.
10+
11+
Examples of use cases for blockchain messaging include invoicing, receipts, contacting users of a service or application developers.
12+
13+
The majority of blockchain protocols provide no standard way to handle messaging. Some account holders have sent messages as an encrypted or decrypted string included in transaction data. Some applications work around the problem by asking users to link another method of contact (e.g. email address, phone number etc.) to an application. This compromises anonymity by asking users to link or reveal an identity. It also increases exposure to security risks, and relies on additional centralized services.
14+
15+
Visit [Getting Started](user/guides/getting-started) to learn how to use the application and start sending and receiving messages.

docs/user/concepts/_category_.json

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"label": "Concepts",
3+
"position": 10,
4+
"link": {
5+
"type": "generated-index"
6+
}
7+
}

docs/user/concepts/introduction.md

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
slug: user/concepts/introduction
3+
description: 'This section describes how Mailchain handles data and encryption.'
4+
sidebar_position: 1
5+
---
6+
7+
# Security & Encryption
8+
9+
<!-- This section describes how Mailchain handles data and encryption. -->
10+
11+
## Introduction
12+
13+
<!-- Mailchain description [TODO] -->
14+
15+
<!-- I understand that I cannot reset my password and have stored it safely. Why? -->

docs/user/faqs/_category_.json

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"label": "Concepts",
3+
"position": 40,
4+
"link": {
5+
"type": "generated-index"
6+
}
7+
}

docs/user/faqs/index.md

+75
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# Frequently Asked Questions
2+
3+
## General
4+
5+
### What is Mailchain?
6+
7+
Mailchain is building the next generation of messaging for web3. It provides a multi-protocol platform for sending and receiving messages between web3 addresses, where users don’t need to reveal private information about themselves. It's as simple as using email.
8+
9+
### What problem is Mailchain solving?
10+
11+
Today, there is no direct way to communicate via blockchain addresses in a crypto-native way. Users are forced to make trade-offs when they link email addresses and lose pseudo-anonymity, or join chat groups for broadcast messages where it's hard to keep track of relevant communication.
12+
13+
Without communication as a first class citizen, many actions taken for granted on the Internet cannot take place in web3. Users can’t receive direct communications related to their savings, loans, and financial positions. They can’t receive information from projects they care about in the context of how they interact with them. They can’t contact others in their community, for example, to make an offer to purchase a digital collectible. Businesses can’t receive receipts for payments, or invoices. Developers can’t be reached in the event of security issues and can’t send out important communications to their users if there is an issue, upgrade, or decision to be made. Adoption is held back.
14+
15+
### Why do I need Mailchain?
16+
17+
Mailchain acts as your web3 inbox, receiving messages in the context of your identities. Digital art-related messages get send to your digital collector identity, gaming-related notifications get sent to your gaming identity, and DeFi notifications get sent to your DeFi identity. Mailchain gives your the power to communicate and maintain privacy at the same time.
18+
19+
### How much does it cost to send a message on Mailchain?
20+
21+
For now, Mailchain is completely free. In future, Mailchain will subsidize a free tier for personal/low volume users. Higher volume users will pay a nominal transaction fee per message to cover transport and storage costs.
22+
23+
## Protocol and Decentralization
24+
25+
### Will Mailchain develop its own protocol?
26+
27+
Yes. The protocol will handle addressing, key lookups, transport, and storage. This is likely to leverage the security of an existing Layer 1 chain, whilst being able to support message sending at low cost and high throughput.
28+
29+
### Will Mailchain be fully decentralized?
30+
31+
Yes. Mailchain will be progressively decentralized. Our initial priorities are user experience, security, and supporting user-owned identity & data. Then, Mailchain will decentralize its protocol functions with an incentivization structure that encourages members of the community to participate in running infrastructure.
32+
33+
### Can Mailchain integrate or build on top of another protocol to avoid work duplication?
34+
35+
This has been explored previously. The biggest challenges are related to the other protocol's constraints (e.g. roadmap, scalability) and price volatility challenges. Mailchain constantly re-evaluates this position as new technologies and features become available.
36+
37+
### Can someone run their own Mailchain infrastructure?
38+
39+
As protocol functions are decentralized, the intention is for anyone to be able to run infrastructure.
40+
41+
### Why would someone run Mailchain infrastructure?
42+
Businesses may want to run their own infrastructure to control how and where messages are stored. Other community members or service providers may run infrastructure in order to receive rewards.
43+
44+
## Mailchain Account Security
45+
46+
### Who can access my account information?
47+
48+
You are only able to access your account or any account information, with your private key or account password. Mailchain _cannot_ access your account or account information.
49+
50+
### What happens if I forget or lose my password?
51+
52+
If you forget or lose your password, you can recover your account using your seed phrase.
53+
54+
### What happens if I forget or lose my seed phrase?
55+
56+
If you forget or lose your seed phrase, you can recovery your account by logging into to Mailchain using your password.
57+
58+
### What happens if I forget my seed phrase and my password?
59+
60+
If you forget your seed phrase and your password, your account will be inaccessible.
61+
62+
<!-- Account recoverability options? -->
63+
64+
## Data & Messages
65+
66+
### Who can read my messages?
67+
68+
Mailchain messages are encrypted end-to-end. This means that once the sender has encrypted a message using the recipient's encryption key, only the recipient is able to decrypt it. The sender also keep an encrypted version of the message.
69+
Mailchain _cannot_ read your messages, the storage provider _cannot_ read your messages, your internet service provider _cannot_ read your messages.
70+
71+
### Where is my data stored?
72+
73+
Mailchain stores encrypted message data on IPFS and other object stores.
74+
75+
<!-- ### Is my data backed up? -->

docs/user/guides/_category_.json

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"label": "Tutorials and Guides",
3+
"position": 5,
4+
"link": {
5+
"type": "generated-index"
6+
}
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
title: Create A Mailchain Account
3+
sidebar_position: 2
4+
---
5+
6+
# How To Create A Mailchain Account
7+
8+
[TODO]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
title: Send A Mailchain Message
3+
sidebar_position: 3
4+
---
5+
6+
# How To Send Mailchain Messages
7+
8+
[TODO]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
title: Read A Mailchain Message
3+
sidebar_position: 4
4+
---
5+
6+
# How To Read Mailchain Messages
7+
8+
[TODO]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"label": "Getting Started",
3+
"position": 3,
4+
"link": {
5+
"type": "generated-index"
6+
}
7+
}
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
---
2+
title: 'Article: Connecting Wallets'
3+
slug: './understanding-connecting-wallets'
4+
sidebar_position: 102
5+
---
6+
7+
# Introduction
8+
9+
Mailchain gives you the ability to check for messages sent to any of your blockchain addresses through your unified inbox. Once you register your blockchain address, you can start sending and receiving messages via that address.
10+
11+
Use cases include receiving notifications and communications based on your on-chain activities. You can also send messages from that address, and recipients can verify that the message originated from that address.
12+
13+
## How it works
14+
15+
Your Mailchain account has an identity key, which is used to generate messaging keys. When you register an address, you prove that you own it. It can then be associated with a messaging key. When someone sends a message to your address, the application looks up your address at the registry lookup and receives a response containing the corresponding messaging key for your address.
16+
17+
## Bob and Alice Use Case Example
18+
19+
Bob wants to send a message to Alice to let her know he has a new art collection coming out. He only knows the ethereum address she used when she bought his last piece. Alice has registered her address in Mailchain by signing a an approval message with her wallet. Bob sends a message to Alice's address. In the background, the Mailchain application looks up Alice's address and gets the corresponding messaging key. The message is encrypted and routed using the messaging key details.
20+
21+
When Alice opens her inbox, she can see a message from Bob sent to her ethereum address. Alice's identity and message key details are used by the application to obtain and decrypt the message body, but the private key information is never revealed.
22+
23+
Bob has no way of knowing any other address Alice has linked to her Mailchain unified inbox.
24+
When Bob receives a reply from Alice, he can check that the message key details are valid.
25+
Alice never had to enter any sensitive information to Mailchain, and she retains full control and ownership of her private keys for encryption and decryption.
26+
27+
## How to connect and register your wallet address
28+
29+
Follow these steps to connect and register an existing blockchain wallet address:
30+
31+
1. Click a button to open the connect wallet modal:
32+
33+
![](./img-understanding-connecting-wallets/connect-buttons.png)
34+
35+
1. Select a wallet provider (e.g. Metamask, WalletConnect, etc.), then click 'Connect wallet'
36+
37+
![](./img-understanding-connecting-wallets/connect-wallet.png)
38+
39+
1. Choose the address to connect, then click Next.
40+
41+
![](./img-understanding-connecting-wallets/connect-address.png)
42+
43+
1. Confirm to permit the Mailchain app to read your address.
44+
45+
![](./img-understanding-connecting-wallets/connect-address-confirm.png)
46+
47+
The address is now connected, but we need to register it in Mailchain. To do this:
48+
49+
1. Click 'Verify Address'
50+
51+
![](./img-understanding-connecting-wallets/verify-address-button.png)
52+
53+
1. A 'Signature Request' will pop up in your wallet. It contains the following text:
54+
55+
> Message: <br />
56+
> Welcome to Mailchain! <br />
57+
>
58+
> Please sign to start using this address with Mailchain. This will not trigger a blockchain transaction or cost any gas fees. <br />
59+
>
60+
> What's happening? <br />
61+
> A messaging key will be registered with this address and used only for messaging. It will replace any existing registered messaging keys. <br />
62+
>
63+
> Technical Details: <br />
64+
> Address: `your_address` <br />
65+
> Messaging key: `a_generated_messaging_key` <br />
66+
> Nonce: `a_number`
67+
68+
Review the request and click sign.
69+
70+
![](./img-understanding-connecting-wallets/wallet-signature-request.png)
71+
&nbsp;
72+
![](./img-understanding-connecting-wallets/wallet-signature-request-sign.png)
73+
74+
1. Your wallet will now be verified. You can click 'Done' to close the modal.
75+
76+
![](./img-understanding-connecting-wallets/wallet-verified.png)
77+
78+
### Tips
79+
80+
You will be able to see a folder in the sidebar for your registered address. To manage the address, click on 'Settings'.
81+
82+
![](./img-understanding-connecting-wallets/registered-address-folder.png)
83+
84+
When you compose a message, you can select the address to send from in the message dropdown.
85+
86+
![](./img-understanding-connecting-wallets/compose-from-registered-address.png)
87+
88+
## How to remove a wallet
89+
90+
1. To remove a registered wallet address from your inbox, go to 'Settings'
91+
92+
![](./img-understanding-connecting-wallets/sidebar-settings.png)
93+
94+
1. Click on 'Delete' for the account you wish to remove.
95+
96+
![](./img-understanding-connecting-wallets/delete-account-button.png)
97+
98+
1. Confirm deletion by entering in the full address, then Confirm.
99+
100+
![](./img-understanding-connecting-wallets/delete-account-confirm.png)
101+
102+
Your inbox will no longer check for new messages for this address.

0 commit comments

Comments
 (0)