From 6d547e4f005cccb8cf4b407526f074a81954d734 Mon Sep 17 00:00:00 2001 From: Daniel Nordh <3393669+danielnordh@users.noreply.github.com> Date: Thu, 14 Oct 2021 12:09:15 +0100 Subject: [PATCH 01/11] Add 'First use' intro, update 'Create a wallet' --- guide/onboarding/creating-a-new-wallet.md | 29 +++++++++++++++-------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/guide/onboarding/creating-a-new-wallet.md b/guide/onboarding/creating-a-new-wallet.md index 74731dd0e..8d0f81b31 100644 --- a/guide/onboarding/creating-a-new-wallet.md +++ b/guide/onboarding/creating-a-new-wallet.md @@ -20,17 +20,28 @@ image: https://bitcoin.design/assets/images/guide/onboarding/creating-a-new-wall layout = "full-width" %} -# Creating a new wallet +# First use -First, bitcoin [wallets]({{ 'guide/glossary/#wallet' | relative_url }}) are not analogous to their namesakes. Physical wallets are places to store physical currency, credit cards, IDs, and so on. Bitcoin wallets don't store bitcoin. However, the [self custodial]({{ 'guide/glossary/wallet/#non-custodial--custodial-wallet' | relative_url }}) nature of bitcoin wallets gives users full control of what they do with their bitcoin. +There are a number of common tasks a user might want to achieve the first time they open a wallet application: -Instead, a Bitcoin wallet contains the "private keys" to a users bitcoin. The bitcoin is located on the Bitcoin network that contains a public ledger similar in many ways to a spreadsheet with a record of everyone's transactions and balances. Private keys let users access bitcoin associated with those keys. A more suitable analogy for a Bitcoin wallet would be a keychain. +- [Create a new wallet](/guide/onboarding/creating-a-new-wallet/#creating-a-wallet), or +- [Restore an existing wallet](/guide/onboarding/restoring-a-wallet/) +- [Backup a wallet](/guide/onboarding/backing-up-a-recovery-phrase/) +- [Acquire bitcoin](/guide/onboarding/funding-a-wallet/) - Like regular keys on a keychain, Bitcoin private keys can be copied. For example, if you gave someone a copy of your house keys, they can unlock the door to your home. Likewise, if someone has a copy of your private key, they can access your bitcoin. This makes [private key management]({{ '/guide/private-key-management/introduction' | relative_url }}) one of the most important considerations of any bitcoin owner. +While the first two, creating or restoring a wallet, normally need to be tackled straight away, the last two can be designed to fit the flow and capability of your application. - Most bitcoin wallets will automatically generate users' private keys during onboarding, and is not usually something a user controls. We will look at practical design solutions for guiding users through this process in this chapter. This page explains how we can help get a user comfortable with the idea of a self-custodial wallet. +It is common to see onboarding flows that implores the user to do a manual backup of their recovery phrase straight away, often before they have even gotten to see the main screen of the application. While this can make sure the user is aware of the need to backup, their motivation and ability to safely do this at that exact moment might be limited. -A few different types of wallets let you send, receive, store, and manage bitcoin. For this page, we focus on regular single-key wallets, which are the ones most commonly used. +Alternative approaches can be to wait and prompt the user only once there are funds in the wallet, at regular intervals, or to use an automatic cloud backup for small amounts. This is all up to you as the application designer to decide what works best in your users’ use case. + +### Creating a wallet + +[Bitcoin wallets]({{ 'guide/glossary/#wallet' | relative_url }}) contain the “private keys” to a user’s bitcoin. Private keys let users access bitcoin associated with those keys. + +Like regular keys on a keychain, Bitcoin private keys can be copied. This makes [private key management]({{ '/guide/private-key-management/introduction' | relative_url }}) one of the most important considerations of any bitcoin owner. + +Most Bitcoin wallet applications will automatically generate users’ private keys during onboarding.
@@ -44,11 +55,9 @@ A few different types of wallets let you send, receive, store, and manage bitcoi layout = "float-left-desktop -background -shadow" %} -Most wallets will begin the onboarding process by creating a new or restoring an existing wallet. New users to Bitcoin will usually be going through the flow of creating a new wallet. - -Once an individual selects “create a new wallet”, you might present informational carousels that provide a high-level overview of the implications, benefits, and responsibility that comes with having a self-custodial wallet. Here you can explain to your user that access to the wallet will not require collecting any sensitive information such as usernames and passwords, which is often the case with traditional financial products. +After the user selects “Create a new wallet”, you might present informational carousels that provide a high-level overview of the implications, benefits, and responsibility that comes with having a self-custodial wallet. Here you can explain to your user that access to the wallet will not require collecting any sensitive information such as usernames and passwords, which is often the case with traditional financial products. -Rather, the user can directly access their funds as long as they have access to the private key or recovery phrase. You should help your users understand that your team do not have the ability to recover their funds in the event they lose their private key. A self custodial wallet often means the user will have to take on greater responsibilty to safely protect their private key so they can always access their funds. +Rather, the user can directly access their funds as long as they have access to the private key or recovery phrase. You should help your users understand that your team does not have the ability to recover their funds in the event they lose their private key. A self custodial wallet often means the user will have to take on greater responsibility to safely protect their private key so they can always access their funds.
From 91fa35333cc513738f68ab12a5cd583c5646b8c4 Mon Sep 17 00:00:00 2001 From: Daniel Nordh <3393669+danielnordh@users.noreply.github.com> Date: Thu, 14 Oct 2021 12:10:08 +0100 Subject: [PATCH 02/11] Add Lightning paragraph --- guide/onboarding/creating-a-new-wallet.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/guide/onboarding/creating-a-new-wallet.md b/guide/onboarding/creating-a-new-wallet.md index 8d0f81b31..e2106a91b 100644 --- a/guide/onboarding/creating-a-new-wallet.md +++ b/guide/onboarding/creating-a-new-wallet.md @@ -70,6 +70,8 @@ Wallet creation during onboarding is an excellent opportunity to educate your us While this may sound daunting to first-time users, these caveats mustn't be hidden. Doing so may severely compromise their funds' safety, as their default assumptions and behaviors could potentially mimic how they typically use centralized applications (for example, feeling like it is OK if they forget their account information because they can contact customer support to help them recover it). +Ideally your application supports both the base layer and the Lightning network. When talking about backups, you should be clear on what is possible and required in terms of restoring the user’s wallet from a backup. + Some studies suggest that users struggled greatly with technical terminology and feeling as though they had a lack of guidance during wallet setup. By walking users through single steps that clearly frame the features of self-custody Bitcoin wallets, users will feel well-equipped to navigate and use the wallet confidently. > Users reported that they often felt like they lacked guidance and understanding during wallet setup From 33847585340d0a92f25ee27aa1e43b19e16e8f2a Mon Sep 17 00:00:00 2001 From: Daniel Nordh <3393669+danielnordh@users.noreply.github.com> Date: Thu, 14 Oct 2021 12:11:35 +0100 Subject: [PATCH 03/11] Minor readability tweaks --- guide/onboarding/creating-a-new-wallet.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/guide/onboarding/creating-a-new-wallet.md b/guide/onboarding/creating-a-new-wallet.md index e2106a91b..7f7d905d2 100644 --- a/guide/onboarding/creating-a-new-wallet.md +++ b/guide/onboarding/creating-a-new-wallet.md @@ -78,7 +78,7 @@ Some studies suggest that users struggled greatly with technical terminology and > > As researched by Eskandari et al -Below is an example of some carousel screens that might be useful in helping a user understand what to expect from this wallet. For this example, we have opted to backup up the users' recovery phrase to a cloud provider but other alternatives exist. +Below is an example of some carousel screens that might be useful in helping a user understand what to expect from this wallet. For this example, we have opted to backup the users' recovery phrase to a cloud provider but other alternatives exist. - These screens explicitly lay out/guide users on the unique features of self-custodial wallets to make sure they understand these caveats. These screens suggest talking about ownership, explicitly stating the recovery mechanism that the respective wallet uses, and security measures that they should take to protect their wallet. + These screens explicitly lay out the unique features of self-custodial wallets to make sure the user understands these caveats. These screens suggest talking about ownership, explicitly stating the recovery mechanism that the respective wallet uses, and security measures that they should take to protect their wallet. --- From c4ec8ff33828b2cadeef3be04c07685bf66ac583 Mon Sep 17 00:00:00 2001 From: Daniel Nordh <3393669+danielnordh@users.noreply.github.com> Date: Thu, 14 Oct 2021 12:18:12 +0100 Subject: [PATCH 04/11] Update name of page, permalink and mentions on other pages --- guide/onboarding/backing-up-a-recovery-phrase.md | 4 ++-- guide/onboarding/creating-a-new-wallet.md | 8 ++++---- guide/onboarding/getting-to-know-your-users.md | 4 ++-- guide/onboarding/introduction.md | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/guide/onboarding/backing-up-a-recovery-phrase.md b/guide/onboarding/backing-up-a-recovery-phrase.md index 180da6710..da994f27e 100644 --- a/guide/onboarding/backing-up-a-recovery-phrase.md +++ b/guide/onboarding/backing-up-a-recovery-phrase.md @@ -75,8 +75,8 @@ However, there may be times when it is necessary to use a manual backup alternat The next sections will look at some UI considerations for [automatic cloud backups]({{ '/guide/onboarding/backing-up-a-recovery-phrase/automatic-cloud-backup' | relative_url }}) and [manual backups]({{ 'guide/onboarding/backing-up-a-recovery-phrase/manual-backup/' | relative_url }}). {% include next-previous.html - previousUrl = "/guide/onboarding/creating-a-new-wallet/" - previousName = "Creating a new wallet" + previousUrl = "/guide/onboarding/first-use/" + previousName = "First use" nextUrl = "/guide/onboarding/backing-up-a-recovery-phrase/automatic-cloud-backup/" nextName = "Automatic cloud backups" %} diff --git a/guide/onboarding/creating-a-new-wallet.md b/guide/onboarding/creating-a-new-wallet.md index 7f7d905d2..ae4e2a140 100644 --- a/guide/onboarding/creating-a-new-wallet.md +++ b/guide/onboarding/creating-a-new-wallet.md @@ -1,10 +1,10 @@ --- layout: guide -title: Creating a new wallet -description: Steps to take when creating a new wallet, and tips for a great user experience. +title: First use +description: Common tasks when using a wallet application for the first time. parent: Onboarding nav_order: 2 -permalink: /guide/onboarding/creating-a-new-wallet/ +permalink: /guide/onboarding/first-use/ main_classes: -no-top-padding image: https://bitcoin.design/assets/images/guide/onboarding/creating-a-new-wallet/creating-a-new-wallet-preview.png --- @@ -24,7 +24,7 @@ image: https://bitcoin.design/assets/images/guide/onboarding/creating-a-new-wall There are a number of common tasks a user might want to achieve the first time they open a wallet application: -- [Create a new wallet](/guide/onboarding/creating-a-new-wallet/#creating-a-wallet), or +- [Create a new wallet](/guide/onboarding/first-use/#creating-a-wallet), or - [Restore an existing wallet](/guide/onboarding/restoring-a-wallet/) - [Backup a wallet](/guide/onboarding/backing-up-a-recovery-phrase/) - [Acquire bitcoin](/guide/onboarding/funding-a-wallet/) diff --git a/guide/onboarding/getting-to-know-your-users.md b/guide/onboarding/getting-to-know-your-users.md index 8f923ea58..2d8c2988e 100644 --- a/guide/onboarding/getting-to-know-your-users.md +++ b/guide/onboarding/getting-to-know-your-users.md @@ -182,11 +182,11 @@ Ultimately the goal of onboarding is that users trust the application, feel comf --- -Next, we will cover [creating a new wallet]({{ '/guide/onboarding/creating-a-new-wallet/' | relative_url }}). +Next, we will cover the [first use]({{ '/guide/onboarding/first-use/' | relative_url }}) of a wallet application. {% include next-previous.html previousUrl = "/guide/onboarding/introduction/" previousName = "Onboarding" - nextUrl = "/guide/onboarding/creating-a-new-wallet/" + nextUrl = "/guide/onboarding/first-use/" nextName = "Creating a new wallet" %} diff --git a/guide/onboarding/introduction.md b/guide/onboarding/introduction.md index 9c965e6a4..95bcd114c 100644 --- a/guide/onboarding/introduction.md +++ b/guide/onboarding/introduction.md @@ -49,9 +49,9 @@ This section will give you some tips on how best to understand and develop knowl --- -### [Creating a new wallet]({{ '/guide/onboarding/creating-a-new-wallet/' | relative_url }}) +### [First use]({{ '/guide/onboarding/first-use/' | relative_url }}) -An overview of what information to include when creating a wallet for the first time. +An overview of common tasks when using a wallet application for the first time. --- From 564c40f6895aff2a26f210618a631ac5fb4cea75 Mon Sep 17 00:00:00 2001 From: Daniel Nordh <3393669+danielnordh@users.noreply.github.com> Date: Thu, 14 Oct 2021 12:20:18 +0100 Subject: [PATCH 05/11] Rename file --- guide/onboarding/{creating-a-new-wallet.md => first-use.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename guide/onboarding/{creating-a-new-wallet.md => first-use.md} (100%) diff --git a/guide/onboarding/creating-a-new-wallet.md b/guide/onboarding/first-use.md similarity index 100% rename from guide/onboarding/creating-a-new-wallet.md rename to guide/onboarding/first-use.md From 278a42d63c8e815fd5d160c9667411c33e490e6a Mon Sep 17 00:00:00 2001 From: Daniel Nordh <3393669+danielnordh@users.noreply.github.com> Date: Thu, 14 Oct 2021 12:31:07 +0100 Subject: [PATCH 06/11] Minor readability tweaks. --- guide/onboarding/first-use.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/guide/onboarding/first-use.md b/guide/onboarding/first-use.md index ae4e2a140..26c19bcd9 100644 --- a/guide/onboarding/first-use.md +++ b/guide/onboarding/first-use.md @@ -31,17 +31,15 @@ There are a number of common tasks a user might want to achieve the first time t While the first two, creating or restoring a wallet, normally need to be tackled straight away, the last two can be designed to fit the flow and capability of your application. -It is common to see onboarding flows that implores the user to do a manual backup of their recovery phrase straight away, often before they have even gotten to see the main screen of the application. While this can make sure the user is aware of the need to backup, their motivation and ability to safely do this at that exact moment might be limited. +It is common to see onboarding flows that implore the user to do a manual backup of their recovery phrase straight away, often before they have even gotten to see the main screen of the application. While this can make sure the user is aware of the need to backup, their motivation and ability to safely do this at that exact moment might be limited. -Alternative approaches can be to wait and prompt the user only once there are funds in the wallet, at regular intervals, or to use an automatic cloud backup for small amounts. This is all up to you as the application designer to decide what works best in your users’ use case. +Alternative approaches can be to wait and prompt the user only once there are funds in the wallet, at regular intervals, or to use an automatic cloud backup for small amounts. It is up to you as the application designer to decide what works best in your users’ use case. ### Creating a wallet -[Bitcoin wallets]({{ 'guide/glossary/#wallet' | relative_url }}) contain the “private keys” to a user’s bitcoin. Private keys let users access bitcoin associated with those keys. +[Bitcoin wallets]({{ 'guide/glossary/#wallet' | relative_url }}) contain the private keys to a user’s bitcoin. Private keys let users access bitcoin associated with those keys. If the user does not have a Bitcoin wallet already that they want to restore, it is necessary to create a new one. -Like regular keys on a keychain, Bitcoin private keys can be copied. This makes [private key management]({{ '/guide/private-key-management/introduction' | relative_url }}) one of the most important considerations of any bitcoin owner. - -Most Bitcoin wallet applications will automatically generate users’ private keys during onboarding. +Like regular keys on a keychain, Bitcoin private keys can be copied. This makes [private key management]({{ '/guide/private-key-management/introduction' | relative_url }}) one of the most important considerations of any bitcoin owner. Most Bitcoin wallet applications will automatically generate the user’s private keys during onboarding.
@@ -111,7 +109,7 @@ Below is an example of some carousel screens that might be useful in helping a u
- These screens explicitly lay out the unique features of self-custodial wallets to make sure the user understands these caveats. These screens suggest talking about ownership, explicitly stating the recovery mechanism that the respective wallet uses, and security measures that they should take to protect their wallet. + These screens lay out the unique features of self-custodial wallets to make sure the user understands these caveats. These screens suggest talking about ownership, explicitly stating the recovery mechanism that the respective wallet uses, and security measures that they should take to protect their wallet. --- From 91cc6c8f0212aa40c736bcb5f49849c855da13e6 Mon Sep 17 00:00:00 2001 From: Daniel Nordh <3393669+danielnordh@users.noreply.github.com> Date: Fri, 15 Oct 2021 15:01:25 +0100 Subject: [PATCH 07/11] Update wording Co-authored-by: Christoph Ono --- guide/onboarding/first-use.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guide/onboarding/first-use.md b/guide/onboarding/first-use.md index 26c19bcd9..b89369cef 100644 --- a/guide/onboarding/first-use.md +++ b/guide/onboarding/first-use.md @@ -27,7 +27,7 @@ There are a number of common tasks a user might want to achieve the first time t - [Create a new wallet](/guide/onboarding/first-use/#creating-a-wallet), or - [Restore an existing wallet](/guide/onboarding/restoring-a-wallet/) - [Backup a wallet](/guide/onboarding/backing-up-a-recovery-phrase/) -- [Acquire bitcoin](/guide/onboarding/funding-a-wallet/) +- [Fund a wallet](/guide/onboarding/funding-a-wallet/) While the first two, creating or restoring a wallet, normally need to be tackled straight away, the last two can be designed to fit the flow and capability of your application. From f3e3696fbf8c797f601532e138d0ada9293cf4c1 Mon Sep 17 00:00:00 2001 From: Daniel Nordh <3393669+danielnordh@users.noreply.github.com> Date: Fri, 15 Oct 2021 15:02:09 +0100 Subject: [PATCH 08/11] Minor tweaks Co-authored-by: Christoph Ono --- guide/onboarding/first-use.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guide/onboarding/first-use.md b/guide/onboarding/first-use.md index b89369cef..83faf6820 100644 --- a/guide/onboarding/first-use.md +++ b/guide/onboarding/first-use.md @@ -55,7 +55,7 @@ Like regular keys on a keychain, Bitcoin private keys can be copied. This makes After the user selects “Create a new wallet”, you might present informational carousels that provide a high-level overview of the implications, benefits, and responsibility that comes with having a self-custodial wallet. Here you can explain to your user that access to the wallet will not require collecting any sensitive information such as usernames and passwords, which is often the case with traditional financial products. -Rather, the user can directly access their funds as long as they have access to the private key or recovery phrase. You should help your users understand that your team does not have the ability to recover their funds in the event they lose their private key. A self custodial wallet often means the user will have to take on greater responsibility to safely protect their private key so they can always access their funds. +Rather, the user can directly access their funds as long as they have access to the private key or recovery phrase. You should help your users understand that your team does not have the ability to recover their funds in the event they lose their private key. A self-custodial wallet often means the user will have to take on greater responsibility to safely protect their private key so they can always access their funds. From 8d2b0ae83d0633f548744326a42f779cd5c22ce4 Mon Sep 17 00:00:00 2001 From: Daniel Nordh <3393669+danielnordh@users.noreply.github.com> Date: Fri, 15 Oct 2021 15:03:02 +0100 Subject: [PATCH 09/11] Add comma Co-authored-by: Christoph Ono --- guide/onboarding/first-use.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guide/onboarding/first-use.md b/guide/onboarding/first-use.md index 83faf6820..f270db53f 100644 --- a/guide/onboarding/first-use.md +++ b/guide/onboarding/first-use.md @@ -76,7 +76,7 @@ Some studies suggest that users struggled greatly with technical terminology and > > As researched by Eskandari et al -Below is an example of some carousel screens that might be useful in helping a user understand what to expect from this wallet. For this example, we have opted to backup the users' recovery phrase to a cloud provider but other alternatives exist. +Below is an example of some carousel screens that might be useful in helping a user understand what to expect from this wallet. For this example, we have opted to backup the users' recovery phrase to a cloud provider, but other alternatives exist. @@ -567,11 +567,11 @@ This can be a tricky experience to address. For one, non-custodial cryptocurrenc --- -On to [interoperability]({{ '/guide/designing-products/wallet-interoperability/' | relative_url }}) which is essential for smooth interaction and migration between Bitcoin products. +On to [wallet interoperability]({{ '/guide/designing-products/wallet-interoperability/' | relative_url }}) which is essential for smooth interaction and migration between Bitcoin products. {% include next-previous.html - previousUrl = "/guide/designing-products/getting-to-know-your-users/" - previousName = "Getting to know your users" + previousUrl = "/guide/designing-products/personal-finance/" + previousName = "Personal finance" nextUrl = "/guide/designing-products/wallet-interoperability/" - nextName = "Interoperability" + nextName = "Wallet interoperability" %} diff --git a/guide/designing-products/design-resources.md b/guide/designing-products/design-resources.md index d108ea1c7..c200cc0d7 100644 --- a/guide/designing-products/design-resources.md +++ b/guide/designing-products/design-resources.md @@ -2,7 +2,7 @@ layout: guide title: Design resources description: Design files by and for the Bitcoin Design Community -nav_order: 10 +nav_order: 9 parent: Designing Bitcoin products permalink: /guide/designing-products/design-resources/ main_classes: -no-top-padding diff --git a/guide/designing-products/designing-products.md b/guide/designing-products/designing-products.md index 606163ebc..8fb06229e 100644 --- a/guide/designing-products/designing-products.md +++ b/guide/designing-products/designing-products.md @@ -70,19 +70,13 @@ If we consider Bitcoin money, we need to consider how Bitcoin users think about --- -### [Getting to know your users]({{ '/guide/designing-products/getting-to-know-your-users/' | relative_url }}) - -This section will give you some tips on how best to understand and develop knowledge about your users. - ---- - ### [Common user flows]({{ '/guide/designing-products/common-user-flows/' | relative_url }}) Most Bitcoin applications share certain user activities, from initial setup to making a transaction. It is vital to follow users' expected patterns and behaviors to reduce mistakes and enable seamless switching between products. --- -### [Interoperability]({{ '/guide/designing-products/wallet-interoperability/' | relative_url }}) +### [Wallet interoperability]({{ '/guide/designing-products/wallet-interoperability/' | relative_url }}) Get to know the points of interaction and overlap connecting payment links, wallet recovery, node configurations, and more. diff --git a/guide/designing-products/personal-finance.md b/guide/designing-products/personal-finance.md index e4588d3f4..8c2d9c0d0 100644 --- a/guide/designing-products/personal-finance.md +++ b/guide/designing-products/personal-finance.md @@ -263,11 +263,11 @@ Considering your product, ask yourself these questions: --- -Next we will look at why it is important to [get to know your users]({{ '/guide/designing-products/getting-to-know-your-users/' | relative_url }}) when desiging Bitcoin applications. +Looking closer at these use cases, we can identify a series of user actions, as outlined in [common user flows]({{ '/guide/designing-products/common-user-flows/' | relative_url }}). {% include next-previous.html previousUrl = "/guide/designing-products/usage-life-cycle/" previousName = "Usage life cycle" - nextUrl = "/guide/designing-products/getting-to-know-your-users/" - nextName = "Getting to know your users" + nextUrl = "/guide/designing-products/common-user-flows/" + nextName = "Common user flows" %} diff --git a/guide/designing-products/wallet-interoperability.md b/guide/designing-products/wallet-interoperability.md index f7398a737..785da23cb 100644 --- a/guide/designing-products/wallet-interoperability.md +++ b/guide/designing-products/wallet-interoperability.md @@ -2,7 +2,7 @@ layout: guide title: Interoperability description: Designing for seamless experiences across Bitcoin applications. -nav_order: 9 +nav_order: 8 parent: Designing Bitcoin products permalink: /guide/designing-products/wallet-interoperability/ main_classes: -no-top-padding diff --git a/guide/getting-started/software.md b/guide/getting-started/software.md index 7dc256ca2..058efd259 100644 --- a/guide/getting-started/software.md +++ b/guide/getting-started/software.md @@ -172,7 +172,7 @@ Primarily used by developers, CLIs offer feature-rich ways to interact with node layout = "float-right-desktop" %} -Bitcoin [mining]({{ '/guide/getting-started/technology-primer/#how-is-the-blockchain-secured' | relative_url }}) is the act of confirming transactions by solving a computationally intense problem, which is rewarded via freshly minted bitcoin and transaction fees. +Bitcoin [mining]({{ '/guide/getting-started/technology-primer/#how-are-transactions-confirmed' | relative_url }}) is the act of confirming transactions by solving a computationally intense problem, which is rewarded via freshly minted bitcoin and transaction fees. Mining has become primarily a professional undertaking with dedicated software to manage racks of [mining hardware]({{ '/guide/getting-started/hardware/#mining-hardware' | relative_url }}). However, some wallets still offer mining features, and there are also cloud mining providers that allow customers to rent mining capacity. diff --git a/guide/getting-started/technology-primer.md b/guide/getting-started/technology-primer.md index d47b9a53f..f2b58a7f2 100644 --- a/guide/getting-started/technology-primer.md +++ b/guide/getting-started/technology-primer.md @@ -197,7 +197,7 @@ While creating a transaction to move your funds from one address to another is c There are multiple scaling solutions built on top of Bitcoin's base layer, but we will be focusing on the Lightning Network in this guide. **More info** -- [Transaction lifecycle](/guide/payments/transactions/) +- [Transaction lifecycle](/payments/transactions) - {% include picture.html image = "/assets/images/guide/onboarding/getting-to-know-your-users/getting-to-know-your-users.png" retina = "/assets/images/guide/onboarding/getting-to-know-your-users/getting-to-know-your-users@2x.png" @@ -31,12 +21,12 @@ Illustration sources %} # Getting to know your users -When building Bitcoin applications, it is important to understand and develop knowledge about your users upfront. Within the Bitcoin ecosystem, there is a wide range in the level of expertise. Identifying who you are building for is crucial, as these user groups value and understand varying characteristics of coin and key management tools. For example, [research](https://voskart.de/pdf/bits_under_mattress.pdf) suggests “rookies” often favor convenient, easy-to-use wallets, while well-versed bitcoin owners tend to prioritize security. +When building onboarding experiences, it is important to understand and develop knowledge about your users upfront. +Within the Bitcoin ecosystem, there is a wide range in the level of expertise. Identifying who you are building for is crucial, as these user groups value and understand varying characteristics of coin and key management tools. For example, [research](https://voskart.de/pdf/bits_under_mattress.pdf) suggests “rookies” often favor convenient, easy-to-use wallets, while well-versed bitcoin owners tend to prioritize security. ## Observe your potential users -This observation could take the form of [user research]({{ 'guide/designing-products/user-research/' | relative_url }}), user interviews and surveys aimed at a range of participants to observe and identify what they do, how they think, and what they want. Let’s consider some things you might want to ask yourself when improving the experience for new users: - +This observation could take the form of [user research]({{ 'guide/designing-products/user-research/' | relative_url }}), user interviews and surveys aimed at a range of participants to observe and identify what they do, how they think, and what they want. Let's consider some things you might want to ask yourself when improving the onboarding experience for new users: * [What is their perception of Bitcoin?](https://docs.google.com/forms/d/e/1FAIpQLSdzT8cb54NgT7hGUnC_5ow6rDy-A9p_CA-5ptiQxrG8wQWvzQ/viewform) * Why do they intend to use Bitcoin, investment, savings or spending? @@ -186,9 +176,9 @@ It's important to allow you and your team to be as free and creative about how y ## Prototype & Test Next, you can think about prototyping a subset of these ideas and understanding your ideas' feasibility through feedback on these prototypes. Put your prototypes in front of real users and test to verify the solution meets the users' needs. -You might choose to lean on something like the [Bitcoin Wallet UI Kit](https://www.bitcoinuikit.com/), which gives you several components that you can piece together for a specific [use case]({{ 'guide/case-studies/' | relative_url }}). This would allow you to prototype rapidly and get a feel for if the UI flow makes sense before committing to more detailed designs. +You might choose to lean on something like the [Bitcoin Wallet UI Kit](https://www.figma.com/file/VB3GQdAnhl8yta44DY3PSV/Bitcoin-Wallet-UI-Kit?node-id=616%3A0), which gives you several components that you can piece together for a specific [use case]({{ 'guide/case-studies/' | relative_url }}). This would allow you to prototype rapidly and get a feel for if the UI flow makes sense before committing to more detailed designs. -Ultimately the goal of getting to know your users is to build trust in the application, feel comfortable using it, and are set up for success. They should have an idea of how this application is going to fit into their lives and take care of certain needs. It’s also ideal if they can already envision the next time they will use it. +Ultimately the goal of onboarding is that users trust the application, feel comfortable using it, and are set up for success. They should have an idea of how this application is going to fit into their lives and take care of certain needs. It's also ideal if they can already envision the next time they will use it. --- diff --git a/guide/onboarding/introduction.md b/guide/onboarding/introduction.md index af42ac508..95bcd114c 100644 --- a/guide/onboarding/introduction.md +++ b/guide/onboarding/introduction.md @@ -82,6 +82,6 @@ An overview of how users are likely to fund their wallets {% include next-previous.html previousUrl = "/guide/designing-products/design-resources/" previousName = "Design resources" - nextUrl = "/guide/onboarding/creating-a-new-wallet/" - nextName = "Creating a new wallet" + nextUrl = "/guide/onboarding/getting-to-know-your-users/" + nextName = "Getting to know your users" %} diff --git a/guide/onboarding/protecting-a-wallet.md b/guide/onboarding/protecting-a-wallet.md index af7e298d8..2046c7381 100644 --- a/guide/onboarding/protecting-a-wallet.md +++ b/guide/onboarding/protecting-a-wallet.md @@ -3,7 +3,7 @@ layout: guide title: Protecting a wallet description: How extra layers of security can be added to Bitcoin applications via PINs, Face Id, and other techniques. parent: Onboarding -nav_order: 4 +nav_order: 6 permalink: /guide/onboarding/protecting-a-wallet/ main_classes: -no-top-padding image: https://bitcoin.design/assets/images/guide/onboarding/protecting-a-wallet/protecting-a-wallet-preview.png diff --git a/guide/onboarding/restoring-a-wallet.md b/guide/onboarding/restoring-a-wallet.md index d4382d75d..69f6d57aa 100644 --- a/guide/onboarding/restoring-a-wallet.md +++ b/guide/onboarding/restoring-a-wallet.md @@ -3,7 +3,7 @@ layout: guide title: Restoring a wallet description: Options for restoring a wallet, from automatic cloud backup to recovery phrases, and more. parent: Onboarding -nav_order: 3 +nav_order: 4 permalink: /guide/onboarding/restoring-a-wallet/ main_classes: -no-top-padding image: https://bitcoin.design/assets/images/guide/onboarding/restoring-a-wallet/restoring-a-wallet-preview.png diff --git a/guide/payments/send.md b/guide/payments/send.md index d096950ed..fcb1ac07e 100644 --- a/guide/payments/send.md +++ b/guide/payments/send.md @@ -62,7 +62,7 @@ You do not need to follow the order below. Feel free to tailor the configuration layout = "float-right-desktop" %} -To send a payment on the Bitcoin blockchain, the sender needs to obtain an address from the recipient. Since Bitcoin [addresses]({{ '/guide/glossary/address' | relative_url }}) are long and seemingly random, they are best shared by copying and pasting in plain text, as a [payment link]({{ '/guide/designing-products/wallet-interoperability/#payments' | relative_url }}), or as a scannable [QR Code]({{ '/guide/designing-products/wallet-interoperability/#qr-codes' | relative_url }}). +To send a payment on the Bitcoin blockchain, the sender needs to obtain an address from the recipient. Since Bitcoin [addresses]({{ '/guide/glossary/address' | relative_url }}) are long and seemingly random, they are best shared by copying and pasting in plain text, as a [payment link]({{ '/guide/designing-products/wallet-interoperability/#payment-links' | relative_url }}), or as a scannable [QR Code]({{ '/guide/designing-products/wallet-interoperability/#qr-codes' | relative_url }}). The receiver does this by generating a new address in their wallet application, then sharing it with the sender. If the sender and receiver are physically close to each other, scanning the receiver's address as a QR Code will be easy. Still, if they are not, they can send the address as text in any regular communication tool like email, SMS, etc. diff --git a/guide/payments/transactions.md b/guide/payments/transactions.md index e313b33f6..bf3575a9e 100644 --- a/guide/payments/transactions.md +++ b/guide/payments/transactions.md @@ -74,7 +74,7 @@ Once validated, the node passes the transaction on to other nodes in the network #### 7. Confirmations -Given that you know [how transactions are confirmed]({{ '/guide/getting-started/technology-primer/#how-is-the-blockchain-secured' | relative_url }}), lets look at how the number of confirmations affects the payment settlement. +Given that you know [how transactions are confirmed]({{ '/guide/getting-started/technology-primer/#how-are-transactions-confirmed' | relative_url }}), lets look at how the number of confirmations affects the payment settlement. Not every miner creates the new block with the same transactions, so some nodes may have a different version of the blockchain than others for a short time. The Bitcoin protocol's main function is to bring all nodes to the same version of the blockchain. Through a process called chain reorganization, nodes remove their incorrect block and update with the winning block as determined by the majority of other nodes. diff --git a/guide/payments/units-and-symbols.md b/guide/payments/units-and-symbols.md index 760c1aa73..d75c14f08 100644 --- a/guide/payments/units-and-symbols.md +++ b/guide/payments/units-and-symbols.md @@ -115,21 +115,12 @@ User should always be able to change unit contextually. Additionally, for the va height = 300 %} -There are many different ways of formatting numbers and currency units across the world. Bitcoin applications should be sensitive to these standards by adapting the formatting to the user's locale. A simple example are digit group and decimal separators. - -##### Interactive formatter - -Try entering different amounts in the interactive formatter below (which uses your browsers [built-in formatting library](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat)) to see various country-specific formats. - -
-
- - -
-
-
- -##### Satcomma +There are many different ways of formatting numbers and currency units across the world. Bitcoin applications should be sensitive to these standards by adapting the formatting to the user's locale. A simple example are digit group and decimal separators. Based on where you live you may be accustomed to one of these formatting standards, but be less comfortable with the others: +- `10 000,00` +- `10.000,00` +- `10,000.00` +- `10'000,00` +- `10,000·00` The "Satcomma standard" (well explained by [Mark Nugent](https://medium.com/@mark.nugent.iv/grouping-bitcoins-fractional-digits-an-idea-whose-time-has-come-22d9dad8ac51) and [ProgrammableTX](https://medium.com/coinmonks/the-satcomma-standard-89f1e7c2aede)) is a proposal that suggests adjustment of digit group separators for better readability of small bitcoin fractions, as follows: - `0.000 250 00 bitcoin` @@ -137,8 +128,6 @@ The "Satcomma standard" (well explained by [Mark Nugent](https://medium.com/@mar Starting the grouping from the right side makes it easier to identify the Satoshi value, which is in this example 25 000. As there is no clear consensus around this proposal, it is up to designers to decide whether this is appropriate for their audience. -##### Further reading - For more examples and information, see Wikipedia: - [Currency symbol](https://en.wikipedia.org/wiki/Currency_symbol) diff --git a/js/scripts.js b/js/scripts.js index a5632f332..44c08a4b8 100644 --- a/js/scripts.js +++ b/js/scripts.js @@ -254,48 +254,6 @@ function resizeFigmaEmbeds() { } } -function handleUnitsAndSymbolsFormatterInput() { - var amount = ref.unitsAndSymbolsFormatterInput.value; - - var formats = [ - ['Germany', 'de-DE', 'EUR'], - ['Polen', 'pl', 'EUR'], - ['Liechtenstein', 'el-LI', 'CHF'], - ['Switzerland', 'de-CH', 'CHF'], - ['United States', 'en-US', 'USD'], - ['Japan', 'jp-JP', 'JPY'], - ['Israel', 'il', 'ILS'] - ]; - - var html = '', format, formatted; - for(var i=0; i

'+format[2]+'

'+formatted+'

'; - } - - ref.unitsAndSymbolsFormatterTable.innerHTML = html; -}; - -function setupUnitsAndSymbolsFormatter() { - ref.unitsAndSymbolsFormatter = document.getElementById("units-and-symbols-formatter"); - - if(ref.unitsAndSymbolsFormatter) { - ref.unitsAndSymbolsFormatterInput = document.getElementById("units-and-symbols-formatter-input"); - ref.unitsAndSymbolsFormatterTable = document.getElementById("units-and-symbols-formatter-table"); - - ref.unitsAndSymbolsFormatterInput.addEventListener('keyup', handleUnitsAndSymbolsFormatterInput); - - handleUnitsAndSymbolsFormatterInput(); - } -} - window.addEventListener("resize", function(event) { resizeFigmaEmbeds(); }) @@ -326,6 +284,4 @@ document.addEventListener("DOMContentLoaded", function(event) { captureFigmaEmbeds(); resizeFigmaEmbeds(); - - setupUnitsAndSymbolsFormatter(); -}); +}); \ No newline at end of file