Fermat builds the necessary services to run a wallet application at a user level collecting different functionalities available. Each functionality has its own workflow, i.e the thread connecting the Plug-ins from different layers to complete a task.
First group of functionalities are wrapped in the reference wallets, which are designed to fulfill only one specific objective.
Niche wallets are built combining a set of reference wallets to satisfy the specific needs of a certain type of actor.
* i.e. Fermat Bitcoin Wallet is the niche wallet of the Crypto Currency Platform, designed for those actors that only require a wallet to manage their value in Bitcoins without further complexity. This is based on the Crypto Wallet as reference wallet, which in returns sets in motion the specific workflows to fulfill its duties.
Inside a wallet, there are two distinct groups of components:
* components oriented towards users (what they see and manage the wallet), called front-end components.
* components that perform each function of the wallet at an operational level, called back-end components.
Fermat provides a Wallet Manager application to install available wallets in the user’s device, collecting from the distributed network, the necessary front-end components (wallet’s navigation structure and wallet’s resources) and activating the dormant back-end components built-in the Fermat implementation.
Once we have at least one Niche Wallet (i.e.Bitcoin Reference Wallet), we realize that in the front-end there are two distinct tasks taking place: on one hand, there exist a navigation structure (available menus, tabs, buttons, etc) that provides the means by which the user operates the wallet, and on the other hand, there exists a set of resources (multimedia files, images, etc) used for the visualization of each element of the wallet.
At the back-end , where the real action is occurring, we have a lot of components acting to provide the necessary functions, like:
-
sending and receiving the crypto currency
-
keeping track of the balance of the wallet
-
managing the contacts (register, identification, etc)
If someone having the required programmer’s skills wants to build a wallet the traditional way in the industry (i.e. without using Fermat), he will have to build every and each one of the components needed for the wallet to run, writing the code from zero. However, Fermat Wallet Factory enables developers to take any of the available niche wallets to reutilize its COMPLETE back-end (all the programming code stuff!), and concentrate his endeavor only to the front-end making his job a lot easier and allowing all his creativity to be channeled in a better and more attractive result for the end user. (not only for a nice look but also for improved and more efficient functionalities!).
The first step to create a wallet is to join Fermat and get an identification as a Plug-in developer.
Then, by logging in into the Wallet Factory application choose a reference niche wallet to import, give the wallet’s project a new name and save it as a new WFP-file (WALLET FACTORY PROJECT FILE).
Once in your own project you will re-define the navigation structure and then assign which wallet resources you will choose to give your wallet a unique appearance.
The last step is to run the project and test how it works until you are satisfied with the results.
To give birth to a new wallet into the world, you will have to publish it using Fermat Wallet Publisher
The Wallet Publisher takes the new wallet designed, holds it into a WFP-file and publishes it in the Wallet Store and by this, it becomes available to the rest of the Fermat community to use it.
The publisher is also responsible of notifying the release of new updates for each version or upgrades to new versions of existing wallets.
The Wallet Store component is inside a Fermat DAPP (Distributed Application), i.e. an undetermined amount of nodes collaborate between them to provide the functionality of the application inside the whole system.
The Wallet Store functions similarly as other known app-stores, and it serves, to show the user the wallet that might be attractive to him. It is a distributed catalog of wallets.
When one new wallet is chosen, the Wallet Store notifies the Wallet Manager to make it available to the user.
Internally, the Wallet Store keeps the identity from the wallet of its developer, and of the resources used by it.
Let’s explore the different niches covered by Fermat in the platforms explained in the next chapters.