BitGo is a third-party, multi-signature wallet service available for use with BTC, ZEC, BCH, LTC, and DASH.
Advantages of using BitGo are their reporting options and wallet backup services, which are simpler than creating backups of node wallets. Also, if creating a new server and intending to use BitGo (with Infura for ETH), you need not create a block volume nor use the lamassu-coins script.
BitGo will be available natively with our Crafty Chnemu (v7.3) release.
However, if you are running Ambient Antu (v7.1) or Bullish Bunene (v7.2), first you must first the article 'Updating BitGo' to install the new module, then follow the rest of this article to set up your BitGo wallets.
Also, if you have an existing BitGo wallet (prior to 2018), it uses their old wallet format. You'll see a notice within BitGo's control panel to upgrade your wallet if this is the case. This module only works with their new wallet formats.
Creating a wallet
Create a 'Personal Account' at BitGo's signup page, confirm your email address, and add two-factor authentication with Google Authenticator or a YubiKey.
On the 'All Wallets' page, click the 'Create Wallet' button. You can use the wallets indicated below with your cryptomat. For this example, we'll start with Bitcoin.
Choose 'Quick Setup', then give the wallet a name:
You may use either your BitGo account password, or for better security, a wallet-specific secondary password. Ensure you have both securely stored in a password manager. Whichever you choose, you'll enter this Password into your Lamassu admin settings later.
Choose a backup key option. In case you lose access to your wallet, Keyternal and BitGo can help you retrieve your balance.
Download, print, securely store, and delete your computer's copy of the keycard from the next page.
Follow the above process for all wallets you wish to use with BitGo.
After activating, do not choose the option to 'require admin approval on all outgoing transactions', as this would prevent your wallet from being spent from by your cryptomat.
Click on 'Settings' within the new wallet's panel, and copy and paste in a notepad the Wallet ID. Obtain this value from each coin's wallet you created, as they differ. We'll provide these to your admin in a moment.
Next, click on your name and 'User Settings'.
Click on Developer Options, then click + Add Access Token.
Give the token a Label, leave the Duration as is.
Provide each coin with a high lifetime spending limit (example: 1000000 without commas). If more than this amount is cumulatively sent through the wallet, transactions after that will fail when using this token.
Enter your server droplet's IP address below. This can be found in your DigitalOcean control panel. Provide View and Spend permissions, then click Add Token:
In the next screen, copy the API Token shown in the yellow box and paste it in a password manager. We'll provide this to your admin in a moment. The API Token is shown only once, so ensure it's copied correctly. You also only need to create one, which is applicable to all wallets.
Entering admin credentials
Navigate to your Lamassu admin's 'Third Party Services > BitGo' panel.
Input the API Token, Wallet ID(s), and Password(s) for all the wallets you created.
You will only need the Wallet IDs and Passwords for the coins you intend to use with BitGo, thus, some coins' fields can be blank. Leave 'Environment' set to prod. Click Submit.
Navigate to Global Settings > Wallet Settings, and set the new wallets to use BitGo.
Checking for success
Check that your deposit addresses and balances are being seen by going to Maintenance > Funding, clicking on each coin's tab:
If you receive a 'Network Error' message on a particular crypto or all of them, it's an indication that your credentials are incorrect.
Some common setup errors when seeing 'network error':
- The correct IP address was not whitelisted when creating the token. Double check the IP of your server and generate a new token.
- There are extraneous spaces before or after the Token or Wallet IDs. Ensure that these have been pasted correctly.
If you find that transactions are not sent after pressing 'Send coins' at the machine, it may be due to:
- Incorrect password. If you chose a secondary password during wallet creation, ensure these are used in the admin. If you generated secondary passwords that are unique to each wallet, then each wallet entry in the admin must have the corresponding password.
If you have any questions on the above setup, please let us know by contacting our support team.