tBTC SDK is a TypeScript library that provides effortless access to the fundamental features of the tBTC Bitcoin bridge. The SDK allows developers to integrate tBTC into their own applications and offer the power of trustless tokenized Bitcoin to their users.
Table of contents:
Here you can find instructions explaining how to use the SDK in your own project.
To install the tBTC SDK in your project using yarn, run:
yarn add @keep-network/tbtc-v2.tsIf you prefer to use npm, do:
npm i @keep-network/tbtc-v2.tsPlease note that you will also need to install the
ethers v5 library to initialize
a signer or provider. To do so using yarn, invoke:
yarn add ethers@legacy-v5To do the same using npm, run:
npm i ethers@legacy-v5The SDK depends on ethers v5. Proper support for newer ethers versions is not guaranteed right now.
Here is a short example demonstrating SDK usage:
// Import SDK entrypoint component.
import { TBTC } from "@keep-network/tbtc-v2.ts"
// Create an instance of ethers signer.
const signer = (...)
// Initialize the SDK.
const sdk = await TBTC.initializeMainnet(signer)
// Access SDK features.
sdk.deposits.(...)
sdk.redemptions.(...)
// Access tBTC smart contracts directly.
sdk.tbtcContracts.(...)
// Access Bitcoin client directly.
sdk.bitcoinClient.(...)Contributions are always welcome! Feel free to open any issue or send a pull request. Please refer the repository-level CONTRIBUTING.adoc document for general contribution guidelines. Below, you can find how to set up the SDK module for development.
Please make sure you have the following prerequisites installed on your machine:
Although the below commands use
yarnyou can easily usenpminstead.
To install dependencies, run:
yarn installTo build the library, invoke:
yarn buildA dist directory containing the resulting artifacts will be created.
To run unit tests, do:
yarn testTo format code automatically, invoke:
yarn format:fixThere is an auto-generated API reference documentation that must be re-generated in case of modifications in the source code. This can be done automatically using a pre-commit hook or manually using:
yarn docsGenerated API reference in form of Markdown files is saved
to the api-reference directory.
The SDK includes utility functions for NTT (Native Token Transfer) bridges, particularly useful for SEI and other cross-chain operations:
import {
encodeDestinationReceiver,
decodeDestinationReceiver,
} from "@keep-network/tbtc-v2"
// Encode destination chain and recipient
const encoded = encodeDestinationReceiver(
40,
"0x1234567890123456789012345678901234567890"
)
// Decode back to original values
const { chainId, recipient } = decodeDestinationReceiver(encoded)These utilities were removed from on-chain contracts to reduce bytecode size but are available off-chain for encoding and decoding destination chain and recipient data.
For more details, see the NTT Utilities documentation.
This README provides just a basic guidance. Comprehensive documentation for this SDK can be found on the Threshold Network Docs website.