| 1 | This describes the gui for the opencoin wallet, which is a standalone computer |
|---|
| 2 | program that should run on windows, macosx and linux. |
|---|
| 3 | |
|---|
| 4 | Ideally its metaphors and user interaction ideas would be transferrable to other |
|---|
| 5 | clients as well, e.g. a mobile phone. |
|---|
| 6 | |
|---|
| 7 | Functions |
|---|
| 8 | ========= |
|---|
| 9 | |
|---|
| 10 | A wallet holds tokens from different currencies - pretty much like a real world |
|---|
| 11 | wallet. These tokens can be received from and sent to other wallets, or the |
|---|
| 12 | issuer of the currency. |
|---|
| 13 | |
|---|
| 14 | All the following functions need to be done within the scope of a specific |
|---|
| 15 | currency - we don't support mixed transactions at this time! |
|---|
| 16 | |
|---|
| 17 | |
|---|
| 18 | Sending and receiving |
|---|
| 19 | --------------------- |
|---|
| 20 | |
|---|
| 21 | When sending tokens, the user needs to decide |
|---|
| 22 | |
|---|
| 23 | - what amount to send |
|---|
| 24 | |
|---|
| 25 | The wallet software tries to automatically pick the right tokens - if not |
|---|
| 26 | possible, an exchange (see below) needs to initiated |
|---|
| 27 | |
|---|
| 28 | - what the purpose is |
|---|
| 29 | |
|---|
| 30 | some freetext |
|---|
| 31 | |
|---|
| 32 | - whom to send it to |
|---|
| 33 | |
|---|
| 34 | The user needs to decide whether to use an internet connection or a |
|---|
| 35 | bluetooth connection. Other kinds of connection might be possible |
|---|
| 36 | |
|---|
| 37 | If 'internet' is choosen, and address needs to be provided by the user. |
|---|
| 38 | |
|---|
| 39 | If 'bluetooth' is choosen, a selection of nearby devices should be |
|---|
| 40 | present to the user, and the user can pick the partner for this |
|---|
| 41 | transaction. |
|---|
| 42 | |
|---|
| 43 | The other side needs to activate receiving of the tokens |
|---|
| 44 | |
|---|
| 45 | - it will need to select the method (internet or bluetooth) |
|---|
| 46 | |
|---|
| 47 | - once the first contact is made the user should be asked if she wants to |
|---|
| 48 | receive |
|---|
| 49 | a) from the specific sender |
|---|
| 50 | b) the specified amount |
|---|
| 51 | c) the specified purpose |
|---|
| 52 | |
|---|
| 53 | After this the tokens get transferred, and everything should be fine ;-) |
|---|
| 54 | |
|---|
| 55 | There are quite a lot of things that can go wrong. There might be the |
|---|
| 56 | need for additional user input. |
|---|
| 57 | |
|---|
| 58 | Token exchange |
|---|
| 59 | -------------- |
|---|
| 60 | |
|---|
| 61 | When sending tokens, when tokens are about to expire or out of other reasons |
|---|
| 62 | it might become necessary to exchange tokens - basically like changing a banknote |
|---|
| 63 | into smaller ones (or coins). |
|---|
| 64 | |
|---|
| 65 | This transaction is always done with the issuer. |
|---|
| 66 | |
|---|
| 67 | The user should select either |
|---|
| 68 | |
|---|
| 69 | - the amount of tokens to exchange |
|---|
| 70 | - the exact tokens to exchange |
|---|
| 71 | |
|---|
| 72 | The user also needs to decide whether to exchange |
|---|
| 73 | |
|---|
| 74 | - to allow a specific amount to be transferred (later on), e.g. '7' |
|---|
| 75 | - for tokens of exact same denomination |
|---|
| 76 | - for automatic selection of token denominations |
|---|
| 77 | |
|---|
| 78 | The connection is then being made. The user needs to be informed either upon |
|---|
| 79 | successful completion of the transaction, or of a delay - requireing the user |
|---|
| 80 | to return at a later time to collect the tokens. Maybe the wallet could do this |
|---|
| 81 | automatically later on? |
|---|
| 82 | |
|---|
| 83 | |
|---|
| 84 | Token redeem |
|---|
| 85 | ------------ |
|---|
| 86 | |
|---|
| 87 | The user might want to redeem the tokens, which means effectively tranferring them |
|---|
| 88 | to the issuer. The interaction is pretty much the same as with token sending. |
|---|
| 89 | |
|---|
| 90 | Token mint |
|---|
| 91 | ---------- |
|---|
| 92 | |
|---|
| 93 | The user might want to have new tokens from the issuer, but this time not 'paying' with |
|---|
| 94 | old ones, but with other means, e.g. the serial number of a prepaid payment. |
|---|
| 95 | |
|---|
| 96 | The user needs to select the amount of tokens to receive and needs to provide some |
|---|
| 97 | text input as the purpose. |
|---|
| 98 | |
|---|
| 99 | The transaction is made, and the user gets informed if it suceeded, failed or got delayed |
|---|
| 100 | - automatic pickup would be great. |
|---|
| 101 | |
|---|
| 102 | |
|---|
| 103 | Token inspection |
|---|
| 104 | ---------------- |
|---|
| 105 | |
|---|
| 106 | The user should have the possibility to see exactly what tokens she holds in each of the |
|---|
| 107 | currencies, down to the level of inspecting each and every token. |
|---|
| 108 | |
|---|
| 109 | When getting an overview of the tokens (held in the active currency) most relevant |
|---|
| 110 | information is |
|---|
| 111 | |
|---|
| 112 | a) denomination of token |
|---|
| 113 | b) expiration date of token |
|---|
| 114 | |
|---|
| 115 | |
|---|
| 116 | Expected use |
|---|
| 117 | ============ |
|---|
| 118 | |
|---|
| 119 | Of the described functions, sending, receiving and exchange will be most likely |
|---|
| 120 | the most prominent methods. The token inspection could be something like the main |
|---|
| 121 | view of a currency, and most of the functions could be triggered from there. |
|---|
| 122 | |
|---|
| 123 | To speak in 'skype' terms: |
|---|
| 124 | |
|---|
| 125 | The list of buddies could be something like the list of tokens, instead of red and |
|---|
| 126 | green 'call' and 'hangup' buttons we would need 'send', 'receive', 'exchange' buttons. |
|---|
| 127 | |
|---|
| 128 | |
|---|
| 129 | Other functions |
|---|
| 130 | =============== |
|---|
| 131 | |
|---|
| 132 | There are other intereractions between the user and the wallet |
|---|
| 133 | |
|---|
| 134 | - allowing new currencies |
|---|
| 135 | - disallowing currencies |
|---|
| 136 | - getting new certificates from the issuer |
|---|
| 137 | |
|---|
| 138 | These would be more 'advanced' interactions, and don't need to be done on a day per day |
|---|
| 139 | basis. |
|---|
| 140 | |
|---|
| 141 | |
|---|
| 142 | |
|---|
| 143 | |
|---|
| 144 | |
|---|
| 145 | |
|---|
| 146 | |
|---|