There are two ways to create an account on Hive. You can burn 3 Hive or you can use up a Discount Account Creation Token (DACT). If you're running an app it's not terribly attractive to be constantly burning Hive to make accounts. Pretty certain Matt and I are responsible for more burnt Hive than anyone else on the chain, so I think I can speak with authority that buying lots of accounts that way sucks.
The better way to create accounts is through burning DACTs. You earn DACTs by staking enough Hive to have enough Resource credits to perform the action to generate DACTS, if you have enough resource credits then you can submit a claim to generate the DACT, and then there's a separate claim to actually burn the DACT to create the account.
For a one-off account creation kinda thing it's easy enough to automate generating DACTs using Hive-Keychain if you muddle around in the settings. You can then create new accounts with them using peakd.com.
That all works reasonably well if you already have an account and want to make another, but it's inconvenient if you don't have an account and need to make one.
One of the key problems is that the people with Stake and thus DACTs are not usually the same as the people who want to create accounts for the first time. So, it gets a little tricky and involves a fair amount of trust to generate new accounts between parties. You may have to share a key or set active authority. That's scary to me, bad user experience, and not really necessary.
I brought up having fungible DACTs a few times, but it wasn't well received at the time. I'm not quite in favor with the Hive whales, so I don't see any good way to change things on the Layer 1. So, here we go again making tools on the layer 2. I think shared account creation via DACTS will be beneficial to everyone on the blockchain. If you don't like what I'm about to propose it's pretty simple: don't use it. If you do like it you can incorporate it into apps you run if you're making accounts or run a node to allow your DACTs to be burned to generate accounts.
Introducing the Opensource Hive Account Creation Tool: DACTER
The account creation service will have two modules.
Core module - handles account creation requests from projects and communicates valid requests to the client module and responds back to the project.
Client module - it is run by all the accounts who want to use their DACT for a fee to create the requested accounts from the code modules.
Step by step process -
- Project registers with the core module and buys credits to create an account. one credit is one account. price is let's say 2 BEE per credit (configurable)
- Project creates an API key to interact with the core module programmatically
- Project displays a form to the user for details they need.
- The project may charge the user if they want to in whichever currencies they want.
- Once the project is satisfied with the user input and payment it will send a request to the code module with the hive username, all the public keys, and metadata to the code module for account creation. Please note that the core module and client module won't have access to the newly created user's password.
- Upon receiving the request the core module will validate the data sent to it, and then route the request to one of the available client modules for creating the account.
- Client module then creates the account and responds back to the core module.
- The core module verifies if the account was created, responds back to the project with a success message, and then send payment to the client module and the account creation is complete.
So, you get that? Whales can work with Dapps on the layer 2 to create accounts for projects. The whale runs 1 verson and the DAPP runs a different version of the software. They can comminicate, create accounts, and the keys (or active authority) never leaves your own server.
It's not quite as elegant as the top 20 witnesses allowing DACTs to be fungible, but it's a nice solution on the layer 2 until it happens.
What are the steps from here?
We plan to release an alpha in early April. Whales can run 1 version and apps another. Whales can set fees for apps, and apps can set fees for users. We'll likely take a small cut, but still have to see the final configuration (because it might just be completely free).
Whales- get paid more to stake Hive
Apps - cheaper account creation than 3 Hive
Users - easier experience to make Hive accounts especially for first time hive-accounts
Hive-Engine- Small fee, maybe