Link to the article in: Japanese
Web is eating the world, but our community is not getting its fair share. Most web developers in the world do not understand how blockchain works and are not convinced that it might worth the learning curve. But maybe they don't need to learn anything new to use it! That's what Signup is trying to do. In this concise article I will try to go through my motivation for creating Signup, how it works and what goals this project is willing to accomplish.
Problem(s)
Building web apps for Bitcoin cash is not as easy as we wish it to be. Libraries like Bitbox and SLPjs provided access to APIs for broadcasting transactions and utility functions to sign them. They are pretty good, however, three problems are still prevalent.
How to make users trust us with their private key?
How to build BCH transactions? Can't we just ask for specific amount?
How to store data and build social apps? memo protocol is there but everything is closed sourced!
What is Signup?
Signup is a non-custodial platform as a service for developers to build BCH decentralized apps. The core elements of the Signup consist of:
Key Signing Hub: A non-custodial wallet on your browser to work like a hardware wallet, requesting for consent from the user and signing transactions.
Framework: Utility functions and easy to use API for developers to request users for different type of transactions without exposing the technical side of building a transaction on the blockchain.
Infrastructure: Providing all the infrastructure needs of any type of decentralized app for developers so they can focus on building amazing user experience for their users.
How it works for users?
Signup is a universal login like Facebook Login buttons. As a user, in every website you visit you can login to your Signup wallet and be identified using your unique Cash Account. If you are not familiar with Cash Account, it's a specification for a human readable account name that is directly connected to your BCH address (Credit to Jonathan Silverblood).
The web app you logged in can request you for different types of transactions (payment, storing data etc) and you get to choose to accept or deny it. Those web app you log in, would never have access to your private keys and there is no need for a browser extension to be installed.
Upon using any web app that uses Signup technology, the first time you will be asked to create a wallet that comes with a free Cash Account username.
After you're Signed up! You can use any web apps to interact with blockchain. This is how it looks like in a third party web app:
Try it out yourself! (report bugs if you found them 🤔)
In the example above, the website you clicked the button has no access to your private key or identity, however, it can log you in and recognize you with your unique cash account and BCH address.
For the most basic type of transaction, meaning a tip button it is similar to this:
Try it out yourself! (report bugs if you found them 🤔)
As you can see developers are totally in control of the experience of the app and are not limited to a set of predefined buttons and components. However, the consent popup in the bottom of the page is always gate-keeping your rights to make sure no transaction happens without your approval.
How it works for developers?
Developers can just use it right away without any registration or API keys. An authentication is as simple as this:
const signup = new SignupCash();
const user = await signup.cash.authenticate();
const { cashAccount, bchAddress } = user.getIdentity();
Requesting your web app's users for a payment would be as simple as this:
const signup = new SignupCash({addr: "DEVELOPER BCH ADDRESS"});
const user = await signup.cash.authenticate();
const { txId } = await user.pay(1000, 'SAT');
After user finished the payment, transaction ID will be returned in the example above.
You can visit our official docs or check out the Github repository for the fully functional example codes above.
Roadmap
SLP tokens support
Memo Protocol Integration (enabling building social media apps)
Signup key-signer app (keeping the custody of your private key on your phone)
IPFS infrastructure for Signup Storage (TBA)
Anonymized Analytics dashboard for developers
What else you need? Let us know!
What we believe in
Open source everything!
Everyone should be able to join and contribute
Make it damned easy!
Focus on the business use cases rather than fancy tech
Micro payments are the future
Bitcoin is pro business, so we are!
Get involved
Many features are still in progress and there is lots of work to do. Join our Telegram group and say Hi! Want to checkout Signup's code base and learn what we open sourced? Check out the Signup organization page in Github. Also feel free to follow me in Twitter for getting a hang of future updates.
Sponsorship or Investment?
Signup is a self funded project, in case you like the idea and are interested to help the project financially, drop me a line at p0oker@pm.me or DM me in Twitter.
Nice project bro, i hope you can get success