USDC: 1st place
Textile honorable mention
Tonic is a decentralised bank account. It offers fast payments, savings and investments. The account is denominated in dollars and completely hides ethereum to the user. The UX is designed to be like that of a web 2 challenger bank. To be clear, there is not a single interaction of the user with the blockchain, as a matter of fact the user does not own any ether as everything is paid in USDC. The app offers a Fast pay account which is fast and cheap to use since it uses a zk rollup. The savings accounts will use Aave (unfortunately not implemented yet). There is also a dollar cost averaging (tokenized) bitcoin investment product. This allows user to hedge against inflation. Fast pay also allows requesting payments, both incoming payment and requests are delivered with a push notification, all done in a decentralised fashion. Finally there is a transaction list screen which uses off chain metadata storage/
How It's Made
The frontend uses: - Biconomy sdk for every interaction with L1 - USDC proposed EIP 3009 to allow gasless transfers - Portis to allow web 2 like UX instead of managing a wallet and signing transactions. - zkSync for cheap L2 transfers - Texitle Thread DB is used to store transactions metadata and the root DB for identity and tonic tags resolution - Textile mail boxes are used as a push notification for incoming payments as well as for payment requests. This uses either an ethereum address or a custom unique name as recipient address. Identity is validate via a signature stored in a Textile Thread (This was a hell of an hack in the last 48 hours :) On the blockchain side we have - A savings account contract which keep user's funds and invests them by buying tokenized BTC according to their settings. - A simple BTC execution strategy - A zkSync connector which doubles as USDC faucet. I am very happy with the use of the textile stack. In general I am really satisfied with the UX, I wanted to push the envelope and see if we can have a bank account build on top of Ethereum, without users knowing it's using a blockchain. It can be done!