Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ecash section to guide #1093

Draft
wants to merge 174 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 87 commits
Commits
Show all changes
174 commits
Select commit Hold shift + click to select a range
55b8252
Create Ecash section
swedishfrenchpress Apr 7, 2024
8f7514b
Update introduction.md
swedishfrenchpress Apr 21, 2024
0ee3c0e
Updated into + added overview page
swedishfrenchpress May 6, 2024
551d08c
Copy for the Ecash guide.
swedishfrenchpress May 19, 2024
ab1479f
Update ecash.md
swedishfrenchpress May 19, 2024
9223ef6
Update ecash.md
swedishfrenchpress May 19, 2024
5b8e9c5
Updated Content
swedishfrenchpress May 25, 2024
c1aee7b
Updated intro
swedishfrenchpress May 25, 2024
4c9cc97
Updated
swedishfrenchpress May 25, 2024
4a21181
Updated
swedishfrenchpress May 25, 2024
724a970
Updated
swedishfrenchpress May 25, 2024
6c8265a
Update overview.md
swedishfrenchpress May 26, 2024
04a06aa
Update
swedishfrenchpress May 26, 2024
92ac554
Update
swedishfrenchpress May 26, 2024
c08510b
Updated
swedishfrenchpress May 26, 2024
65e6217
Update
swedishfrenchpress May 26, 2024
aa6adfd
Updated
swedishfrenchpress May 26, 2024
351ab4e
Updated
swedishfrenchpress May 27, 2024
7805533
Update
swedishfrenchpress May 27, 2024
30f0a36
updated
swedishfrenchpress May 27, 2024
bf81300
Updated
swedishfrenchpress May 31, 2024
76420ac
update
swedishfrenchpress Jun 1, 2024
099ccfe
update
swedishfrenchpress Jun 1, 2024
2e32a62
update
swedishfrenchpress Jun 1, 2024
da6d144
update
swedishfrenchpress Jun 1, 2024
59b0db3
update
swedishfrenchpress Jun 1, 2024
e7f4c63
update
swedishfrenchpress Jun 1, 2024
33ab3d2
update
swedishfrenchpress Jun 1, 2024
6be0d27
Update
swedishfrenchpress Jun 1, 2024
dbc2778
update
swedishfrenchpress Jun 1, 2024
0d4c870
Update
swedishfrenchpress Jun 1, 2024
34f4d2d
Updated Overview
swedishfrenchpress Jun 1, 2024
6980d54
updated images
swedishfrenchpress Jun 1, 2024
e8bfcfa
update image sizes
swedishfrenchpress Jun 1, 2024
2fe6b91
image updated
swedishfrenchpress Jun 1, 2024
b94b95b
updated
swedishfrenchpress Jun 1, 2024
7afd991
updated icons for table
swedishfrenchpress Jun 2, 2024
f11d57e
Updated table
swedishfrenchpress Jun 2, 2024
84786fb
updated layout
swedishfrenchpress Jun 2, 2024
8cc225e
updated
swedishfrenchpress Jun 2, 2024
fb59860
Update overview.md
swedishfrenchpress Jun 2, 2024
c63ee0a
update images on table
swedishfrenchpress Jun 2, 2024
628a911
table updates
swedishfrenchpress Jun 2, 2024
879ecac
updated table
swedishfrenchpress Jun 2, 2024
6f6145e
update
swedishfrenchpress Jun 2, 2024
d19abfb
update
swedishfrenchpress Jun 2, 2024
513279e
updated
swedishfrenchpress Jun 2, 2024
17a0f9a
Update overview.md
swedishfrenchpress Jun 2, 2024
6a4863a
updated images
swedishfrenchpress Jun 30, 2024
81b9357
updated images
swedishfrenchpress Jun 30, 2024
9a9b432
Updated
swedishfrenchpress Jun 30, 2024
7d0191f
Updated
swedishfrenchpress Jun 30, 2024
747cf4a
updated
swedishfrenchpress Jun 30, 2024
b066672
update
swedishfrenchpress Jun 30, 2024
2ee145e
Update overview.md
swedishfrenchpress Jun 30, 2024
d5a2654
update
swedishfrenchpress Jul 9, 2024
e3fe035
update
swedishfrenchpress Jul 9, 2024
0969f64
Updated overview
swedishfrenchpress Jul 9, 2024
1e514eb
update
swedishfrenchpress Jul 9, 2024
7dc4d67
Update overview.md
swedishfrenchpress Jul 13, 2024
493b1fb
update
swedishfrenchpress Jul 13, 2024
cec311a
updated images
swedishfrenchpress Jul 13, 2024
faa0ec1
updated image
swedishfrenchpress Jul 13, 2024
42bed26
update best practices skelleton
swedishfrenchpress Jul 14, 2024
ede2adc
updated settings.
swedishfrenchpress Jul 14, 2024
3d4220e
update
swedishfrenchpress Jul 14, 2024
9433c70
Update overview.md
swedishfrenchpress Jul 23, 2024
f3c1d99
Update overview.md
swedishfrenchpress Jul 23, 2024
011167f
Cashuuuuuu
swedishfrenchpress Jul 23, 2024
0c9da8f
updated cashu info
swedishfrenchpress Jul 23, 2024
406da46
updated
swedishfrenchpress Jul 23, 2024
2a65eb0
updated
swedishfrenchpress Jul 23, 2024
384451e
update
swedishfrenchpress Jul 23, 2024
fdf5020
Update design-best-practices.md
swedishfrenchpress Jul 23, 2024
2b983d8
Update design-best-practices.md
swedishfrenchpress Jul 23, 2024
1b0ff53
update
swedishfrenchpress Jul 23, 2024
5dd3aaf
Update design-best-practices.md
swedishfrenchpress Jul 23, 2024
7204ea0
Update fedimint.md
swedishfrenchpress Jul 28, 2024
ee1db82
Update design-best-practices.md
swedishfrenchpress Jul 28, 2024
7a73ecc
Update design-best-practices.md
swedishfrenchpress Jul 28, 2024
cba20b2
Update design-best-practices.md
swedishfrenchpress Jul 28, 2024
892bfd4
Update design-best-practices.md
swedishfrenchpress Jul 28, 2024
1651bab
Update design-best-practices.md
swedishfrenchpress Jul 28, 2024
1cb6437
Update guide/how-it-works/ecash/overview.md
swedishfrenchpress Jul 31, 2024
3c42c62
Update guide/how-it-works/ecash/cashu.md
swedishfrenchpress Jul 31, 2024
a9d519d
Update guide/how-it-works/ecash/introduction.md
swedishfrenchpress Jul 31, 2024
cd73ff7
Update guide/how-it-works/ecash/overview.md
swedishfrenchpress Jul 31, 2024
d074872
removed custody spectrum from header on image
swedishfrenchpress Aug 7, 2024
2f03209
Update introduction.md
swedishfrenchpress Aug 7, 2024
79b3ba9
Update guide/how-it-works/ecash/introduction.md
swedishfrenchpress Aug 7, 2024
aa2af41
Update overview.md
swedishfrenchpress Aug 7, 2024
a569783
Update overview.md
swedishfrenchpress Aug 7, 2024
bf4f380
updated
swedishfrenchpress Aug 7, 2024
5449ce2
Update guide/how-it-works/ecash/overview.md
swedishfrenchpress Aug 7, 2024
2ff96a2
updated
swedishfrenchpress Aug 7, 2024
ae87df1
Merge branch 'ecash' of https://github.com/swedishfrenchpress/Guide i…
swedishfrenchpress Aug 7, 2024
74d1ee3
Update overview.md
swedishfrenchpress Aug 7, 2024
a29814b
Update overview.md
swedishfrenchpress Aug 7, 2024
247b017
Update overview.md
swedishfrenchpress Aug 7, 2024
d2ffc46
Update overview.md
swedishfrenchpress Aug 7, 2024
20c837b
Update overview.md
swedishfrenchpress Aug 7, 2024
d12ede2
Update cashu.md
swedishfrenchpress Aug 7, 2024
40b92f7
Update overview.md
swedishfrenchpress Aug 7, 2024
bca36b1
Update introduction.md
swedishfrenchpress Aug 7, 2024
0f9f192
update overview and intro page
swedishfrenchpress Aug 7, 2024
c1abf54
Update introduction.md
swedishfrenchpress Aug 7, 2024
4beeb6c
Update introduction.md
swedishfrenchpress Aug 7, 2024
5bb49df
updated protocol images.
swedishfrenchpress Aug 7, 2024
c70252d
added sending bitcoin image + flow
swedishfrenchpress Aug 7, 2024
c538a05
Update introduction.md
swedishfrenchpress Aug 8, 2024
b4a3342
update images
swedishfrenchpress Aug 8, 2024
c853128
update
swedishfrenchpress Aug 8, 2024
fdfd433
updated
swedishfrenchpress Aug 8, 2024
4c91c4a
update
swedishfrenchpress Aug 8, 2024
97145c2
update
swedishfrenchpress Aug 8, 2024
c0a54ba
Update introduction.md
swedishfrenchpress Aug 8, 2024
9f7be17
Update introduction.md
swedishfrenchpress Aug 8, 2024
9a85365
Update introduction.md
swedishfrenchpress Aug 11, 2024
cde45ad
Update overview.md
swedishfrenchpress Aug 11, 2024
88e30e4
Update overview.md
swedishfrenchpress Aug 11, 2024
f185aef
Link update + overview removal
swedishfrenchpress Aug 16, 2024
b2b840b
Added backup images
swedishfrenchpress Aug 16, 2024
7c14b44
Update cashu.md
swedishfrenchpress Aug 16, 2024
2a02e81
fixed indentation issues
swedishfrenchpress Aug 16, 2024
d8c6ab3
Update cashu.md
swedishfrenchpress Aug 16, 2024
99c3570
Added restore UI images
swedishfrenchpress Aug 16, 2024
a5e8510
Updated design best practices page.
swedishfrenchpress Aug 17, 2024
3a31c9a
Updated Cashu, Best Practices, and Fedimint sections.
swedishfrenchpress Aug 17, 2024
8f09f75
Updated images + info
swedishfrenchpress Aug 17, 2024
24d1b8f
big update!
swedishfrenchpress Aug 17, 2024
eb04ec8
updated
swedishfrenchpress Aug 17, 2024
7426051
Update design-best-practices.md
swedishfrenchpress Aug 17, 2024
d5e6b98
update
swedishfrenchpress Aug 17, 2024
3f61855
Update design-best-practices.md
swedishfrenchpress Aug 17, 2024
fcde42c
updated
swedishfrenchpress Aug 17, 2024
ca15323
Update
swedishfrenchpress Aug 17, 2024
39a5c55
Update design-best-practices.md
swedishfrenchpress Aug 17, 2024
5df1240
Update design-best-practices.md
swedishfrenchpress Aug 17, 2024
eea7c56
Update design-best-practices.md
swedishfrenchpress Aug 17, 2024
cf69dec
update image
swedishfrenchpress Aug 17, 2024
4282874
updated mint features
swedishfrenchpress Aug 17, 2024
5a0f02b
Update design-best-practices.md
swedishfrenchpress Aug 17, 2024
a25430e
update
swedishfrenchpress Aug 17, 2024
e73ab88
Added P2PK images.
swedishfrenchpress Aug 18, 2024
97adf92
Update design-best-practices.md
swedishfrenchpress Aug 18, 2024
5a0ce12
Updated images
swedishfrenchpress Aug 18, 2024
7749e98
update images
swedishfrenchpress Aug 19, 2024
9d8819c
Updated images
swedishfrenchpress Aug 27, 2024
9b2db69
update
swedishfrenchpress Aug 27, 2024
917d241
Updated section header images for cashu, fedimint, and ecash.
swedishfrenchpress Aug 27, 2024
0ba15f1
updated images
swedishfrenchpress Aug 27, 2024
2d78ef9
Update design-best-practices.md
swedishfrenchpress Aug 27, 2024
2d77631
updated restore images
swedishfrenchpress Aug 27, 2024
8ba623c
Update design-best-practices.md
swedishfrenchpress Aug 27, 2024
43dbf4e
image updates
swedishfrenchpress Aug 27, 2024
af6b58c
Updated best practices, fedimint,
swedishfrenchpress Aug 31, 2024
2d19286
illustration and copy updates.
swedishfrenchpress Aug 31, 2024
7eab60e
It's ready!
swedishfrenchpress Aug 31, 2024
19d6e5f
Update guide/how-it-works/ecash/design-best-practices.md
swedishfrenchpress Sep 1, 2024
141c288
Apply suggestions from thesimplekid's technical review
swedishfrenchpress Sep 1, 2024
400c6e9
Major Update: This update incorporates feedback received during the P…
swedishfrenchpress Sep 8, 2024
975f77d
Updated best practices section
swedishfrenchpress Sep 14, 2024
3d2a761
Updated hero images
swedishfrenchpress Sep 14, 2024
b87a384
Layout, image, and copy updates.
swedishfrenchpress Sep 23, 2024
eacc84d
Update guide/how-it-works/ecash/design-best-practices.md
swedishfrenchpress Sep 24, 2024
0fab1c5
Update guide/how-it-works/ecash/design-best-practices.md
swedishfrenchpress Sep 24, 2024
13561c9
Update guide/how-it-works/ecash/design-best-practices.md
swedishfrenchpress Sep 24, 2024
5cd664a
Apply suggestions from code review
swedishfrenchpress Sep 24, 2024
39571e4
Update design-best-practices.md
swedishfrenchpress Sep 24, 2024
8fccf4b
fixed issue causing checks to fail
swedishfrenchpress Sep 24, 2024
1caa661
Images, copy, formatting updates.
swedishfrenchpress Sep 24, 2024
e1beb47
Gateway best practices update
swedishfrenchpress Sep 24, 2024
fdeb215
Updated Fedimint and design practices sections.
swedishfrenchpress Nov 2, 2024
137c113
Updated design best practices to include user onboarding and joining …
swedishfrenchpress Nov 11, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text uses the term 'melting' but this illustration uses 'burning'. If they are the same, do replace the term. Also for the 2x image

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
swedishfrenchpress marked this conversation as resolved.
Show resolved Hide resolved
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
swedishfrenchpress marked this conversation as resolved.
Show resolved Hide resolved
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/guide/how-it-works/ecash/ecash.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
116 changes: 116 additions & 0 deletions guide/how-it-works/ecash/cashu.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
---
layout: guide
title: Cashu
description: Learn the basics of Cashu.
nav_order: 2
parent: Ecash
grand_parent: How it works
permalink: /guide/how-it-works/ecash/cashu/
redirect_from:
- /guide/ecash/cashu
image: https://bitcoin.design/assets/images/guide/how-it-works/ecash/ecash.jpg
main_classes: -no-top-padding
---

