Hive Developers logo

Hive Developer Portal

Account creation process

The methods on how to create a new account.

This recipe will take you through the different options when creating accounts on the Hive blockchain.

Intro

The Resource Credit system gives us two ways to create an account. We describe their use here.

  1. Account creation method comparison
  2. Discounted
  3. Non-discounted

Account creation method comparison

Discounted account creations Non-discounted account creations
You can purchase Account Creation Tokens(ACT) and use them to create an account. These tokens do not expire. You need to create an account and wait for it to be approved by the Hive faucet
Account’s are created immediately at no additional cost. You are required to pay the 3 HIVE to create an account and wait for the account to be approved.

1. Discounted account creations

The discounted account creation process uses an Account Creation Token(ACT) that is purchased with Resource Credits (RC) to create the account instead of paying the creation fee in HIVE.

ACTs are only good for creating accounts. They have no other purpose. They do not expire, are not transferable, and there is also no upper limit to the amount of tokens one can have. (If you’re a hoarder, you can be stockpile them.) There is however a limit on the total amount of tokens available on the blockchain for claiming at any one time. The available tokens replenish over time, and the limit is decided upon by the witnesses.

Claiming tokens is the first step required to create an account. To do this, broadcast the claim_account operation on the network to claim an account token.

[
    "claim_account",
    {
        "creator": "creator",
        "fee": "0.000 HIVE",
        "extensions": []
    }
]

Once you have claimed a token, broadcast the create_claimed_account operation to create the account using the account that claimed the token. Select a new unique account name and provide account keys for the new account. These can be generated using any of the Hive libraries available.

[
    "create_claimed_account",
    {
        "creator": "creator",
        "new_account_name": "new_account_name",
        "owner": {
            "weight_threshold": 1,
            "account_auths": [],
            "key_auths": [["000000000000000000000000000000000000000000000000000", 1]],
        },
        "active": {
            "weight_threshold": 1,
            "account_auths": [],
            "key_auths": [["000000000000000000000000000000000000000000000000000", 1]],
        },
        "posting": {
            "weight_threshold": 1,
            "account_auths": [],
            "key_auths": [["000000000000000000000000000000000000000000000000000", 1]],
        },
        "memo_key": {
            "weight_threshold": 1,
            "account_auths": [],
            "key_auths": [["000000000000000000000000000000000000000000000000000", 1]],
        },
        "json_metadata": "",
        "extensions": []
    }
]

Accounts created with this method, don’t have any HP, but do have enough RC to interact with the chain at a starting level.

2. Non-discounted account creation

Non-discounted account creation operation allows you to create accounts by paying an account creation fee of 3 HIVE as part of the account creation api call. We use the account_create operation to commit this transaction to the blockchain. When creating a new account, the new account_name needs to be supplied. The keys must be derived from an owner-key which must be kept safe. The account keys can be generated using the new_account_name, owner-key and Hive tools.

[
    "account_create",
    {
        "fee": "3.00 HIVE",
        "creator": "creator",
        "new_account_name": "new_account_name",
        "owner": {
            "weight_threshold": 1,
            "account_auths": [],
            "key_auths": [["000000000000000000000000000000000000000000000000000", 1]],
        },
        "active": {
            "weight_threshold": 1,
            "account_auths": [],
            "key_auths": [["000000000000000000000000000000000000000000000000000", 1]],
        },
        "posting": {
            "weight_threshold": 1,
            "account_auths": [],
            "key_auths": [["000000000000000000000000000000000000000000000000000", 1]],
        },
        "memo_key": {
            "weight_threshold": 1,
            "account_auths": [],
            "key_auths": [["000000000000000000000000000000000000000000000000000", 1]],
        },
        "json_metadata": ""
    }
]

You can follow this tutorial to see a working example of how to create accounts.