What problem does your project solve for and what was the user need for creating your token economy?
Firmament is a chat bot that improves business results by letting employees reward each other. Deploying firmament in a business shows the employers appreciation through the peers actions and motivates to improve without setting fixed goals.
What was your key goal behind doing the challenge?
Firmament is all about rewarding constructive bahaviour and employee trust and not about rewarding hacks to internal databases. To ensure the integrity of all the transactions in the internal rewards system Firmament should be based on a blockchain. The blockchain makes it impossible to manipulate historical data. When someone sends a reward to their peers the transaction can never be reversed.
Running Firmament on a branded economy powered by OST.com was the fastest way to integrate blockchain functionality with an easy to understand API.
How did you plan the design for your wallet features?
Firmament has two user interfaces. The chat bot and the web based dashboard.
The chat bot is a command driven interface (send tip, show balance) and was implemented with simple “slash commands” (/balance /tip). Slash commands are a standard feature of Slack and easy to implement. In Alpha phase II building the balance feature was a little tricky. I had to keep track of all transactions in a local database to update the balance. With the balance API this is just a single call now. The tip function uses an action (ARWD TIP) with a variable amount passed by the user.
The web interface gives an overview of all transactions and offers a way to buy RWD using fiat (real money). The transaction overview was also based on a local database in the first version of Firmament. This database could be replaced with a simple call to the ledger API in Phase III. Buying RWD is performed through Stripe, an external payment processor and then passed to a fixed value Action (ARWD RECHARGE)
All actions that are not initiated by the user through the chat bot (receiving a transaction, receiving the initial airdrop, buying RWD) are sending a notification to the user via the chat interface.
What did you like about using these APIs?
The thing I like most about the OST APIs is not primarily the simple design, or one method in particular. It is the progress these APIs made during the OST Kit Alpha. There are very few products that seem to magically improve as soon as you wish a feature was available. Whenever I thought “it would be so much simpler if OST Kit could…” the next version had this feature.
What did you learn about designing these wallet features?
In an early version of Firmament I displayed the total amount of all transactions of a user. There is no easy way to find this out in OST KIT, but after researching with the users in the official Firmament slack channel I found out that no one needs that feature anyways. One feature that was essential to the way my application works were user notifications. Those notifications are implemented through a queue that checks transactions regularly and notifies the user when they change. It would be really cool when OST Kit would offer such an update through a subscription service like PubSub.