This tutorial explains how to create and manage SLP token issuance using a multi-signature wallet with Electron Cash SLP Edition and also a Ledger Nano X (or S) hardware wallet device.  We will walk you through how to set up a multi-sig wallet using a hardware wallet device, and then how to securely manage the supply of your SLP tokens.

1. Download and install Electron Cash SLP Edition

2. Opening the wallet and use the Install Wizard to get started (or existing users should go to “File>New/Restore”) :

  1. How do you want to connect to a server?: Auto-connect
  2. Wallet name: Provide a meaningful wallet name (e.g., “MyTokenIssuance”)
  3. Kind of wallet: Select “Multi-signature wallet”
  4. Number of signers: Set the “M of N” requirements for the multi-sig contract (2 of 3 multi-sig is shown below)
  5. Add cosigners (signer entry order does not matter):
    • Have Ledger Nano S or X device plugged in to your computer via USB and have the “Bitcoin Cash” device application selected with “Application is ready” displaying on the device’s screen.
    • Select “Use a hardware device” and then select the device on the next screen. If an error message is presented in EC, simply click “ok”, then on the device quit the Bitcoin Cash app and enter back into the app so the device says “Application is ready” and try again.
    • On the next screen keep the default path of “m/44’/245’/0’”, this will make sure tokens and BCH are placed on the HD path used for SLP compatible wallets. Warning: Using non-compatible SLP wallets on this path will destroy the SLP tokens.
    • On the next screen, copy the “Master Public Key” and record it for sharing with the cosigners.
    • On the next screen, add the additional cosigners:
      • If any of the signers are all using different computers to sign, the remote signer will need to follow all of the steps in this tutorial.
      • If this is the case, select “Enter cosigner key” and enter the Master public keys received from the other signers at this step.If any of the signers will connect their devices to the same computer for always signing together in the same wallet file, then select “Cosign with hardware device” and repeat the steps for the additional device.

3. Receive BCH (as gas for creating SLP tokens)

Go to the Receive tab, copy the address and send a small amount of BCH to this address.  We recommend sending ~$1-10 of BCH depending on how many token transactions you will be involved in.

4. Create an SLP token

Go to the Tokens tab and click the button on the bottom of the screen “Create a New Token”, then fill in all of the detailed information about your token that will be published to the blockchain upon creation.  Once the following token information is reviewed click “Create New Token” and follow the signing instructions provided by the EC wallet software.

    • Name, Symbol, Document URL, and Document Hash fields have no strict requirements and are up to the token issuer.
    • Decimal Places is the divisibility of your token. (e.g., setting this to 2 would allow a minimum amount of 0.01 tokens to be held by any address, whereas setting this to 0 would allow a minimum of 1 token to be held).
    • Token Quantity is the total quantity of tokens to be issued. You will notice that the Decimal Places field impacts what values can be entered here. (e.g., you can enter a Token Quantity of 0.01 with Decimal Places set to 2).
    • Token Receiver Address: Who is to receive the newly issued tokens?
    • Fixed Supply: This dictates whether or not more tokens can ever be created.
    • Address for Baton: This is an option only if “Fixed Supply” is unchecked. This gives the provided address authority to create (or mint) more tokens. This can simply be the same address who is receiving the initial supply of tokens.
    • Is NFT Parent?: This is for creating a new group that will be used to create grouped Non-Fungible tokens. NFT parent tokens are not non-fungible tokens, but each parent token can be burned in a special operation that will create an actual NFT child that is provably grouped by the parent’s original token ID.
    • The “Upload a Token Document..” is an optional tool that allows for the token creator to upload a small text document to the blockchain that is linked to the token’s genesis. The file is uploaded using Bitcoin Files Protocol.

5. Multisig Signing

The first signer will be responsible for creating the transaction and the remaining signers will import the transaction to add their signature.

    • After the first signer completes the process of creating any type of transaction he will be presented with the following window. Each cosigner should click the Sign button and then Copy the transaction hex so that it can be easily passed to the next cosigner. Alternatively, the signer can click Save as a file instead of using copy/paste, but Copy normally has fewer steps.

Subsequent cosigners will import the transaction into their wallet using Tools > Load Transaction > From text… It is sometimes easiest to use the Copy feature and Load from text. In this case the cosigner just needs to paste the partially signed transaction hex as shown below:

Where to see about your token

Now that your token has been created it will automatically be added to the Tokens tab.

    • In the tokens tab, you can right-click on the token to get to additional options like the “Mint Tool” and the “Burn Tool”.
    • You can go to SLP History to see all of the SEND and burning activity associated with your wallet’s addresses.
    • The Baton column will have a star next to any token that this wallet holds minting authority for.

Mint more of your token

Click on Mint Tool shown in the previous step and fill out the form provided to create more tokens. The token receiver address should be provided in addition to the address for the Mint Baton. We recommend keeping these to addresses held by your wallet.

Burn tokens

Click on Burn Tool shown in the Tokens tab right-click context menu. Fill out the Burn Amount and then click Burn Tokens.

Send tokens

Click on the Send tab to send tokens. Simply enter the receiver’s address, use the dropdown menu to select the Token Type, and enter the token amount.