I twitted a sneak peek two weeks ago about a project we are currently working on. I have got some time to finish the landing page and make a few screenshots of the work in progress. I decided to make a series of medium articles with in-depth information about the endeavour, technology and the vision of CarrIOTA.
The first article is the formal announcement of the project with the reasons behind it and some general overview of the features.
Meet CarrIOTA — your personal IOTA-driven bank
The term “carriota” has been coined some time ago at the IOTA’s slack. I used this term a few times to refer to 100 mIOTAs (100 million IOTAs).
🥕 = carriota = 100 mIOTAs
The name stuck as we have started to work on a new generation of a cryptocurrency manager. Beyond a simple “wallet”. A complete manager of entities, wallets and value flows between them. A “carrier” of IOTAs. Hence, “CarrIOTA”.
The reasons and requirements for creating CarrIOTA were several:
1.Overall discontentment with the current “official” IOTA wallet.
I know that the technology is still beta and that the official team is concentrating on the underlying tech rather than spending time to polish the front. But even so, I had the feeling that it could be done better. For instance, managing several wallets at a time or having “frequent contacts” for easier and faster transactions.
Slow connection speed was another issue, which could be solved if you ran the wallet all the time in the background (like a service). The attachment to the tangle wasn’t fast, either. I would prefer something that takes your order and does everything in the background without having to wait.
Your transaction has been received and will be processed shortly.
2.Managing of multiple wallets.
It is very important to be able to quickly manage several wallets/accounts at a time. We had this notion before the new IOTA UCL wallet has been announced. I am happy to see that we are not the only ones who see this as a vital feature.
Imagine a future where many of your devices have own wallet. Or that you have multiple accounts with a “main wallet”, “saving”, “online/shopping wallet”, etc. Constantly switching between them copy-pasting 81-character-seeds is a nightmare. So how about logging in just once and having access to your wallets?
3.Limiting wallet access
Now imagine you have just one password to manage all your wallets/accounts. Doesn’t it make the access less secure? Sure it does! If someone gets hold of your password, she could potentially access all your seeds and all your funds. So what can be done?
You could separate users from wallets. You could have one superuser that has access to all seeds and wallets. This user can also create other users (or entities) with limited access to her wallets. These users never see any of the seeds and can only do what they are allowed to do according to the permissions assigned.
The “wallet” should be accessible from anywhere, without storing, memorising or typing your seeds on potentially insecure devices. We wanted to be able to have limited access to the funds with a user/password combination for faster AND secure user experience.
When it comes down to comparing any crypto-wallet with a bank account or something like PayPal, this is one of the things that is lacking, but of utmost importance for mass adoption. Automatic transactions. These can be divided into two groups:
- Standing orders: are transactions that get executed periodically.
- Direct debits: are transactions that are executed upon request from a third party. This could be an online shop for faster checkout or your car insurance charging the annual fee.
6.Easier IOTA conversion
One of the biggest barriers for IOTA right now is the difficulty to purchase the coins. Wouldn’t it be awesome if you could convert IOTAs to USD/EUR back and forth with a mouse click directly from you wallet?
7.Total control and absolute security
Given all the points above, the system should still be in your absolute control. No one apart of the owner should ever have any access to the stored seeds.
So, what the hell is this?
Given all the requirements above, we came up with a solution. An application operating on your own hardware that manages your wallets. It runs either as a stand-alone app on your computer or as a 24/7 service on your home server. In that case you access the manager through your browser.
You log into the application as a user with certain set of rights and permissions for a given set of wallets. These permissions are defined by the wallet owner. Each user can create her own wallets (if permissions allow) and give other users permissions for certain actions.
Certain entities do not have access to the manager. They do not know where the application is located or how to access it. These entities operate on an API layer running on top of the IOTA tangle. That is how direct debits operate and will be explained in-depth in the following article.
The service can be run on any computer with linux installed. We are experimenting to make it work on an SBC (single board computer) such as Raspberry Pi, which you plug into your router at home, boot with a CarrIOTA SD-card and start using!
Hell, if you are paranoid enough, you could have a power outlet in your safe and run the SBC from that safe, literally storing your funds safely. 😄
You decide how and from where the manager should be accessed. It could be just your computer, your local network, a certain URL that no one knows except the users that are allowed to log in or a resource accessible over virtual private network. A native mobile app is not our first priority at this moment, but the manager will be accessible through your browser.
So, what the hell is this? You tell me. It is beyond a flat “wallet”. This is something like your own bank, where you are the owner and the user, combined with an online payment processor like PayPal. We are still struggling with the exact definition. 😂 Sorry for the suboptimal “IOTA finance manager”. We are open to other suggestions!
The usage goes beyond a simple household. The idea is to create a powerful manager for businesseses for complete control over a huge set of appliances. Something like a “fleet manager” for IoT. 😉 More on that in the upcoming articles.
As always, thanks for reading. Here’s a carrot: 🥕