Closed holzeis closed 1 year ago
we might skip the edge cases and unhappy paths for now.
I suggest to use Miro's App Wireframe toolkit for modelling.
I created 10101 Wireframe
board within the CoBloX
Miro team. You should all be able to see it as you are part of the CoBloX
team.
I did not start modelling yet, but would start tomorrow.
I am using Figma to create the wirefames. Here's the board:
https://www.figma.com/file/zUBJpQ0v8cx6DHivS10OeI/TenTenOneWireFrame?node-id=0%3A1
Note: Initially started with Miro, but their Layer hierarchy system and the limited functionality for layouting resulted in quite some pain so I switched back to Figma. Cursing counter has gone significantly down with Figma :)
Feel free to unfold the details below and have a look for inspiration.
The initial ticket description mentioned and my thought about them
I would like to see this in a bit more high-level context. The following table is what I think we will focus on during the tournament when wireframing / mocking. This does not mean we have to build all of this :)
Domain | Use-Case | Feature | Copy π± | Comments |
---|---|---|---|---|
Wallet | On-/Off-boarding | Enter/Exit with BTC | Phoenix Wallet | |
Payments | Send/Receive Lightning | Phoenix Wallet | ||
Wallet Stuff | Standard Wallet Setup/Backup (12/24 seed words) | Phoenix Wallet | ||
Currency Switch (display in my currency) | Phoenix Wallet | |||
Lightning Node as a Service Auto Channel management | Phoenix Wallet | The user only holds the keys but does not have to run nodes / manage opening channels | ||
Trading short term, high frequency | Derivatives | CFDs | (ItchySats) | |
General "Bets" | Sports Bets | Simple Binary Sports Bet | Sports bets (and bets in general) also have a social aspect! |
With the above tournament feature set in mind I am trying to derive pain points that the user has to focus on them in the wireframe. Generally I am trying to get the navigation right first (i.e. how does the user navigate within the app to achieve solving/overcoming a painpoint) before focusing on UI in detail.
Best experience Lightning Wallet:
Phoenix, we can copy most of what they do for onboarding and payments. We might be able to improve the flow slightly, but their experience is already quite optimized when it comes to nr. of steps and convenience.
@da-kami : thanks for the great write-up. I'll go into some of the questions you've raised:
- β Are we expecting the setup to include that the Lightning Node runs on your phone? I would prefer to have a Phoenix setup where we run it for the user but they hold the keys. Is that feasible?
Ideally everything runs on the phone, i.e. the whole lightning node runs on the phone. This should be resource efficient enough. The only challenge I see is the online requirement: This is a thing we can outsource, i.e. Watchtowers. Afaik Phoenix is a full node running on your phone as well. I'm not sure how they solve the online requirement.
- βWhen we fund a position, how will the validation look? This will be on Layer 2, i.e. in a channel. Is there some form of explorer that we can use to show credability of the non-custodial setup; similar to what we use mempool.space for at the moment to show the multisig on chain? @bonomat
The channel opening will be visible on chain, i.e. a 2-of-2 multisig with your counterparty. From there everything else is off-chain. This means, opening a new CFD will be an off-chain transaction and there is nothing to monitor on-chain. The same goes for closing a position: it will be closed into the channel, which means, there is no transaction to link to
Pain Points
....
- Onboarding:
- How many steps are needed until I can use the wallet?
Imho there should be 0-steps to start the app and a wallet should be created by default. Only if the user wants to import existing seeds we could show a little wizard.
- How do I backup the seed words of a new wallet?
I like what I saw in the wireframes: a warning sign that he hasn't gone through the back-up procedure yet.
- How to handle the Lightning Node setup?
What do you think of going for Simple
and Advanced
. Simple
opens a channel with us and Advanced
allows the user to open a channel manually to anyone. The latter one we don't have to implement right away.
- How do I get initial money into the wallet?
- Use existing lightning wallet
Do you mean by paying from an existing LN wallet? I don't think this is possible if he does not have a channel yet.
- Allow funding with BTC (non-custodial)
π
@da-kami : thanks for the great write-up. I'll go into some of the questions you've raised:
- β Are we expecting the setup to include that the Lightning Node runs on your phone? I would prefer to have a Phoenix setup where we run it for the user but they hold the keys. Is that feasible?
Ideally everything runs on the phone, i.e. the whole lightning node runs on the phone. This should be resource efficient enough. The only challenge I see is the online requirement: This is a thing we can outsource, i.e. Watchtowers. Afaik Phoenix is a full node running on your phone as well. I'm not sure how they solve the online requirement.
After looking into Phoenix with @da-kami and @luckysori it looks like they are not running the full node on your phone. It's more likely they use a similar setup like BlueWallet with LNDHub
@da-kami : thanks for the great write-up. I'll go into some of the questions you've raised:
- β Are we expecting the setup to include that the Lightning Node runs on your phone? I would prefer to have a Phoenix setup where we run it for the user but they hold the keys. Is that feasible?
Ideally everything runs on the phone, i.e. the whole lightning node runs on the phone. This should be resource efficient enough. The only challenge I see is the online requirement: This is a thing we can outsource, i.e. Watchtowers. Afaik Phoenix is a full node running on your phone as well. I'm not sure how they solve the online requirement.
After looking into Phoenix with @da-kami and @luckysori it looks like they are not running the full node on your phone. It's more likely they use a similar setup like BlueWallet with LNDHub
I think they do run a node on the phone, but I am not sure about the exact setup; see: https://phoenix.acinq.co/faq#is-phoenix-a-real-lightning-node
As far as my understanding goes they run Eclair
with Electrum (that by default points to their infra) as Bitcoin backend and channel management via their node infrastructure; would have to dig into code to understand the exact setup.
See https://github.com/itchysats/10101/pull/42 for more detailed wallet comparison that collects information around setup and feature set.
@da-kami can we close that issue? I think the most part of it is already done, and the rest will be covered in follow up tickets?
Yeah, Create payment channel with maker
is actually missing, but I am adding the screens as part of the specific feature tickets.
A lowfi set of user interfaces depicting the user journey through the app including the following flows.