BitGo adds a new trade enum value to the permission parameter that you can use to grant users trading privileges for a Go Account (wallet "type": "trading").
The new trade permission enables greater customization and control over what your enterprise users can do within your wallets. Users with the trade permission can initiate trades, but cannot initiate withdrawals from the Go Account or any other wallet.
Breaking Change
With this update, the spend permission no longer grants trading privileges. To grant users trading privileges, you must update your integration to include the new trade permission.
Any user with the spend permission prior to this update retains their ability to initiate trades.
Change Log
For a comprehensive list of all SDK changes, view the BitGoJS Change Log in GitHub.
BitGo is migrating from the Bitcoin testnet3 to testnet4. The new Bitcoin testnet provides easier access to testnet bitcoin and lower transaction fees.
Breaking Changes
BitGo is deprecating support for Bitcoin testnet3 by end of year, 2024. Ensure streamlined support in your testing environment by updating your testnet integrations to use testnet4. To migrate, create tbtc4 wallets and update all instances in your code of tbtc to tbtc4.
BitGo streamlines the advanced integration flow for withdrawing from MPC hot wallets, removing the need for you to manually send half-signed transactions to BitGo. In addition, you now collect approvals before signing MPC transactions. Once a transaction is half-signed, it's automatically sent to BitGo for final signing and broadcasting to the blockchain.
BitGo expands support for multi-party computation (MPC) wallets for ECDSA assets, such as Ethereum, Polygon, and Cosmos SDK assets. MPC wallets enable you to bundle transactions and sign with only 1 on-chain signature, saving you money on fees, compared to multisignature wallets.
This update builds upon existing MPC functionality currently available for EdDSA assets. When creating keys for MPC wallets, there are now 2 different integration flows, depending if the asset is ECDSA or EdDSA. Transaction signing also slightly differs between the 2 elliptic curves.
To distinguish between the two elliptic curves in the code, BitGo now uses MPCv1 for EdDSA wallets and MPCv2 for ECDSA wallets. This update doesn't change the MPC version for any of your existing MPC wallets. You can determine which version of MPC a wallet uses by calling the Get Wallet by Coin and ID endpoint and checking the value of the multisigTypeVersion response field.
For simplicity, BitGo now refers to TSS wallets as MPC wallets in both the web app and the developer documentation. BitGo's implementation of MPC is still TSS. However, the MPC name better reflects current industry standards.
The MPCv2 feature is currently available only in test environment. When the feature is available in production, BitGo will send an email notification and display an announcement in the web app.
To use MPCv2, ensure you're running the latest version of Express or the JavaScript SDK, depending on your integration. For details on how to update, see Install BitGo Express and Update SDK.
Note: MPCv2 enables multiple receive addresses with automatic consolidations to the root address. This functionality requires you to Fund Gas Tanks with a sufficient balance to cover gas fees. Funding gas tanks is now a required step in the Get Started. To use MPCv2 without issues, ensure that your gas tanks are funded.
Change Log
For a comprehensive list of all SDK changes, view the BitGoJS Change Log in GitHub.
The Policy Builder enables you to enhance security for your digital-assets and streamline your enterprise operations. With the Policy Builder, you can create policy rules that govern how specific actions must occur, and you can even automate resolutions. For example, you can create policy rules to automatically approve or reject certain types of transactions, or require approvals from specific users.
The Policy Builder enables you to:
Ensure your policies are standardized across your wallets.
Easily create or update policies, no matter how many wallets you have.
Have clear audit trails of your policies (who did what when).
Integration Guide
To learn more, see the Policy Builder integration guide.
API Reference
View the REST API endpoints in the Policy Builder API reference.
Crypto-as-a-Service is a new offering that provides a suite of services to enable you to build and scale your blockchain applications. With Crypto-as-a-Service, you can leverage BitGo's industry-leading security, compliance, and infrastructure to build your applications faster and more securely. You control the user experience of your app, while BitGo handles the underlying blockchain, monetary, and compliance infrastructure.
BitGo also deprecates the Portfolio API. Instead, use the Allocate API. Allocations are part of the Go Network. For more information, see the integration guides Go Network Overview and Allocate Overview.
Version 38.0.0 of the SDK removes a validation when creating addresses.
Breaking Changes
The JavaScript SDK upgrades the bitgo package to version 38.0.0, deprecating support for Node.js 16. BitGo now requires Node.js 18, or higher. However, BitGo recommends using Node 20 LTS.
Change Log
For a comprehensive list of all changes, view the BitGoJS Change Log in GitHub.
The JavaScript SDK upgrades the bitgo package to version 26.0.0, delivering the following:
Adds a new method to get keys and sign MPC transactions
Enables bulk UTXO consolidation
Enables generating custody and self-custody cold MPC wallets
Enables signing MPC transactions with an unencrypted private key
Enables support for partially-signed bitcoin transactions (PSBTs)
Updates TRON (TRX) consolidations to include receive addresses
Updates MPC challenge by automatically applying a new admin signature if the admin resets their password
Bug Fixes
Version 26.0.0 of the SDK fixes the following:
Checks if a transaction request is pending approval before attempting to sign during a send-to-many transaction
Improves error handling for for consolidateAccount
Improves token-fee estimate for TRON (TRX)
Moves transaction builder from sdk-coin-eth to abstract-eth
Returns false for uppercase bech32 and bech32m addresses
Updates @types/node to ^16.18.46
Uses whitelisted parameters when initiating a transaction
Breaking Changes
Updates abstract-eth in the following ways:
Creates a new class for all EthLike methods
Changes the nextContractSequenceId field type in TransactionPrebuild interface from string to number in AbstractEthLikeCoin and AbstractEthLikeNewCoins classes
Removes the getCustomChainName method from the Polygon class and replaces it with a common method, getCustomChainCommon, in the AbstractEthLikeNewCoins class for all EthLike coins
Requires replayProtectionOptions in the buildTransaction method in AbstractEthLikeNewCoins (passing it also derives the ETH common object from the chainId
Changes the signFinalPolygon method name in the Polygon class to signFinalEthLike, enabling it for use with other EthLike assets
Updates the getBaseFactor method in Eth and Polygon classes to return a number instead of string to align with AbstractEthLikeCoin
Change Log
For a comprehensive list of all changes, view the BitGoJS Change Log in GitHub. For a comprehensive list of all version updates, view the Commits.