<!--

Editor's notes

Explains generally how multi-key schemes work.

Illustration sources

https://www.figma.com/community/file/888680264445459448
https://www.figma.com/community/file/995256542920917246/BDG---Private-key-management-illustrations

-->

{% include picture.html
image = "/assets/images/guide/how-it-works/ecash/ecash.jpg"
retina = "/assets/images/guide/how-it-works/ecash/[email protected]"
mobile = "/assets/images/guide/how-it-works/ecash/ecash-mobile.jpg"
mobileRetina = "/assets/images/guide/how-it-works/ecash/[email protected]"
alt-text = "ecash overview illustration"
width = 1600
height = 700
layout = "full-width"
%}

# Cashu
Cashu is an ecash protocol on that interoperates with the Lightning Network. Unlike Fedimint, which uses a federated model to distribute trust among multiple entities, Cashu operates with independent mints, offering greater flexibility and control to users. This makes Cashu distinct in providing an easy to deploy, flexible, and agile approach to managing Ecash on bitcoin.
swedishfrenchpress marked this conversation as resolved.
Show resolved Hide resolved

{% include tip/open.html color="blue" icon="info" label="User Experience Tip" %}

When designing for Cashu, consider providing options for users to set default mints and auto-swap preferences. Since Cashu mints are independently operated, users may prefer to default to a trusted mint.

