Digital currencies are all around us. Nowadays, it is relatively easy to become a holder of a digital currency, but it is not at all easy to become an issuer of a digital currency. Swaptacular tries to make creating and issuing new digital currencies practical for everyone. The Swaptacular project consists of three things:
In Swaptacular’s network architecture, there are five types of nodes:
The diagram above shows the simplest possible Swaptacular network. Note that different network nodes (accounting authorities, creditors agents, debtors agents) can be operated by different organizations or individuals. Thus, very much like Internet, Swaptacular’s network is decentralized by its nature.
Another important thing to note is that one creditors agent can connect currency holders to many different accounting authorities. The following diagram illustrates the connections that can exist between different types of nodes in a real-world network:
The above diagram shows two different creditors agents, each connecting currency holders to two different accounting authorities. It also shows two different debtors agents, each connecting currency issuers to the same accounting authority.
At the core of Swaptacular’s network architecture is the Swaptacular Messaging Protocol, which governs the communication between accounting authorities and debtors/creditors agents. The protocol uses a two-phase commit schema for making payments, which allows for the implementation of automatic currency exchanges in the spirit of Circular Multilateral Barter, eliminating the need for a single reserve currency.
In order to allow currency holders to use a client application of their choice, Swaptacular recommends creditors agents to follow the Payments Web API Specification.
Since interchangeability of client applications for currency issuing is not of critical importance, Swaptacular does not make recommendations about the Issuing Web API. (The reference implementation uses Simple Issuing Web API.)
Swaptacular takes the interoperability between different implementations very seriously, and tries to produce precise, clear, and concise specifications for every important aspect of the system:
All the above implementations try to:
You can see examples how to run the different kinds of Swaptacular nodes here, here, and here.