Releases: threshold-network/tbtc-v2
typescript/v3.2.0
typescript/v3.2.0 is a minor release of the TypeScript SDK library for interacting with tBTC v2.
This release introduces the following:
- Removes dead Thesis and Staked Electrum server URLs from the default mainnet and testnet configurations, replacing them with BOAR network endpoints. The mainnet config now points exclusively to
wss://electrum.boar.network:2083and testnet towss://electrum.testnet.boar.network:443/<api-key>. This reflects the permanent decommissioning of the legacy Thesis/Staked infrastructure. - Handles default ports in Electrum URL parsing, ensuring that URLs without explicit ports are correctly resolved based on the protocol (e.g., port 443 for WSS).
- Separates default BTC-ETH bridging from other chain modules, enabling subpath exports (
@keep-network/tbtc-v2.ts/core) to avoid bundling unused chain-specific code. - Adds subpath exports to the package configuration, allowing consumers to import only the modules they need and reduce bundle size.
The NPM package is available on the NPM registry as @keep-network/tbtc-v2.ts@3.2.0.
The commit hash for clean builds is 656a96a01d5e0108c98e2ec73db1648e76164686.
Signatures of commit hash from the development team (verify these in the Keybase app):
-
@lrsaturnino
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkG6duRx oV7SEvrIaV7lVsm shypOA3yZIfOwVV 4zK2xmpnZEtuO2E oPwpYCXWCHFTn3d LplzsFp1sr5hYZI vFg6ZzLRr2t1cvU VuqVsBXeXOxyzzo O3Gq6tmp01cXSgQ HpQac0pYkHhFrEj 0rL6j1PhecjvZpZ ANFMBMdEMgRoe8m XH8xiW9JhEKbGbM nmGKz0pTqdFRgNf SzdMv77LUjYdatC . END KEYBASE SALTPACK SIGNED MESSAGE. -
@pioros
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkSk1ljm wbJKuRBWcyuik1K lf1FBXYN7SuqnGv 5ntR502ueF0u08Z yZ4ONP8tlx9VVXM pIvZroUqlZ6VvyY utkV4fZhnAdhFsd gC5hizfZlV1wKI7 HS0O7Qjd3Cb1QUL lhneeZr6v4XIMvW uYwdlkvSzwZUD7K aAzPKDMRjNaZQ0T JYM9gqaFHc7EMNp 67wOb0pTqdFRgNf SzdMv77LUjYdatC . END KEYBASE SALTPACK SIGNED MESSAGE.
The complete set of work for version 3.2.0 can be found in the corresponding typescript/v3.2.0 milestone.
Solidity: v1.8.2 (Ethereum Mainnet)
solidity/v1.8.2 is an Ethereum mainnet security patch release that enforces a P2SH prefix check during deposit reveal, addressing GHSA-8986-v76q-8vr2.
The Fix
- feat(bridge): Enforce P2SH check during deposit reveal
- Adds
bool isP2SH = fundingOutput.slice3(8) == hex"17a914"validation - Prevents P2PKH deposits with embedded P2SH scripts from passing reveal validation
- Deployed as a new Deposit library linked into a new Bridge implementation
- Adds
Deployment Artifacts
| Contract | Address | Notes |
|---|---|---|
| Bridge (Proxy) | 0x5e4861a80B55f035D899f66772117F00FA0E8e7B |
Unchanged |
| Bridge v2 Implementation | 0x524DB67Aa90c50b5F1d6547aFEc5E15cFf4A20c2 |
New implementation with fixed Deposit library |
| Deposit Library | 0x9C6aDa0beD100b0807779E2518E1638277768739 |
New library with P2SH enforcement |
| Redemption Library | 0xa7fed184fe79c2ea037e65558473c04ce42f5d0d |
Deployed 2025-12-22 |
The NPM package is available in the NPM registry as @keep-network/tbtc-v2@1.8.2
The commit hash for clean builds is b6384b96da9c3b09fd5b2f6be5bef460efbb7bf2.
Signatures of commit hash from the development team (verify these in the Keybase app):
-
@lrsaturnino
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkG6duRx oV7SEvrIaV7lVsm shypOA3yZIfOwVV 4zK2xmpnZF0MpY0 PpBoiLZkESRczlx 34WP2bxQvUZnTiN 0ty3M9tgmPwDgnV pNvOuasH7jFQ2de kaiWYFaoxcMIWk4 291h6QRp2a4FS0i oydlE8X99iUec7N LmlzcsguyuItDtY UGefBZuLtbwBo1L DhGw20SDaZBkulR WWL0HfFC7xX2IR0 . END KEYBASE SALTPACK SIGNED MESSAGE. -
@pioros
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkSk1ljm wbJKuRBWcyuik1K lf1FBXYN7SuqnGv 5ntR502ueEaEpnG UArurcE5lecZgqs 7vpD2PzmKTG7w8i v4yDehu0QD4ZCHf 2S0zgcQWps0Ng2D Am6ZlBLeXywpV9J GX22Snpgdd8KU6m xyFxcctJsMLl6xQ Ti2MUk3iJEhkFMx V8RIowuF3Isvp6Y PzooQ0SDaZBkulR WWL0HfFC7xX2IR0 . END KEYBASE SALTPACK SIGNED MESSAGE.
Related PR: https://github.com/threshold-network/tbtc-v2-ghsa-8986-v76q-8vr2/pull/2
Advisory: GHSA-8986-v76q-8vr2
Solidity: v1.8.1 (Ethereum Mainnet)
solidity/v1.8.1 is an Ethereum mainnet patch release containing a targeted fix for a stuck deposit affecting wallet 71bfad9a.
The Fix
- feat(bridge): Add
initializeV2_FixVaultZeroDeposit()reinitializer function- Sets the vault to TBTCVault (
0x9C070027cdC9dc8F82416B2e5314E11DFb4FE3CD) - Safety checks: requires
revealedAt != 0,vault == address(0),sweptAt == 0 - Uses reinitializer pattern (version 2) to ensure one-time execution
- Sets the vault to TBTCVault (
Deployment Artifacts
| Contract | Address | Notes |
|---|---|---|
| Bridge (Proxy) | 0x5e4861a80B55f035D899f66772117F00FA0E8e7B |
Unchanged |
| Bridge v2 Implementation | 0x84E08e1380b400A554765C2466df3BE8f2C638e6 |
New implementation with vault fix |
| Redemption Library | 0xa7fed184fe79c2ea037e65558473c04ce42f5d0d |
Deployed 2025-12-22 |
The NPM package is available in the NPM registry as @keep-network/tbtc-v2@1.8.1
The commit hash for clean builds is 712e9e2b808dab3cab14567af6b98532f241b200.
Signatures of commit hash from the development team (verify these in the Keybase app):
-
@lrsaturnino
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkG6duRx oV7SEvrIaV7lVsm shypOA3yZIfOwVV 4zK2xmpnZDhIQCf 6cF8WLnXvEe170h o2TbDkGPxl2W3xW saylYYUHkuaDDvm K4xm3Bdhy3hcSKO 6qfsBFBqbD43svU KMM7iHxxWVaNDen 9GoD8hWk1tNtAKP 3ch95dgEd0lvrcG rH1Sd6HZ6PyDAfh TzF0o0SjdOgJJ4N CcPwexveZOWZxlw . END KEYBASE SALTPACK SIGNED MESSAGE. -
@pioros
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkSk1ljm wbJKuRBWcyuik1K lf1FBXYN7SuqnGv 5ntR502ueDQJ96v g15h40abQ0ECYNW 3uNWl56BeUNCMTg Y5c69H5AACtEOjX 7bDNI7t3fNcPpJd uF07gd4GHhZ0mxL 2eUD3PllYlhovCk M1tqOFh3V85MBh8 82yQg38ajMmW6mK XkZx5W7oOAGEyzJ nY4YA0SjdOgJJ4N CcPwexveZOWZxlw . END KEYBASE SALTPACK SIGNED MESSAGE.
Related PR: #922
Typescript: v3.0.0
typescript/v3.0.0 is a major release of the TypeScript SDK library for interacting with tBTC v2.
This release introduces the following:
This release introduces support for cross-chain redemptions within the tBTC SDK. A new RedemptionsService has been added to manage and abstract the complexity of redemption operations, including both standard and cross-chain redemptions.
Summary of Changes
- New RedemptionsService: A dedicated service at typescript/src/services/redemptions/redemptions-service.ts has been created to handle all redemption-related logic.
- Cross-Chain Redemption Flow: The SDK now supports initiating redemptions from L2 chains (like Arbitrum and Base) and processing them on L1 (Ethereum).
New SDK Methods:
- requestCrossChainRedemption: Allows users to request a redemption directly from a supported L2 chain. It interacts with the L2BitcoinRedeemer contract on the respective L2.
- relayRedemptionRequestToL1: A method used by the redemption service to relay a validated redemption request from an L2 to the L1BitcoinRedeemer contract on Ethereum for final processing.
New Contract Abstractions:
- L1BitcoinRedeemer: A handle for the L1 contract that processes redemption requests relayed from L2s.
- L2BitcoinRedeemer: Implementations for each supported L2 (e.g., ArbitrumL2BitcoinRedeemer) that initiate the cross-chain redemption process, typically via a messaging bridge like Wormhole.
The NPM package is available on the NPM registry as @keep-network/tbtc-v2.ts@3.0.0.
The commit hash for clean builds is f713e0b659a639a2209004e2b2e92808fd619b6f.
Signatures of commit hash from the development team (verify these in the Keybase app):
-
@evandrosaturn
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkL3ktWc yuzE5dUycu6nxkB 4KslNp719gDkWDK f52NXsdRDSjPMer n5X8OcztzS1xBlu mzT8Tm4nx3AfsLI Tm9zOqXIPHag9X9 dwcJI3honbw7o78 jhcfivhtw4U7IfV UHbLuRsLIeTTQcp b8bW8CWUJrEpgFa rZ7Jf8HtJDpGODz Uvd1zxZQq3qYAra RtRGm0qVaHZLQ1I 2OiGgpCBfVeEbG2 . END KEYBASE SALTPACK SIGNED MESSAGE. -
@lrsaturnino
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkG6duRx oV7SEvrIaV7lVsm shypOA3yZIfOwVV 4zK2xmpnZEc6Rnt xbegCcdjYGN49Yw 79Xh32ffF2B4szQ 6Zt5pJDGHgUS1ZV 9pA2XRzhVTTKphh mmZSYtGpR3zWyzp v33s3EWafGOC67X IAzfRvq20eqVwGP pJzKjlu9lncwLBp EPM0nTu7L8OecSb tGvfI0qVaHZLQ1I 2OiGgpCBfVeEbG2 . END KEYBASE SALTPACK SIGNED MESSAGE.
The complete set of work for version 3.0.0 can be found in the corresponding typescript/v3.0.0 milestone.
Typescript: v2.8.0
typescript/v2.8.0 is a minor release of the TypeScript SDK library for interacting with tBTC v2 smart contracts on the Ethereum and Solana chains.
This release introduces the following:
- Introduces support for the Solana blockchain as a destination chain within the tBTC v2 system. This enables users to mint tBTC by depositing BTC and receiving tBTC tokens on the Solana network. The integration provides a new set of interfaces for interacting with Solana-specific components of the tBTC protocol.
The NPM package is available on the NPM registry as @keep-network/tbtc-v2.ts@2.8.0.
The commit hash for clean builds is a6d774f2e977dac53d1e9f4fae97c18f63966c10.
Signatures of commit hash from the development team (verify these in the Keybase app):
-
@evandrosaturn
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkL3ktWc yuzE5dUycu6nxkB 4KslNp719gDkWDK f52NXsdRDRw5D5z CXGhsAgptYy0PZg 4RAIS1bTImTokl3 446fTur7jd14pix Ywqf8IzfMLMdS1W qR5azIFtGi8dUrA SAFUczBQNV9vYaX eeD0xHOMPn3hcSv NsFFPa2Szk1Gsk6 fZZ7iU2QIyV0Lub pOEWR0oxCOemjmd f6AMcDZcFuZ5W3t . END KEYBASE SALTPACK SIGNED MESSAGE. -
@lrsaturnino
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkG6duRx oV7SEvrIaV7lVsm shypOA3yZIfOwVV 4zK2xmpnZEPrwEf mljVjtriDJ4qbBl v3EfKWXa4Kb1WGi HlpanpdXc86PFWG YE4fbdJAGAvPEV6 8fKLNfudtzlwh7y 5H2jMrdZFneNqKI FSdhor8myEnCkPj DvceU7fV3qOQURc 1sJ931uY0pE6B5S cuiv80RBkQvVcMm I7yGDpstoujBP1M . END KEYBASE SALTPACK SIGNED MESSAGE.
The complete set of work for version 2.8.0 can be found in the corresponding typescript/v2.8.0 milestone.
Typescript: v2.7.1
typescript/v2.7.1 is a patch release of the TypeScript SDK library for interacting with tBTC v2 smart contracts on the Ethereum and Sui chains.
This release introduces the following:
- The new deployment artifacts for the SuiBTCDepositorWormhole on both mainnet and Sepolia networks.
The NPM package is available on the NPM registry as @keep-network/tbtc-v2.ts@2.7.1.
The commit hash for clean builds is b43c4ec075ddf8ef6951acb3eb659a8ef7a5b9e9.
Signatures of commit hash from the development team (verify these in the Keybase app):
-
@lrsaturnino
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkG6duRx oV7SEvrIaV7lVsm shypOA3yZIfOwVV 4zK2xmpnZELXZ1p AaMsQNLM49A3J65 fQgftvC8paxxQoJ VwxpIO2aIUFsO7x rTyMHaj5eRfg47M GYmGiu0hdGG0yoj DYpON1Xs3lEpo0L fmtmgWMYi0CzAkG FnH8fqqRrigksXk sRcFATwLqY9HmZ8 POWcV0oxCOemjmd f6AMcDZcFuZ5W3t . END KEYBASE SALTPACK SIGNED MESSAGE. -
@evandrosaturn
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkL3ktWc yuzE5dUycu6nxkB 4KslNp719gDkWDK f52NXsdRDRw5D5z CXGhsAgptYy0PZg 4RAIS1bTImTokl3 446fTur7jd14pix Ywqf8IzfMLMdS1W qR5azIFtGi8dUrA SAFUczBQNV9vYaX eeD0xHOMPn3hcSv NsFFPa2Szk1Gsk6 fZZ7iU2QIyV0Lub pOEWR0oxCOemjmd f6AMcDZcFuZ5W3t . END KEYBASE SALTPACK SIGNED MESSAGE.
The complete set of work for version 2.7.1 can be found in the corresponding typescript/v2.7.1 milestone.
Typescript: v2.7.0
typescript/v2.7.0 is a minor release of the TypeScript SDK library for interacting with tBTC v2 smart contracts on the Ethereum and Sui chains.
This release introduces the following:
- Implements SUI blockchain integration for the tBTC v2 SDK, enabling Bitcoin deposits on SUI through the Wormhole-based cross-chain protocol.
The NPM package is available on the NPM registry as @keep-network/tbtc-v2.ts@2.7.0.
The commit hash for clean builds is 743c3fbd15705cbe3a33e3479de9b09ef07ee806.
Signatures of commit hash from the development team (verify these in the Keybase app):
-
@lrsaturnino
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkG6duRx oV7SEvrIaV7lVsm shypOA3yZIfOwVV 4zK2xmpnZE14o5r CEnF0FCmx3tqxiv i2sO2iWF098f0Gb I1pDYMEm07QZfhu 5OmwLABn7MYTgO5 6Eau6tfnRt3uafI vbqb3xB7h3rrxr1 UpHLm1glQ85essr u9ORmoWmeV7StPK Q2Tv8WkA0mxqrkB kFUe30R5p1Nl82s ZWzBz7rWZzcBJW2 . END KEYBASE SALTPACK SIGNED MESSAGE. -
@evandrosaturn
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkL3ktWc yuzE5dUycu6nxkB 4KslNp719gDkWDK f52NXsdRDT0IBEI MiVHGDEBQJdUUHr thCREvp74EjYS6L CT89OFjXGCE5rHw BSafESM4hoDKyKK 6nkv6I9etIh0TPW kVhxdZrV0oPE1sy YmlCfVlEEFDARRd CKFEDoRUwKfHmj2 eq8vdfsvsfGnts9 emFbX0R5p1Nl82s ZWzBz7rWZzcBJW2 . END KEYBASE SALTPACK SIGNED MESSAGE.
The complete set of work for version 2.7.0 can be found in the corresponding typescript/v2.7.0 milestone.
Typescript: v2.6.0
typescript/v2.6.0 is a minor release of the TypeScript SDK library for interacting with tBTC v2 smart contracts on the Ethereum chains.
This release introduces the following:
- The
StarkNetBitcoinDepositorintegration in the TypeScript SDK; - The utilization of the new production relayer endpoint to initialize and finalize deposits in the
StarkNetBitcoinDepositor.
The NPM package is available on the NPM registry as @keep-network/tbtc-v2.ts@2.6.0.
The commit hash for clean builds is 9c4a918ea9c04e5e9d4938ee593879319ca79fff.
Signatures of commit hash from the development team (verify these in the Keybase app):
-
@lrsaturnino
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkG6duRx oV7SEvrIaV7lVsm shypOA3yZIfOwVV 4zK2xmpnZF5pn0r HmzV8CUaY9foE9H VIi5aZ7EsYHDSy0 ZqAEmMmi4S9Mcxt Ugy3xk5O3U4ds61 8fzky5GTCPwLrn8 x89JkpT5DD6ZWOE SMxjLW9CsCgG6I6 3P1WT3mpi3C9XpU bOi7Cm1YjVngYt1 DSQHY0qbyH1cXbl QJC5iQkzAwYQdRm . END KEYBASE SALTPACK SIGNED MESSAGE. -
@evandrosaturn
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkL3ktWc yuzE5dUycu6nxkB 4KslNp719gDkWDK f52NXsdRDSifdHG SOENcqnMxIxJuGu x5HlDZzvk6MUfW6 9SIGbwCnDOVypx7 5MtzrlUDju0ZAlu yS9LJPD0putFrSK HXqIXfZg5XT0S1G KSZMeeqSKLVS95E wbloyoXMD54xXhv aahdOD0Jw6jgPqc YjBhg0qbyH1cXbl QJC5iQkzAwYQdRm . END KEYBASE SALTPACK SIGNED MESSAGE.
The complete set of work for version 2.6.0 can be found in the corresponding typescript/v2.6.0 milestone.
Solidity: v1.8.0 (Ethereum Mainnet)
solidity/v1.8.0 is the Ethereum mainnet release of the StarkNetBitcoinDepositor contract. To enable the direct minting of the tBTC on Starknet through the StarkGate bridge.
The NPM package is available in the NPM registry as @keep-network/tbtc-v2@1.8.0
The commit hash for clean builds is 88c4c886f51691b8de1ef152c327f3cdb2ecd03c.
Signatures of commit hash from the development team (verify these in the Keybase app):
-
@lrsaturnino
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkG6duRx oV7SEvrIaV7lVsm shypOA3yZIfOwVV 4zK2xmpnZEfcyG2 Ol3QvSV3lj5nWab Q2qhKW83BSSwWWz Z6mgxrkOO9eMjda zfdl4ZOJG2ZpGfB NDrnc4VEyjqtx33 2nAu7oCkL4F11r5 4wzBY2GafACUIjC iqvG1IygjDd9tHE jAEoo3WM9hH6n0o gyAfR0RbNvbupVt Ca5ZfklMj1mluaZ . END KEYBASE SALTPACK SIGNED MESSAGE. -
@evandrosaturn
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkL3ktWc yuzE5dUycu6nxkB 4KslNp719gDkWDK f52NXsdRDTNxjj3 Ntt7Y5AbsYBtdaJ GsTKWMSdnv9neI3 AXd6SruhJXFOpEF qVUzZ7KmUpa5bsR cT9te8NlP3aKSVP 75nKEg9o1v931ZC PPdUsxOsI9lGFhm aW34DWuNOhCrt9b vqMEI0ED6q9f0iU XvxRp0RbNvbupVt Ca5ZfklMj1mluaZ . END KEYBASE SALTPACK SIGNED MESSAGE.
The complete set of work for this version can be found in the corresponding solidity/v1.8.0 milestone.
Cross-chain/starknet: v1.0.2
The release of cross-chain/starknet/v1.0.2 provides the deployment of the StarkNetBitcoinDepositor contract to mainnet and sepolia networks.
The mainnet StarkNetBitcoinDepositor contract address is:
Proxy: 0xC9031f76006da0BD4bFa9E02aDf0d448dB3BC155
Implementation: 0xD3585922B7F6B30953Fc81726F48046826B8B2CA
ProxyAdmin: 0x890d38c664dbB584b524b1b9417a28d4355F67d4
The NPM package is available in the NPM registry as @keep-network/tbtc-v2-starknet@1.0.2
The commit hash for clean builds is 2bdd5068aae94b7bf9f3e2c5650093296539265a.
Signatures of commit hash from the development team (verified in the Keybase app):
-
@lrsaturnino
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkG6duRx oV7SEvrIaV7lVsm shypOA3yZIfOwVV 4zK2xmpnZEp7GuN KkPfzRb6wOarwGG g0UDxekwgTLAc9x fEtIi6f4sRqQuCu hGHdDD9i2ZKbH3h cAw6ByUILFEl9dW OE63XwQCKgNUL0c fSU0Onh4lqLhyLL LImdEBEXFnybtAo rN7r3FkgSAr1KbY y5eWw0pTb8Qmaj7 GUdmog9w8xSez9V . END KEYBASE SALTPACK SIGNED MESSAGE. -
@evandrosaturn
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkL3ktWc yuzE5dUycu6nxkB 4KslNp719gDkWDK f52NXsdRDSo9iUU dSKjko36MqCjMPw ENZYaKEB15g8SBL 1W3vfzBA6m7imkP FAVlxFhwJds6eYA Mv6DDDuTHKraQeF OTUhOE0J4CWKVuo mkC1a6rDg8Gg0lY FZlPXz9eZc1SQTn Qx15Tzyf88LSL3a qdFbu0pTb8Qmaj7 GUdmog9w8xSez9V . END KEYBASE SALTPACK SIGNED MESSAGE.
The complete set of work for this version can be found in the corresponding cross-chain/starknet/v1.0.2 milestone.