{% include tip/close.html %}

## Backup and Restore for Cashu
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have a backup & restore section for cashu...we should also have an onboarding section for cashu wallets...

The Cashu backup and restoration process is designed to ensure users can securely recover their wallets and maintain access to their ecash tokens, even if they switch devices or experience data loss.

{% include tip/open.html color="blue" icon="info" label="Single Use Recovery" %}

Only use your recovery seed phrase once. Repeated use of the seed phrase for restoration can lead to synchronization issues and potential errors. This is because each time you restore, you might be dealing with an outdated state of your wallet, which can cause discrepancies in token balances and transactions.
swedishfrenchpress marked this conversation as resolved.
Show resolved Hide resolved

{% include tip/close.html %}


### Backup Process
1. Deterministic Wallet with Seed Phrase: Cashu uses a deterministic wallet model, where all cryptographic keys and tokens can be derived from a single seed phrase. This seed phrase is generated when the wallet is first created.

2. Secure Storage: Users are advised to store their seed phrase securely. It is crucial to keep this seed phrase in a safe, physical format (such as written on paper) and stored in a secure location to prevent unauthorized access or loss. The best practices in the [manual backup]({{ '/guide/private-key-management/manual-backup/' | relative_url }}) section for Lightning and on-chain wallets also apply to Cashu wallets.

