Ability to connect wallet, 'stake' reserves and smart contracts for reciprocities
Consider switching to a different non-ethereum chain here (this'd take some convincing but lets discuss at this point)
'Next up' themes (not necessarily in this order)
Allow multiple 'communities', multi networks (underlying currencies)
Only see rich information for nodes in 'your follow range'
White labeling / multi-server configuration
Enabling 'hour for hour' transactions
Community tokens and insurance/guarantees (trusted members, bank like liquidity provision through the magic of bonding curves and collectivism)
Better social sharing (closing and tracking the viral loop)
Bot integration so system can be used Zapier / no code style with, eg, telegram groups or slack
Phase I - Friends and Family MMVP
Join / Connect
Notes
The objective is to enable a web3 sign in experience (ie connect wallet) without scaring people off. De-fi people should recognize us one of their own. Others should just see a simple sign in experience.
We don't really need crypto wallet integration for phase - but assuming it's relatively easy to integrate, eg, tor.us we put this whole sign-in experience (with and without wallet) into the first phase.
In the below we refer to a 'web3 user' as someone who has connected via their web3 wallet, whereas an 'email user' is someone who has connected via email. Email users receive a login button via email with their private key in the email and we derive an eth address for them.
We've been building on SSB/Ethereum to date. But there is reason to consider other distributed ledgers, especially HoloChain or other more green, smart contract infrastructure, such as Cardano or EOS. This doc assumes we'll stay on Eth for now but we can consider switching if the argument is strong enough.
Sign in or join / 'create check book' - with just email #7
[ ] #152
133
134
135
136
137
138
140
Join / login / connect - web3 user #139
142
143
144
145
146
147
Signed in state #148
149
150
151
Profile page
View and update skills on profile #36
116
118
116
122
123
View and update 'about you' section on profile #36
106
107
108
124
125
126
Member and anonymous versions of profile page #128
132
131
130
129
Network graph / Home page
Network graph API
List of users (nodes) appears in graphql end point
List of active trades (edges) appears in graphql end point
List of reciprocities (loops) appears in graphql end point
Network graph for member home page
Member can see a graph of all trades laid out dynamically
Every member appears on graph, with their face
If they haven't got a trade they are placed randomly or (ideally) according to - their hashtags
Clicking on the face takes you to their profile page
Trades appear as edges on the graph
Color indicates current status (vesting etc)
Clicking on the trade takes you to the page for that trade
Hovering over an edge reveals its value/s
Reciprocities appear on the graph
Color of cycle indicates status (proposed, etc)
Every reciprocity appears on the graph
Member home page
Network graph appears at the top of member page
Members can see a list of recent trades anywhere in network on home page
Anon seems very rudimentary home page with invitation to sign in
Trades
View trades
Member can see a list of obligations/trades on their profile page
Member can view summary information with current state of 'check' for each trade
View trade detail
Member can see basic information from check in text form
Member can track information on trade balance
Can see that check balance is adjusted by any reciprocities or payments
Can see that check balances are vested / how much vestted
Can see that check balances are adjusted by demurrage
Member can view the log of all events that have taken place in relation to a trade
Trade detail page includes profile images and links to profile page for relevant parties
Create trade/create check
Member can find recipient by name or email when sending check
Member can enter amount of check and see rate card
Member can 'back' a check with skill hours or reserves/stake
Taken to 'set up skills' if they don't have skills
Can't continue without setting up some form of backing
Member can click on skills card to send credit for something specific
Only relevant info from that rate card is shown on create credit screen
Email Notifications about trades
Member receives notification as their outgoing cheques vest / demurrage (details needed)
Member receives notification as their incoming cheques vest / demurrage (details needed)
Member receives notification if stake is at risk of going less than amount owing
Recipient can claim trade from anonymous view
This is a very hard one as we dont have the private key for the sender at the last step. We may need to use Ganache or similar to figure out how to do this
Unclaimed trades sent to email have a different anonymous rendering with 'is this you? claim this trade' CTA
A new user can authenticate and sign up from the 'claim this trade' CTA and the 'claim' the trade
An authenticated user can 'claim this trade' for trade with email as recipient
After a user authenticates and 'claims' a trade, it is rewritten to point to recipient contract public key
Reciprocities and payments
Can log in with a user with admin powers
All information still published to ssb, just under the account for that user
App hard coded to have one admin feed (for now)
Admin can create a proposed reciprocity
humans need to spot them
can add the affected nodes to a list
system confirms reciprocity exists then lets it be saved
Recipient can mark a check as paid
Enter amount paid 'off line', accepted as truth
Recipient can request payment of vested funds even if no reserves
"fifty fucking whacks" protocol
Email with delay function - some details tbd
Email to all affected parties proposing recpiprocity (can be offline email)
Manually lock in the reciprocity (for non-reserves aspect)
Cancel reciprocity if note from recipient indicates they dont want to
Email to all affected parties notifying of outcome of reciprocity
Sprint 2 - Early Access MVP
Staking and reserves
On ramp / off ramp
User can 'add stake' by moving currency from their wallet to their 'stake'
User can see their current 'stake'
User can withdraw 'stake' to their wallet
User without 3rd party wallet software gets warning if stake goes too high
User can see current 'accessible' reserves and who they belong to
User is linked to a page explaining how to load money into their wallet
User is linked to a page on how to withdraw
User is linked to a page about tax implications
Risk estimation
Member can see current leverage, addressable reserves, stake for each user
Member can see a rudimentary risk estimate for a user
Member can see a summary information based on upcoming promises and get a sense where - they stand
Trades
Check creating/sharing improvements
Member can 'back' a check with skill hours or reserves/stake
Taken to 'set up skills' if they don't have skills
Taken to 'set up stake' if they don't have a wallet or any stake yet
Can't continue without setting up some form of backing
Member can send check to someone off the system
Member can withdraw available funds on cheque
Member can see if their stake is lower than amount owing
"Friendly buzz" trade sharing
Member can choose a background and choose friendly buzz presentation
Friendly buzz presentation of trades appears on home page and all other lists
Members can toggle to see original check presentation or that appears somewhere in line
View trade detail Improvement
Member can see an attractive version of check representing its current state
Home page / graph Improvements
Marketing / anon home page
I can see the anonymized graph on the home page (see below)
I can see a summary of total value locked, total trades executed, some other stat on the home page
I can view a simple explanation of the concept and call to action (to join)
I can click a link to call to action to help build it with us / call to collaboration
I can click a link to find out more about us as a DAO / buy governance token
Network graph improvements
Current status of reserves/stakes appears in graphql end point
Rudimentary risk estimate information is avialable in graphql end point
Given a userid list of related trades/users is efficient
Stake appears on the graph
Numbers near to each node, reserves indication
Hashtags appear on graph somehow
Maybe as a filter, maybe as floating hashtags
Perhaps with hidden edges that affect layout (group people/trades w similar - hashtags together)
Anonymized network graph
Anonymized network graph appears on signed-out home page
Nodes identified by the start of their public address @sdf12e34...
Faces are anonymized
Edges show color etc as before
Clicking trade takes you to the anonymized trade view
Can't click on user
Network graph for user
A direct relationship graph for profile page
A smaller graph that appears in top right of profile page
Shows only the focus user and their direct trades and maybe one or two steps out
Trade detail sharing
When shared over social media, preview image includes rendered image of check
Rendered image of check updates periodically in a way that updates on social
When shared over social media, note from user and other info is visible
Anonymized view
Anonymized view of trade resembles social media sharing in terms of data provided
Anonymized version of links to profiles involved
Selected features in the 'backlog'
Add support for 'Hour for hour' trades
User can skip adding a 'rate' for skill and choose 'hour for hour'
When paying user can choose to pay 'hour for hour' instead of via $ amount
Information comes and goes based on follow range
View the profile page of another (not in follow range)
Community control
As an admin you can create a list of default hash tags
Cashless Check / Reciprocity improvements
Sender can mark a check as paid
Enter amount paid 'off line', marked as pending
Email to user indicating sender marked as paid
If no action, sender statement assumed true
If action, cancel 'offline payment' type reciprpocity
Designs
Some screenshots are included below and on cards, but as always, the definitive designs are on figma: https://www.figma.com/file/sq4aGgw7IQAbuRkXcFTaap/Cashless?node-id=1874%3A29551
This can also be accessed as a clickable prototype -> here
Roadmap
Phase 1 - Friends and Family MMVP
Phase 2 - Early Access MVP
'Next up' themes (not necessarily in this order)
Phase I - Friends and Family MMVP
Join / Connect
Notes
web3 user'
as someone who has connected via their web3 wallet, whereas an 'email user
' is someone who has connected via email. Email users receive a login button via email with their private key in the email and we derive an eth address for them.Sign in or join / 'create check book' - with just email #7
133
134
135
136
137
138
140
Join / login / connect - web3 user #139
142
143
144
145
146
147
Signed in state #148
149
150
151
Profile page
View and update skills on profile #36
116
118
116
122
123
View and update 'about you' section on profile #36
106
107
108
124
125
126
Member and anonymous versions of profile page #128
132
131
130
129
Network graph / Home page
Network graph API
Network graph for member home page
Member home page
Trades
View trades
View trade detail
Create trade/create check
Email Notifications about trades
Recipient can claim trade from anonymous view
This is a very hard one as we dont have the private key for the sender at the last step. We may need to use Ganache or similar to figure out how to do this
Reciprocities and payments
Can log in with a user with admin powers
Admin can create a proposed reciprocity
Recipient can mark a check as paid
Recipient can request payment of vested funds even if no reserves
Email to all affected parties proposing recpiprocity (can be offline email)
Manually lock in the reciprocity (for non-reserves aspect)
Cancel reciprocity if note from recipient indicates they dont want to
Email to all affected parties notifying of outcome of reciprocity
Sprint 2 - Early Access MVP
Staking and reserves
On ramp / off ramp
Risk estimation
Trades
Check creating/sharing improvements
Member can 'back' a check with skill hours or reserves/stake
Member can send check to someone off the system
Member can withdraw available funds on cheque
Member can see if their stake is lower than amount owing
"Friendly buzz" trade sharing
View trade detail Improvement
Home page / graph Improvements
Marketing / anon home page
Network graph improvements
Anonymized network graph
Network graph for user
Trade detail sharing
Anonymized view
Selected features in the 'backlog'
Add support for 'Hour for hour' trades
Information comes and goes based on follow range
Community control
Cashless Check / Reciprocity improvements