taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

commit 2b0f130360715af949ceedb1cc7bd64a891df703
parent fd28ac9a657fb8312ce87f99e5588fb3c52b27a5
Author: Vlada Svirsh <svirv1@bfh.ch>
Date:   Sun,  1 Mar 2026 17:17:02 +0100

DD 87: wallet onboarding

Diffstat:
Adesign-documents/087-wallet-onboarding.rst | 107+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adesign-documents/wallet-designs/empty-wallet-psp-mobile.png | 0
Adesign-documents/wallet-designs/empty-wallet-psp-webex.png | 0
Adesign-documents/wallet-designs/taler-logo-dark.svg | 2++
Adesign-documents/wallet-designs/taler-logo-light.svg | 2++
5 files changed, 111 insertions(+), 0 deletions(-)

diff --git a/design-documents/087-wallet-onboarding.rst b/design-documents/087-wallet-onboarding.rst @@ -0,0 +1,107 @@ +DD 87: Wallet Onboarding Experience +################################### + +Summary +======= +This document proposes a design for the wallet onboarding experience. It defines what Android, iOS and WebExtension +should follow in order to have a coherent onboarding experience between platforms. + +Motivation +========== +We want user to have smooth onboarding experience independent of the platform they are using. +This includes first informational screem and choosing payment service (exchange) for first withdrawal of digital cash. + +Requirements +============ +List of trusted payment services (exchanges) should be preloaded in the wallet and user should be able to choose one of +them for first withdrawal of digital cash. + +Proposed Solution +================= + +Empty Wallet +------------ +This is the screen user will see when they open the wallet for the first time, before withdrawing any digital cash. + +.. image:: wallet-designs/empty-wallet-mobile.png + +.. image:: wallet-designs/empty-wallet-webex.png + +On top of the screen is logo: + - Logo for light mode `link to png file <wallet-designs/taler-logo-light.png>`_, `link to svg file <wallet-designs/taler-logo-light.svg>`_ + - Logo for dark mode `link to png file <wallet-designs/taler-logo-dark.png>`_, `link to svg file <wallet-designs/taler-logo-dark.svg>`_ + +Withdrawal of real cash and demo cash is separated for two cards. + +First card: + - Text: "**Welcome to Taler Wallet!** + To make your first payment withdraw digital cash." + - Button: "Withdraw digital cash" + + * For deployment only with CHF use text "Withdraw CHF" instead of "Withdraw digital cash". + +Second card: + - Text: "Get digital cash to experience how to pay with money of future." + - Button: "Get demo cash" + +Penpot design file is available `here <https://penpot.taler.net/#/workspace?team-id=826af720-982c-8096-8006-0dbdd6a758c1&file-id=29e68e1b-4b36-81a2-8007-9ca27b475c85&page-id=29e68e1b-4b36-81a2-8007-9ca27b478f55&layout=layers&board-id=3300eab0-9c92-80cd-8007-9cb98fec00e1>`_. + +Choosing payment service (exchange) +----------------------------------- + +When user clicks on **"Withdraw digital cash" button**, they should be able to choose one of the preloaded trusted +payment services (exchanges) for first withdrawal of digital cash. + +.. image:: wallet-designs/empty-wallet-psp-mobile.png + +.. image:: wallet-designs/empty-wallet-psp-webex.png + +Mobile (Android / iOS) +~~~~~~~~~~~~~~~~~~~~~~ + +This screen is shown as a full page. + +List of payment services is presented as radio options (single choice). +Each option contains: +- Currency code ("CHF", "EUR" etc.) +- Exchange baseurl ("taler-ops.ch", "taler-ops.de" etc.) +- Text: "Supported bank accounts:" followed by country flags of supported bank accounts for withdrawal (e.g. Swiss flag for swiss bank accounts etc.) + +Sorting by currency code is recommended. + +On the bottom of the screen is primary button: + +Button: "Continue" + +Action: proceed to withdraw screen using the selected payment service (exchange). + +WebExtension +~~~~~~~~~~~~ + +This step is shown as a modal dialog on top of wallet main view (background is dimmed). + +List of payment services is presented as radio options (single choice). +Each option contains: +- Currency code ("CHF", "EUR" etc.) +- Exchange baseurl ("taler-ops.ch", "taler-ops.de" etc.) +- Text: "Supported bank accounts:" followed by country flags of supported bank accounts for withdrawal (e.g. Swiss flag for swiss bank accounts etc.) + +Sorting by currency code is recommended. + +On the bottom-right of the modal is primary button: + +Button: "Continue" + +Action: proceed to withdraw screen using the selected payment service (exchange). + + +Alternatives +============ + +Drawbacks +========= + +Discussion / Q&A +================ + +(This should be filled in with results from discussions on mailing lists / personal communication.) diff --git a/design-documents/wallet-designs/empty-wallet-psp-mobile.png b/design-documents/wallet-designs/empty-wallet-psp-mobile.png Binary files differ. diff --git a/design-documents/wallet-designs/empty-wallet-psp-webex.png b/design-documents/wallet-designs/empty-wallet-psp-webex.png Binary files differ. diff --git a/design-documents/wallet-designs/taler-logo-dark.svg b/design-documents/wallet-designs/taler-logo-dark.svg @@ -0,0 +1 @@ +<svg width="1000" xmlns="http://www.w3.org/2000/svg" height="447.761" id="screenshot-50edfb72-58c3-806d-8007-9cef21fba0cc" viewBox="0 0 1000 447.761" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1"><g id="shape-50edfb72-58c3-806d-8007-9cef21fba0cc" width="670" height="300" rx="0" ry="0" style="fill: rgb(0, 0, 0);"><g id="shape-50edfb72-58c3-806d-8007-9cef21fba0cd" style="display: none;"><g class="fills" id="fills-50edfb72-58c3-806d-8007-9cef21fba0cd"><rect width="1000" height="447.7611940298509" x="0" transform="matrix(1.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000)" style="fill: rgb(255, 255, 255); fill-opacity: 1;" ry="0" fill="none" rx="0" y="0"/></g></g><g id="shape-50edfb72-58c3-806d-8007-9cef21fba0ce" rx="0" ry="0" style="fill: rgb(0, 0, 0);"><g id="shape-50edfb72-58c3-806d-8007-9cef21fba0d4"><g class="fills" id="fills-50edfb72-58c3-806d-8007-9cef21fba0d4"><path d="M431.155,5.578C508.716,5.578,576.077,52.350,610.066,121.010L581.123,121.010C549.685,67.778,494.274,32.428,431.155,32.428C333.192,32.428,253.777,117.563,253.777,222.580C253.777,273.982,272.810,320.614,303.726,354.834C297.047,360.411,289.937,365.420,282.455,369.793C249.112,331.112,228.731,279.403,228.731,222.580C228.731,102.734,319.359,5.578,431.155,5.578ZZM609.523,325.253C575.362,393.314,508.301,439.583,431.155,439.583C425.918,439.583,420.727,439.369,415.589,438.951C430.774,431.184,445.010,421.635,458.069,410.556C509.417,402.176,553.521,370.190,580.466,325.253Z" style="fill-rule: evenodd; stroke: none; stroke-width: 0.327943; fill: rgb(255, 255, 255); fill-opacity: 1;"/></g></g><g id="shape-50edfb72-58c3-806d-8007-9cef21fba0d5"><g class="fills" id="fills-50edfb72-58c3-806d-8007-9cef21fba0d5"><path d="M319.465,5.578C324.701,5.578,329.892,5.792,335.030,6.210C319.845,13.977,305.609,23.525,292.551,34.605C207.361,48.507,142.087,127.371,142.087,222.580C142.087,293.548,178.359,355.426,232.106,388.097C224.178,389.427,216.052,390.122,207.774,390.122C201.607,390.122,195.528,389.726,189.548,388.981C145.229,349.174,117.040,289.411,117.040,222.580C117.040,102.734,207.669,5.578,319.465,5.578ZZM346.379,410.556C397.727,402.176,441.832,370.188,468.776,325.251L497.834,325.251C463.673,393.312,396.612,439.583,319.465,439.583C314.227,439.583,309.037,439.369,303.899,438.951C319.083,431.183,333.321,421.636,346.379,410.556ZZM469.432,121.010C453.813,94.569,432.280,72.539,406.823,57.063C414.751,55.734,422.877,55.039,431.155,55.039C437.321,55.039,443.401,55.434,449.381,56.180C469.362,74.126,486.064,96.131,498.382,121.010Z" style="fill-rule: evenodd; stroke: none; stroke-width: 0.327943; fill: rgb(255, 255, 255); fill-opacity: 1;"/></g></g><g id="shape-50edfb72-58c3-806d-8007-9cef21fba0d6"><g class="fills" id="fills-50edfb72-58c3-806d-8007-9cef21fba0d6"><path d="M207.774,5.578C213.069,5.578,218.315,5.799,223.508,6.226C208.352,13.982,194.139,23.512,181.103,34.568C95.794,48.361,30.397,127.281,30.397,222.580C30.397,327.598,109.812,412.732,207.774,412.732C270.459,412.732,325.547,377.871,357.096,325.251L386.144,325.251C351.983,393.312,284.922,439.583,207.774,439.583C95.979,439.583,5.350,342.427,5.350,222.580C5.350,102.734,95.979,5.578,207.774,5.578ZZM357.738,121.010C351.211,109.962,343.654,99.681,335.206,90.331C341.885,84.754,348.994,79.742,356.476,75.369C368.282,89.066,378.460,104.397,386.687,121.010Z" style="fill-rule: evenodd; stroke: none; stroke-width: 0.327943; fill: rgb(255, 255, 255); fill-opacity: 1;"/></g></g></g><g id="shape-50edfb72-58c3-806d-8007-9cef21fba0cf"><g class="fills" id="fills-50edfb72-58c3-806d-8007-9cef21fba0cf"><path d="M378.783,171.189L424.360,171.189L424.360,146.099L307.749,146.099L307.749,171.189L353.327,171.189L353.327,300.160L378.783,300.160Z" style="fill: rgb(255, 255, 255); fill-opacity: 1;"/></g></g><g id="shape-50edfb72-58c3-806d-8007-9cef21fba0d0"><g class="fills" id="fills-50edfb72-58c3-806d-8007-9cef21fba0d0"><path d="M460.933,262.967L528.888,262.967L543.466,300.161L570.156,300.161L506.921,145.000L483.518,145.000L420.284,300.161L446.152,300.161ZM519.650,238.975L470.174,238.975L494.809,177.351Z" style="fill: rgb(255, 255, 255); fill-opacity: 1;"/></g></g><g id="shape-50edfb72-58c3-806d-8007-9cef21fba0d1"><g class="fills" id="fills-50edfb72-58c3-806d-8007-9cef21fba0d1"><path d="M615.952,146.100L593.164,146.100L593.164,300.161L695.390,300.161L695.390,275.732C668.911,275.732,642.431,275.732,615.952,275.732Z" style="fill: rgb(255, 255, 255); fill-opacity: 1;"/></g></g><g id="shape-50edfb72-58c3-806d-8007-9cef21fba0d2"><g class="fills" id="fills-50edfb72-58c3-806d-8007-9cef21fba0d2"><path d="M828.220,146.100L721.873,146.100L721.873,300.161L829.247,300.161L829.247,275.732L746.920,275.732L746.920,234.574L818.981,234.574L818.981,210.146L746.920,210.146L746.920,170.530L828.220,170.530Z" style="fill: rgb(255, 255, 255); fill-opacity: 1;"/></g></g><g id="shape-50edfb72-58c3-806d-8007-9cef21fba0d3"><g class="fills" id="fills-50edfb72-58c3-806d-8007-9cef21fba0d3"><path d="M951.196,196.391C951.196,204.349,948.527,210.696,943.155,215.390C937.817,220.123,930.597,222.469,921.529,222.469L884.472,222.469L884.472,170.530L921.324,170.530C930.802,170.530,938.158,172.694,943.361,177.058C948.596,181.387,951.196,187.843,951.196,196.391ZZM981.375,300.161L942.573,241.837C947.637,240.370,952.257,238.281,956.432,235.565C960.605,232.851,964.199,229.549,967.209,225.662C970.221,221.773,972.582,217.298,974.292,212.237C976.003,207.175,976.858,201.415,976.858,194.959C976.858,187.476,975.627,180.691,973.163,174.601C970.699,168.512,967.175,163.376,962.591,159.194C958.005,155.013,952.394,151.785,945.756,149.510C939.117,147.235,931.692,146.100,923.480,146.100L859.425,146.100L859.425,300.161L884.472,300.161L884.472,246.460L916.191,246.460L951.606,300.161Z" style="fill: rgb(255, 255, 255); fill-opacity: 1;"/></g></g></g></svg> +\ No newline at end of file diff --git a/design-documents/wallet-designs/taler-logo-light.svg b/design-documents/wallet-designs/taler-logo-light.svg @@ -0,0 +1 @@ +<svg width="1000" xmlns="http://www.w3.org/2000/svg" height="447.761" id="screenshot-50edfb72-58c3-806d-8007-9cee9fb77abe" viewBox="0 0 1000 447.761" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1"><g id="shape-50edfb72-58c3-806d-8007-9cee9fb77abe" width="670" height="300" rx="0" ry="0" style="fill: rgb(0, 0, 0);"><g id="shape-50edfb72-58c3-806d-8007-9cee9fb77abf" style="display: none;"><g class="fills" id="fills-50edfb72-58c3-806d-8007-9cee9fb77abf"><rect width="1000" height="447.7611940298507" x="0" transform="matrix(1.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000)" style="fill: none;" ry="0" fill="none" rx="0" y="0"/></g></g><g id="shape-50edfb72-58c3-806d-8007-9cee9fb77ac0" rx="0" ry="0" style="fill: rgb(0, 0, 0);"><g id="shape-50edfb72-58c3-806d-8007-9cee9fb77ac6"><g class="fills" id="fills-50edfb72-58c3-806d-8007-9cee9fb77ac6"><path d="M431.155,5.578C508.716,5.578,576.077,52.350,610.066,121.010L581.123,121.010C549.685,67.778,494.274,32.428,431.155,32.428C333.192,32.428,253.777,117.563,253.777,222.580C253.777,273.982,272.810,320.614,303.726,354.834C297.047,360.411,289.937,365.420,282.455,369.793C249.112,331.112,228.731,279.403,228.731,222.580C228.731,102.734,319.359,5.578,431.155,5.578ZZM609.523,325.253C575.362,393.314,508.301,439.583,431.155,439.583C425.918,439.583,420.727,439.369,415.589,438.951C430.774,431.184,445.010,421.635,458.069,410.556C509.417,402.176,553.521,370.190,580.466,325.253Z" style="fill-rule: evenodd; stroke: none; stroke-width: 0.327943; fill: rgb(0, 66, 179); fill-opacity: 1;"/></g></g><g id="shape-50edfb72-58c3-806d-8007-9cee9fb77ac7"><g class="fills" id="fills-50edfb72-58c3-806d-8007-9cee9fb77ac7"><path d="M319.465,5.578C324.701,5.578,329.892,5.792,335.030,6.210C319.845,13.977,305.609,23.525,292.551,34.605C207.361,48.507,142.087,127.371,142.087,222.580C142.087,293.548,178.359,355.426,232.106,388.097C224.178,389.427,216.052,390.122,207.774,390.122C201.607,390.122,195.528,389.726,189.548,388.981C145.229,349.174,117.040,289.411,117.040,222.580C117.040,102.734,207.669,5.578,319.465,5.578ZZM346.379,410.556C397.727,402.176,441.832,370.188,468.776,325.251L497.834,325.251C463.673,393.312,396.612,439.583,319.465,439.583C314.227,439.583,309.037,439.369,303.899,438.951C319.083,431.183,333.321,421.636,346.379,410.556ZZM469.432,121.010C453.813,94.569,432.280,72.539,406.823,57.063C414.751,55.734,422.877,55.039,431.155,55.039C437.321,55.039,443.401,55.434,449.381,56.180C469.362,74.126,486.064,96.131,498.382,121.010Z" style="fill-rule: evenodd; stroke: none; stroke-width: 0.327943; fill: rgb(0, 66, 179); fill-opacity: 1;"/></g></g><g id="shape-50edfb72-58c3-806d-8007-9cee9fb77ac8"><g class="fills" id="fills-50edfb72-58c3-806d-8007-9cee9fb77ac8"><path d="M207.774,5.578C213.069,5.578,218.315,5.799,223.508,6.226C208.352,13.982,194.139,23.512,181.103,34.568C95.794,48.361,30.397,127.281,30.397,222.580C30.397,327.598,109.812,412.732,207.774,412.732C270.459,412.732,325.547,377.871,357.096,325.251L386.144,325.251C351.983,393.312,284.922,439.583,207.774,439.583C95.979,439.583,5.350,342.427,5.350,222.580C5.350,102.734,95.979,5.578,207.774,5.578ZZM357.738,121.010C351.211,109.962,343.654,99.681,335.206,90.331C341.885,84.754,348.994,79.742,356.476,75.369C368.282,89.066,378.460,104.397,386.687,121.010Z" style="fill-rule: evenodd; stroke: none; stroke-width: 0.327943; fill: rgb(0, 66, 179); fill-opacity: 1;"/></g></g></g><g id="shape-50edfb72-58c3-806d-8007-9cee9fb77ac1"><g class="fills" id="fills-50edfb72-58c3-806d-8007-9cee9fb77ac1"><path d="M378.783,171.189L424.360,171.189L424.360,146.099L307.749,146.099L307.749,171.189L353.327,171.189L353.327,300.160L378.783,300.160Z"/></g></g><g id="shape-50edfb72-58c3-806d-8007-9cee9fb77ac2"><g class="fills" id="fills-50edfb72-58c3-806d-8007-9cee9fb77ac2"><path d="M460.933,262.967L528.888,262.967L543.466,300.161L570.156,300.161L506.921,145.000L483.518,145.000L420.284,300.161L446.152,300.161ZM519.650,238.975L470.174,238.975L494.809,177.351Z"/></g></g><g id="shape-50edfb72-58c3-806d-8007-9cee9fb77ac3"><g class="fills" id="fills-50edfb72-58c3-806d-8007-9cee9fb77ac3"><path d="M615.952,146.100L593.164,146.100L593.164,300.161L695.390,300.161L695.390,275.732C668.911,275.732,642.431,275.732,615.952,275.732Z"/></g></g><g id="shape-50edfb72-58c3-806d-8007-9cee9fb77ac4"><g class="fills" id="fills-50edfb72-58c3-806d-8007-9cee9fb77ac4"><path d="M828.220,146.100L721.873,146.100L721.873,300.161L829.247,300.161L829.247,275.732L746.920,275.732L746.920,234.574L818.981,234.574L818.981,210.146L746.920,210.146L746.920,170.530L828.220,170.530Z"/></g></g><g id="shape-50edfb72-58c3-806d-8007-9cee9fb77ac5"><g class="fills" id="fills-50edfb72-58c3-806d-8007-9cee9fb77ac5"><path d="M951.196,196.391C951.196,204.349,948.527,210.696,943.155,215.390C937.817,220.123,930.597,222.469,921.529,222.469L884.472,222.469L884.472,170.530L921.324,170.530C930.802,170.530,938.158,172.694,943.361,177.058C948.596,181.387,951.196,187.843,951.196,196.391ZZM981.375,300.161L942.573,241.837C947.637,240.370,952.257,238.281,956.432,235.565C960.605,232.851,964.199,229.549,967.209,225.662C970.221,221.773,972.582,217.298,974.292,212.237C976.003,207.175,976.858,201.415,976.858,194.959C976.858,187.476,975.627,180.691,973.163,174.601C970.699,168.512,967.175,163.376,962.591,159.194C958.005,155.013,952.394,151.785,945.756,149.510C939.117,147.235,931.692,146.100,923.480,146.100L859.425,146.100L859.425,300.161L884.472,300.161L884.472,246.460L916.191,246.460L951.606,300.161Z"/></g></g></g></svg> +\ No newline at end of file