swedishfrenchpress marked this conversation as resolved.
Show resolved Hide resolved
{% include tip/open.html color="blue" icon="info" label="Mint Information Needed" %}

Keep a record of the mints you are connected to. During the restoration process, you will need to reconnect to these specific mints to re-verify your tokens. Without this information, you might not be able to fully restore your wallet or verify your tokens.
swedishfrenchpress marked this conversation as resolved.
Show resolved Hide resolved

{% include tip/close.html %}

## Restoration Process
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be nice to have a carousel of screens here showing the process here...

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great suggestion! I'll add this.

1. Seed Phrase Entry: When restoring a wallet, users enter their seed phrase into the Cashu wallet application. This seed phrase regenerates all cryptographic keys associated with the user's account.

2. Automatic Recovery: After restoration, ensure your wallet is connected to the same mint(s) you were using before. This is crucial as the mint holds the records necessary to validate your tokens.
swedishfrenchpress marked this conversation as resolved.
Show resolved Hide resolved

3. Verification: The mint(s) checks these proofs against its records to confirm that the tokens have not been previously spent and are still valid. This process relies on the signatures (proofs) that were initially generated when the tokens were minted.

{% include tip/open.html color="blue" icon="info" label="Privacy Considerations During Verification" %}

Verifying tokens after restoration might temporarily compromise their privacy. The mint needs to revalidate the tokens, which can potentially expose the transaction istory associated with those tokens. Be mindful of this aspect if privacy is a significant concern for your use case.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there an actionable or mitigating measure for this? If so, that should be mentioned here.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll have to do some research on this and get back to you. I'm not sure if there is.


