BitGo Express Parameters
This guide is designed to help you connect your CAS to a working BitGo Express server.
If you do not already have an operating server, please see: Setup a BitGo Express Node
BitGo Express is designed and written by BitGo for their BitGo website wallet.
BitGo holds and secures your cryptocurrency keys.
BitGo Wallet is a hot wallet option in the Crypto Application Server (CAS).
BitGo Express is used to interface with BitGo. CAS does not interact with BitGo directly.
1. Assemble your BitGo Express parameters for CAS:
Parameters are host : port : token : wallet_id : wallet_passphrase
Your actual host & port will be reported by BitGo Express:
port: 3080 is the default port, and is used in most every case & examples below.
Understanding “host”:
The “host” is where CAS will steer RPC communications: the target server. The server will vary upon your implementation, and the IP will vary depending upon your actual assigned IP for your server.
host: is normally http://localhost when
a) using a SSH tunnel, or
b) Bitgo Express is running on the same server as CAS (not recommended).
when using the GB Wallet Tunnel, the host is the target BitGo Express server,
e.g. “http://123.123.123.123”
The GB Wallet Tunnel will attempt to connect to your BitGo Express server at that IP.
2. Prepare your developer API token at BitGo.
To create a new access token:
Navigate to: https://www.bitgo.com/settings#developerOptions
Click + Add Access Token
Enter a descriptive name for the API token.
“Spending Limits” should be non-zero. Enter appropriate amounts.
WHITELIST your BitGo Express node server IP.
Enable all permissions by checking all boxes.
Agree to the terms, and click "Add Token".
The next screen reveals your developer API token. Save it!
It cannot be displayed again!
Locate your wallet_id in your BitGo wallet settings:
Determine your wallet_passphrase.
Normally this is your account password -unless- you created a new wallet and chose a separate password (which is recommended).
3. Enter the assembled parameters into CAS:
a) Select BitGo Wallet
b) Parameters:
host : port : token : wallet_id : wallet_passphrase : num_blocks : fee_rate : max_fee_rate
host is explained towards the top of this article: Understanding “host”.
port is explained towards the top of this article: Understanding “host”.
token is from: Create a new access token (above)
wallet_id is from: Locate your wallet_id (above)
wallet_passphrase is from: Determine your wallet_passphrase (above)
num_blocks (optional, default=2) (BTC only): the targeted number of blocks for confirmation. The lower the number, the higher the mining fees (but confirmation is faster).
See: this Bitgo article.
fee_rate (optional): the MINIMUM amount in the basic units of the given cryptocurrency.
e.g. Bitcoin: “satoshis per kvByte” (minimum: 1000), must be less than max_fee_rate.
max_fee_rate (optional): the MAXIMUM amount in the basic units of the given cryptocurrency.
e.g. Bitcoin: “satoshis per kvByte” (minimum: 1000).
In this example, using the above, our "Parameters" looks like this (all one line, no spaces):
http://localhost:3080:v2x922bc21177ad708ebbce21fbd7bb4faba5e5f71d7364a901ac6387bd18402aa4:5b58f06d239b32e506435b664b72945d:b788PqEE8cwtFP8nsJTd
4. Enable the GB Wallet Tunnel and enter the tunnel password:
The BE (Bitgo Express) node should always be on a dedicated & separate server.
The GB Wallet Tunnel offers a native, secure SSH tunnel connection to the BE node.
Leave it disabled if you use, understand, and deploy your own alternate form of SSH tunnel.
5. Save the Crypto Setting!
6. Reload the Crypto Setting, and test what you just saved.
Troubleshooting Tips:
The Hot Wallet BUY test validates your Hot Wallet parameters (only).
The other Crypto Setting tests (Exchange, Rate Source, etc) are irrelevant in this scope.
The master log will contain more specific and relevant data regarding any failures.
Have you set “Spending Limits” for your authorization token?
Spending Limits may be set when creating the access token at Bitgo.
If the amount is left as zero, the Crypto Test will pass, while the live transaction may fail.
A “best practice” is to set a reasonable limit. See: https://generalbytes.atlassian.net/l/cp/Xv9ihqgM
You must create a new access token at Bitgo (and re-enter the parameters) if you experience this issue.
Is your tunnel working?
The wallet tunnel is critical for success. Here are some troubleshooting steps:
GB Wallet Tunnel Server | Troubleshooting
Have you whitelisted your BitGo Express node in your BitGo API keys?
See the instructions above: BitGo Express Parameters | 2. Prepare your developer API token at BitGo.
BitGo must permit your BitGo Express node to connect to it’s network, and that is partly controlled by the IP whitelist set when creating the API token.
A standard (free) Bitgo account permits these coins (as of Nov 2022):
Bitcoin (BTC)
Ripple (XRP)
Bitcoin Cash (BCH)
Litecoin (LTC)
Stellar (XLM)
Eos (EOS)
Tron (TRX)
Dash (DASH)
ZCash (ZEC)
Algorand (ALGO)
Mainnet Hedera HBAR (HBAR)
Bitcoin Gold (BTG)
Casper (CSPR)
Polkadot (DOT)
Stacks (STX)
Solana (SOL)
Near (NEAR)
Currently, these are the additional coins that a Bitgo institutional account allows:
Ethereum (ETH)
Ethereum Classic (ETC)
Celo Gold (CELO)
Avalanche C-Chain (AVAXC)
Rootstock RSK (RBTC)
Stacks (STX)
Polygon (POLYGON)
Copyright © 2020-2024 General Bytes USA LLC