Tonic is a money account ready for mass adoption. It provides free instant transfers, interest on savings and much more.
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/
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!