{% include tip/close.html %}

## When to Use Cashu

* **Rapid Deployment and Simple Integration** - Great for projects that need to be launched quickly with minimal setup. This includes MVPs, prototypes, and community-based applications where speed and ease of deployment are crucial.

* **Quick Interoperability with the Lightning Network** - Ideal when you need to integrate with the Lightning Network for fast, low-fee transactions. Cashu supports seamless, out of the box integration with existing Lightning wallets and infrastructure.

* **Localized or Small Community Solutions** - Implement Cashu in scenarios where independent mints operated by trusted local entities can serve a community, enhancing trust and customization based on local needs.

### When to Use Fedimint Instead

* **Federated Trust Models** - Use Fedimint when your application benefits from spreading trust across multiple entities, reducing reliance on any single operator and enhancing security.

## Products that use Cashu
- [Cashu.me](https://wallet.cashu.me/)
- [eNuts](https://www.enuts.cash/)
- [Macadamia](https://macadamia.cash/)
- [npub.cash](https://npub.cash/)
- [Nutstash](https://nutstash.app/)
- [Minibits](https://www.minibits.cash/)

## Cashu resources
Cashu Documentation - Access the official Cashu documentation for detailed information on setup, usage, and integration.
- [Cashu Resources](https://cashu.space/)
- [Cashu Documentation](https://docs.cashu.space/)

---

Next, we do a technical deep dive into how [Fedimint]({{ '/guide/how-it-works/ecash/fedimint' | relative_url }}) works.

{% include next-previous.html
previousUrl = "/guide/how-it-works/ecash/overview/"
previousName = "Overview"
nextUrl = "/guide/how-it-works/fedimint/"
swedishfrenchpress marked this conversation as resolved.
Show resolved Hide resolved
nextName = "Fedimint"
%}
172 changes: 172 additions & 0 deletions guide/how-it-works/ecash/design-best-practices.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
---
layout: guide
title: Design best practices
description: An overview of how to help users maintain their financial privacy while using a bitcoin daily spending wallet.
nav_order: 5
parent: Ecash
grand_parent: How it works
permalink: /guide/how-it-works/ecash/design-best-practices
redirect_from:
- /guide/how-it-works/ecash/
main_classes: -no-top-padding
image: /assets/images/guide/daily-spending-wallet/settings/settings-preview.jpg
image_base: /assets/images/guide/daily-spending-wallet/settings/
images_general:
- file: general
modalImage: general-big
alt: Mobile screen showing a list of settings categories
caption: General is a catch-all category for options that don't clearly fit elsewhere.
- file: local-currency
modalImage: local-currency-big
alt: Mobile screen with a list of currencies to choose from
caption: While it should be automatically detected, users can change their local currency.
- file: bitcoin-unit
modalImage: bitcoin-unit-big
alt: Mobile screen with automatic, bitcoin, and satoshi options
caption: The bitcoin unit can also be switched contextually in the send screen.
images_security:
- file: security
modalImage: security-big
alt: Mobile screen with PIN, FaceID, wallet deletion and wallet limit options
caption: Options to limit unwanted access and payments.
- file: delete-wallet
modalImage: delete-wallet-big
alt: Confirmation modal for deleting the wallet from the device
caption: This screen requires very clear language to ensure users understand the implications.
images_network:
- file: network
modalImage: network-big
alt: Mobile screen with bitcoin and lightning network, as well as Tor options
caption: Overview screen for network options.
- file: bitcoin-network
modalImage: bitcoin-network-big
alt: Mobile screen with bitcoin network customization options
caption: Users can choose their own node to connect to.
- file: lightning-network
modalImage: lightning-network-big
alt: Mobile screen with lightning network customization options
caption: Information about the user’s node, and additional security options.
- file: watchtower
modalImage: watchtower-big
alt: Mobile screen with lightning network watchtower options
caption: Users can enable watchtower functionality to protect their funds.
---

{% include picture.html
image = "/assets/images/guide/how-it-works/ecash/ecash.jpg"
retina = "/assets/images/guide/how-it-works/ecash/[email protected]"
mobile = "/assets/images/guide/how-it-works/ecash/ecash-mobile.jpg"
mobileRetina = "/assets/images/guide/how-it-works/ecash/[email protected]"
alt-text = "ecash overview illustration"
width = 1600
height = 700
layout = "full-width"
%}

<!--


This is a summary page of best design practices for both bitcoin backed ecash.

The design source for screen mock-ups on this page can be found here:
ADD Figma URL


-->

# Ecash design best practices
{: .no_toc }

---

<div class="glossary-toc" markdown="1">
* Table of contents
{:toc}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the table of contents should include individual user flows like "Joining a mint", "Sending ecash", etc.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you have a guide or example on how to customize the table of contents and link it to specific sections? It seems to automatically display whatever is marked as ## or H2, but I’d like to create my own shortcuts.

</div>

---
Below you will find best practices for Ecash in general, cashu specifics, and fedimint specifics.

## General ecash best practices
Ecash general best design practices.

### Multiple mint display
A paragraph explaining the importance of displaying multiple mints, and some design considerations to keep in mind.

{% include image-gallery.html pages = page.images_general %}

#### Pending tokens

<div class="center" markdown="1">

{% include picture.html
image = "/assets/images/guide/daily-spending-wallet/settings/fees.png"
retina = "/assets/images/guide/daily-spending-wallet/settings/[email protected]"
modalImage = "/assets/images/guide/daily-spending-wallet/settings/fees-big.png"
alt-text = ""
width = 250
height = 541
layout = "float-right-desktop -background -shadow"
caption = "The fees screen provides a clear overview of all fees that may be charged."
%}

A paragraph explaining the importance of displaying pending tokens.

</div>

## Cashu best practices
A paragraph introduction to cashu specific best practices.

### Meta data
Explaing the meta data fields for cashu. Explain NUT06.

{% include image-gallery.html pages = page.images_security %}

### Edit mint URL / Refresh mint settings

<div class="center" markdown="1">

{% include picture.html

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The federation as a whole could be online, degraded, or offline. However, each guardian is either online or offline.

image = "/assets/images/guide/daily-spending-wallet/settings/wallet-backup.png"
retina = "/assets/images/guide/daily-spending-wallet/settings/[email protected]"
modalImage = "/assets/images/guide/daily-spending-wallet/settings/wallet-backup-big.png"
alt-text = ""
width = 250
height = 541
layout = "float-right-desktop -background -shadow"
caption = "Backup options are typically configured in first use and rarely need to be accessed."
%}

A paragraph explaining the importance of giving the user the ability to edit a mint URL and refresh mint settings. Explain the connection to NUT06.

</div>

### P2PK Lock
Explain P2PK Lock in Cashu. Only a few wallets support it. But it's a powerful feature that allows for offline payment and should be designed for.

{% include image-gallery.html pages = page.images_network %}

### Back up and restore
Much of the same info as the backup section in Cashu page. Except here we will highlight examples of how to encourge the user to save a list of mints and mint urls they are connected to.

{% include image-gallery.html pages = page.images_network %}

## Fedimint design best practices
Ecash general best design practices.

### Guardian list display
Explain that the design practices below are specific to Fedimint.

<div class="center" markdown="1">

{% include picture.html
image = "/assets/images/guide/daily-spending-wallet/settings/help.png"
retina = "/assets/images/guide/daily-spending-wallet/settings/[email protected]"
modalImage = "/assets/images/guide/daily-spending-wallet/settings/help-big.png"
alt-text = ""
width = 250
height = 541
layout = "float-right-desktop -background -shadow"
caption = "Help & support options ensure users can get the right information when they need it."
%}
</div>
59 changes: 59 additions & 0 deletions guide/how-it-works/ecash/fedimint.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
---
layout: guide
title: Fedimint
description: Learn the basics of Fedimint.
nav_order: 3
parent: Ecash
grand_parent: How it works
permalink: /guide/how-it-works/ecash/fedimint/
redirect_from:
- /guide/ecash/fedimint
image: https://bitcoin.design/assets/images/guide/how-it-works/ecash/ecash.jpg
main_classes: -no-top-padding
---

<!--

Editor's notes

Explains generally how multi-key schemes work.

Illustration sources

https://www.figma.com/community/file/888680264445459448
https://www.figma.com/community/file/995256542920917246/BDG---Private-key-management-illustrations

-->

{% include picture.html
image = "/assets/images/guide/how-it-works/ecash/ecash.jpg"
retina = "/assets/images/guide/how-it-works/ecash/[email protected]"
mobile = "/assets/images/guide/how-it-works/ecash/ecash-mobile.jpg"
mobileRetina = "/assets/images/guide/how-it-works/ecash/[email protected]"
alt-text = "ecash overview illustration"
width = 1600
height = 700
layout = "full-width"
%}

# Fedimint
Fedimint is another Chaumian ecash protocol uses both on-chain Bitcoin transactions and the Lightning Network.Unlike Cashu, Fedimint uses a federated model where multiple independent entities, known as “Guardians,” collectively operate the mint.

## How Fedimint Works
TBD

**Products that use Fedimint**
- [Fedi](https://www.fedi.xyz)
- [Mutiny](https://www.mutinywallet.com/)
- [Clovyr](https://clovyr.app/)

---

Next, we do a technical deep dive into how [best practices]({{ '/guide/how-it-works/transactions/' | relative_url }}) of ecash on bitcoin.

{% include next-previous.html
previousUrl = "/guide/how-it-works/ecash/cashu/"
previousName = "Cashu"
nextUrl = "/guide/how-it-works/ecash/best-practices/"
nextName = "Best practices"
%}
Loading