Here is a full recap of BUIDL Week which took place on 8 April - 11 April. Here is the video of each demo/presentation.
🥇1st place: Embeddable Support Chat, Team members: Richard, Iuri
🥈2ed place: Continous Subscriptions, Team member: Barry
🥉3ed place: Keycard Meta Transactions Tap Wallet & Point of Sale,
Team members: Andrea F., Dmitry, Michele, Guy-Louis
See DApp results here
Status: abandoned for greener pastures
Team members: Andy
I finally figured out how to do exact exponential curves in Solidity - check here. So, I've spent the week writing the final contract, integrating Embark into the DApp Store, writing tonnes of tests (up to over 1800 now), playing with Trail of Bits' static analysis tool, Slither; and generally preparing things for v2 of the DApp Store which will start this week.
DAppStore Tests | Designs Being Built |
---|---|
Currently running between Gitter's embark-framework/Lobby and Status #status-embark.
This gitter channel was previously bridged to Discord as well, so as an interesting side effect, we can communicate from Status to Discord!
Come and say hi! https://get.status.im/chat/public/status-embark
Bridge | #status-embark |
---|---|
Team members: Richard, Ceri, Jonathan R, Andrei
The code: https://github.com/status-im/meritocracy
The admin page was added to enable admins to add and remove contributors easily.
Before, they needed to interact with the contract directly, and then modify a json file that needed to be manually reuploaded.
Now, only need to fill a small form and click a button.
Also, improved the style a bit to match the Figma file above.
Here's what it looks like:
Award tab | Widthdraw tab | Admin page |
---|---|---|
Team members: Andrey, Maciej
To make this project working, Andrey had to do next:
also as a side project
RESULTS:
Fiddle new feature and development process:
Video link: https://www.youtube.com/watch?v=ygld6yALiOg
Stand-up EXTENSION:
Video link: https://www.youtube.com/watch?v=hcS-RHGxoO4
Daily stand-up | Weekly stand-up | All standups in profile |
---|---|---|
CODE: https://extensions.status.im/?hash=QmbmQ8rFpGVZmu6uWCJYEDax2QNsCkyoms9X4gUNsQmKmf
Note: unfortunately, you can't run it in fiddle or status yet, because there were changes in fiddle and status code bases which must be shiped at first (in progress)
TODO:
Team members: Andrea F., Dmitry, Michele, Guy-Louis
https://www.youtube.com/watch?time_continue=2&v=RU8IN7kNSBQ
Goals:
Code
Tap Wallet dApp
Tap Wallet Smart Contract
Setup
In the phone on the right I setup a Tap Wallet. The dapp deploys a smart contract similar to a multi sig where the only signer is the keycard, and the owner is the current account used in status.
I can setup multiple Tap Wallets, each one with a different keycard associated to it, for example:
After the setup, the phone is no longer needed, I can just use the card to pay.
Paying at a merchant Point Of Sale (POS)
The keycard doesn't have a display, so the POS can send any transaction and I can't see what I'm signing. It's ok when I use my trusted device but not with an untrusted POS.
Normally we can decide to use the keycard to sign full transactions with a pinless key, where we keep a few ETH and it's separated from the main BIP44 addresses that we use when we pair the card to a trusted device.
In this specific use case instead, the card doesn't have any ETH, it's just a signer of a smart contract that has some value.
Here what happens when I tap the card on the POS (phone on the left):
In this example the POS needs to put the password to send the actual transaction, but it can be avoided when we finish the new keys management. After that the tx can be sent with a hot key without asking the password, and the value can be sent automatically to a cold address.
With this use case the keycard doesn't have any value, so it's not a problem if we lose it. We can also give it away to a friend, and just remove it from our Tap Wallet.
Using status-js, status-js-web and murmur, we created a pure javascript component that allows any website to have their own Status channel without a need for any plugins or a specialized browser.
With this component all someone needs to do is copy a html snippet and paste it in their website
<link rel="stylesheet" href="https://status-im.github.io/status-chat-widget/themes/status.css">
<script src="https://status-im.github.io/status-chat-widget/dist/js/statuswidget.js"></script>
<div id="status-chat-widget"></div>
<script>StatusWidget("your-channel-name", document.getElementById("status-chat-widget"));</script>
Then the user can then replace your-channel-name
with the intended channel, and they have the status chatroom working on their website!
Something like that:
Team Members: Igor
Hacked together the "mailserver" section of the admin UI. I can run my own mailserver and connect to Status mailservers with this UI. I can connect and chat with Status using it.
Repository
Pitch
Presentation
Log
Team Member: Julien
https://www.youtube.com/watch?time_continue=18&v=TOfmJmiFCx8
https://github.com/status-im/multisig-dapp
Team Members: Ricardo
A nice working dapp for managing owners and transactions in a standard multisig wallet.
Want to make a platform for monitoring the state of contracts, who is interacting with them, and set appropriate alerts on various criterion.
Results:
This will allow us to see who is doing what on smart contracts of value to us, specifically:
NOTE: I am not interested in winning. This is just a good time to work on such a thing, as I'm tired of waiting for someone else to build it. Please remove me from the judging part.
Tech specs: I've decided to build a GraphQL server in Go, the front end is just a node-react app (Using apollo for graphql). Boilterplate has been created and can be found here and further work will happen here
Team Members: Corey
Team member: Oskar
Write-up/presentation: https://discuss.status.im/t/hello-staples-swarm-pss-feeds-poc-for-buidlweek/1166
Replicated chunks made out of robust zinc-stained steel in an ordered log.
For messaging, we need to store and pass things around between people. Swarm is a place to store and spread things. PSS is a way to do messaging on top of Swarm. Sometimes people are away, and when they come back they need a way to find out what they missed. Feeds is a place we can look to find thing that have changed. Staples is a proof of concept for messaging using Swarm, PSS and Feeds.
What it looks like:
Demo:
{%youtube HwiR0_KCQuI %}
Note: Some (a lot) of shortcuts were employed in the making of this video
Source: https://github.com/status-im/staples
Source: https://github.com/status-im/subscriptions
low-fi mockup: https://jsfiddle.net/bgvianyc/wb2r18uc/
Adding the automatic sweep makes this more compelling because it allows all participants to have higher earnings and gives the protocol itself a path to self-sustanability.
Example: Someone currently billing Status GMBH $1,000 per month. At the end of the year they would earn $12,000.
If they convert to a subscription, they also will earn what ever the prevailing rate on compound is. Currently at 6.5%, they would get 80% (5.2% - 20% will go to a DAO/DAC/Fund). If they maintain an average balance of 1000 DAI throughout the year they would have earned an additional 50 DAI. Status GMBH might be subscribing to multiple subscriptions and may be holding an average monthly balance of 100,000 DAI which would be an additional 5,200 DAI to Status GMBH and the 20% which the contract takes would be 1,430 DAI going into a DAO to support future development.
In short an extra 6,680 DAI that is currently being left on the table going to core contributors, Status GMHB and a DAO.
The above is just one example. Any DApp could potentially operate on subscription instead of transactional basis, the uses are limited only by imagination.
Team member: Barry