Creating Bitmark Accounts

Any user interacting with the Bitmark Property System requires a Bitmark Account. It can be created using the Bitmark App, the Bitmark SDK, or the Bitmark-CLI.

After creating an Account, a user will often want to recover the seed (which is the private key that can be used to control the Account) and the recovery phrase (which is a set of 12 mnemonic words that can be used to regenerate the seed).

About the Bitmark Account Number

Property owners in Bitmark system are identified by their Ed25519 public keys. These public keys are represented in the Bitmark Property System by Bitmark Account Numbers, which encode the Ed25519 key in based58 format.

Example — Bitmark Account Number on Livenet:

  `bqSUHTVRYnrUPBEU48riv9UwDmdRnHm9Mf9LWYuYEa7JKtqgKw`

Example — Bitmark Account Number on Testnet:

  `fABCJxXc8aYGoj1yLLXmsGdWEo1Y5cZE9Ko5DrHhy4HvgGYMAu`

Creating a Bitmark Account using the Bitmark App

To create a Bitmark Account using the Bitmark App:

  • Download and install the Android or iOS Bitmark App

  • Open the App

  • Tap the CREATE NEW ACCOUNT option

    While creating an account, users can enable Touch/Face ID and Notification options.

    Create New Account option Touch/Face ID option Notification option


  • Look up the Account Number by accessing ACCOUNT > SETTINGS; record it

    The Bitmark App allows users to

    • Copy the Account Number to clipboard directly by tapping on it; or
    • Display the Account Number as a QR Code by tapping on the QR Code icon.
    Account Menu Account Settings


  • Backup the Recovery Phrase by selecting ACCOUNT > SETTINGS > WRITE DOWN RECOVERY PHRASE

    Write down Recovery Phrase option Write down Recovery Phrase Recovery Phrase

Creating a Bitmark Account using the Bitmark SDK

This section introduces a simple way to create a new Bitmark Account using the Bitmark JS SDK. For a detailed explanation, further functions, and other languages please consult the Bitmark SDK documents.

To initialize the Bitmark JS SDK, create a Bitmark Account, and export the related information:

  • Install the Bitmark JS SDK

    # npm install bitmark-sdk

  • Initialize the SDK configuration

          const sdk = require('bitmark-sdk');
    
          const config = {
              API_token: "api-token",
              network: "testnet"
          };
    
          sdk.init(config);
    

    The SDK supports two options for the network, each requiring a corresponding API tokens:

    • “livenet” - all requests are submitted to the public Bitmark blockchain, which is the main chain.

    • “testnet” - all requests are submitted to the testing Bitmark blockchain, which is normally used for testing and development activities.

  • Create a new Bitmark account

      let account = new sdk.Account();
    
  • Retrieve the Account number

      let account_number = account.getAccountNumber();
    
  • Retrieve the Account seed
      let seed = account.getSeed();
    
  • Retrieve the Account recovery phrase
      let phrase = account.getRecoveryPhrase();
    

Creating a Bitmark Account using the Bitmark-CLI

This section introduces simple commands to create a new Bitmark Account using the Bitmark-CLI. For the command structures, detailed explanations, and other functions please refer the Bitmark-CLI documents.

The Basics of Bitmark-CLI

All Bitmark-CLI commands follow the same basic structure:

$ bitmark-cli [global-options] command [command-options]

You will need to send the Bitmark-CLI the global option --network (abbreviation: -n) to identify the network that you are sending the command to.

Network Options:

  • bitmark: the live network, which uses live BTC or LTC to pay for the transactions.
  • testing: a network for testing newly developed programs, which uses testnet coins to pay for transactions.
  • local: a special case for running a regression test network on the loopback interface.

Creating the Account

To create a Bitmark Account using the BitmarkCLI:

  • Install Bitmark-CLI

  • Initialize the Bitmark-CLI configuration

      $ bitmark-cli -n <network> -i <identity> \
      setup -c <node>:2130 -d '<description>' -n
    

    The setup command initializes the Bitmark-CLI config file.

    Global Options:

    • network - The network to which the command is sent.
    • identity - The identity of the Bitmark-CLI user.

    Command Options:

    • node - The Bitmark node to which the Bitmark-CLI connects and submits its transactions.
    • description - The identity’s description.
    • -n (abbr. of –new) - A new account is being created.

    Example:

      $ bitmark-cli -n testing -i first \
      setup -c 128.199.89.154:2130 -d 'first user' -n
    

    This command creates a user on the testing network using the node 128.199.89.154:2130 with the user having an identity of “first” and a description of “first user”.

  • Add an additional Bitmark account
     $ bitmark-cli -n <network> -i <identity> \
     add -d '<description>' -n
    

    The add command adds a new user after the Bitmark-CLI configuration was initialized. The command options have the same meanings as in the setup command.

    Example:

     $ bitmark-cli -n testing -i second \
     add -d 'second user' -n
    
  • Check the account numbers
      $ bitmark-cli -n <network> list
    

    The list command lists all the users of the Bitmark-CLI.

    Example:

      $ bitmark-cli -n testing list
    
      SK first    fUuNhZ6CC4YxUkQB99nuLnUiEevEuwdCoYszJ9Y5uUjp8oiA3A  "first user"
      SK second   fPWWkW45o12er6oP4EveaURHXstkSXR3odWCgpaDvEvxoR3woC  "second user"
    
  • Get the account seed and recovery phrase for an identity
      $ bitmark-cli -n <network> -i <identity> seed
    

    The seed command prints out all the information about a Bitmark-CLI user.

    Example:

      $ bitmark-cli -n testing -i first seed
    
      {
          "privateKey": "BQVdbCAVQ1KHv4sDSQ5d874BfZYmLeeJveNGXThxU4WKh5K39o6eEVqoBZFKbJWHiJgkyYThnBFdfF9bgSGmhyDLsk7oR9",
          "seed": "9J87ApGrXzDitFk8eviHf31RNXbTcjW8S",
          "description": "first user",
          "name": "first",
          "account": "fUuNhZ6CC4YxUkQB99nuLnUiEevEuwdCoYszJ9Y5uUjp8oiA3A",
          "recovery_phrase": "lamp between sponsor butter lawn ski venture autumn anger corn bullet catalog"
      }
    

NOTE:

  • The account creation commands require users to provide and confirm a password.
  • All identity-required commands ask for the account password. For example, the seed command requires it because it outputs sensitive data.