ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAE
1
milestones
ownerestimated work
start date
end date
1wallet.crazy.onereference@1wallet_
2
M21 day6/28
mainnet launch with 10^2 = 100 users, each with $100 assets
3
M319 days7/37/31
mainnet launch with 10^3 = 1000 users, each with $100 assets
4
M48/1?
mainnet launch with 10^4 = 10,000 users, each with $1000 assets
5
M59/10?
mainnet launch with 10^5 = 100,000 users, each with $1000 assets
6
7
🍠aaronClient Security
8
M5-
✅Make the client resilient to brute-force attacks
9
M52
✅Implement a new method that imposes a difficulty parameter on operation execution
15
M52
☑️Replace EOTP hash function with a stronger candidate, Argon2
19
M5-
Document and analyze this method and the choice of the hash function
23
M4-
✅Offer Double OTP as a composable authentication method for enhanced security
27
M4<1
✅Make a one-time recovery EOTP residing on the client that is time-independent
28
M3<17/47/5
✅Ensure a commit is confirmed on blockchain, before revealing an operation (transfer or recovery).
29
30
☁️givUser Interface
31
M3☁️giv1 day7/17/5
✅display the total number and the total asset of 1wallet generated (waiting for Jenya to deliver API endpoint)
32
M3🍠aaron37/57/9
✅command line interface (for slowmist audit, hackathon spec, client security focus)
33
✅Add a button and a screen on wallet display page, that allow the user to set recovery address, if it is currently empty #7
34
M5☁️giv3 days7/57/8
Substantially reduce client bundle size
35
36
M5☁️giv
dune analytics on the total number of 1wallet addresses
37
M5☁️giv
dune analytics on the total assets of 1wallet addresses
38
M52 days
Add buttons and a screen on wallet display page, that allow the user to increase or decrease the wallet's spending limit
39
M5
If the user does not use any composable authentication method (i.e. has not set double OTP)
43
M5
If the user has already set a composable authentication method, require the user to use the composable authentication method (double OTP) to adjust the limit
45
46
🍠aaronRelayer
47
M3🍠aaron17/47/5
✅simple IP-based rate-limiting
48
M3🍠aaron<57/167/21
use relayer to sign for predefined transactions (nft purchase on da vinci, telegram tips)
https://eips.ethereum.org/EIPS/eip-777
https://eips.ethereum.org/EIPS/eip-1207
NFT transfer should happen on the NFT contract itself, so no signature is needed. The buying and selling of NFT is another matter. Selling may require signature. Need to find out exactly how it is verified right now, and how trading of NFT is done on Da Vinci.

s: buy/sell nft is similar to other tx signing, which can be done later. for m3, let's support hrc20/hrc721 token transfers to/from 1wallets
49
M3🍠aaron<57/217/26
use relayer to sign for staking transactions
Signature is verified against the signer's address. Stakes will be taken from signer's address. So we can't have the wallet contract to stake but have the relayer to sign.

s: relayer for off-chain staking or delegation is similar to staking derivatives or staking pool. schedule a call with rj on a minimal setup even in a trusted pool settings?
50
M4
Account abstraction: gasless wallet creation
account abstraction: externally owned account (eoa)
near's account model
51
M4
Client-side transaction signing
52
M4
Transaction authorization without forwarder
53
M5~0
✅Compute stateless incoming request fingerprints using the hash of concatenations of geo-IP, user-agent, HTTP ACCEPT header, and wallet root hash.
54
M5<1
✅Impose rate-limits for requests based on fingerprints. Requests exceeding rate limits per fingerprint will be responded with error-429 (Too Many Requests), subject to a delay that is doubled per consecutive error-429 resposnes, starting from 1 second.
55
M5-
Wallet creation: 1 per minute per fingerprint, and 30 per minute globally
56
M5-
Implement response prioritization: if a request is capped by global rate limit, it will be placed in a priority queue instead of responded with error-429 error. A counter will be kept for the number of requests in the queue per geo-IP, user-agent, and fingerprint. When an item is placed in queue, its priority will be set to -1 multiply by the sum of the counter values for its corresponding geo-IP, user-agent, and fingerprint. The server periodically (at a small interval) picks the request with the highest priority to serve. Any request staying for more than 10 seconds is automatically removed.
57
M5-
Commit: 30 per minute per fingerprint
58
M5-
Reveal (of any kind): 30 per minute per fingerprint
59
M5-
Others: 6 per minute per fingerprint
60
M5
✅ Implement response prioritization: when an incoming requests exceeds the rate limit, it will be placed in a priority queue for the type of the request. The request with the smallest The priority is determined as the following: the sum of number of requests from each of the following
61
62
🍠aaronSmart Contract
63
M51
✅Implement the patch to prevent the attack described above
64
M5<1
✅Implement the new recovery mechanism (Part I §3, Part II §3)
65
M41-2
Implement the daily spending limit mechanism (Part II §4)
66
M41-2
✅Implement activation of double OTP (Part I §2(a)(ii))
67
M4<0.5
✅Wrap up reviews for two outstanding pull requests:
68
M3🍠aaron<16/257/12
✅Ivan's review on ONEWallet contract #3
69
M3🍠aaron77/127/19
✅Slowmist code review on the "command line" version (li to cooridinate)
70
M3🍠aaron107/57/15
✅Dimitris' review/audit on security
71
M3🍠aaron107/57/15
✅Adriana's review/audit on security
72
M3🍠aaron17/67/6
✅Automatically trigger recovery process when the recovery address sends 0.1 ONE to the wallet
73
74
dApp Integrations
75
M3☁️giv<3
✅support HRC21 (native and bridged asset)
76
M3☁️giv<3
✅support HRC721 (NFT asset)
77
M4🎽li
gifting "one launch" (binance.us launch video by robin) to the first million 1wallet users
https://davinci.gallery/edit/0x541e2e5c7161c24c82371b252b20f790ccbea9f8
78
M4☁️giv2 days
✅NFT asset display gallery
79
M4☁️giv1 day
crazy.one names for wallet address
80
M4?
Integrate with Harmony staking
https://github.com/polymorpher/one-wallet/issues/9
https://github.com/harmony-one/onewallet/blob/master/src/popup/pages/API/SignTransaction.vue#L263
81
M4☁️giv2-4
Implement encrypted connection and session management, per WalletConnect spec
82
M4☁️giv<1
Implement user interface for parsing a WalletConnect QR code (via copy-paste) and parsing the underlying wc:... connection string.
83
84
🍠aaronSpecification
85
M4-
The introduction of the new methods for client security in Part I
86
M42
New algorithms, hash functions, benchmark, and security strengths in practice
87
M41Double OTP
88
M52
Yubikey or other generic, tamper-proof private-key based signing device.
89
M5<1
Alternatives considered during the design of the new methods for client security
90
M42
The user experience considerations and flow design in Part II
91
M42
The smart contract and protocol updates in Part IV
92
M4?
Feedback from Ivan @ivan-homoliak-sutd
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118