Note: Henceforth release notes and version tags for Solidity contracts will be managed separately from any other releases that may occur. Solidity contract releases will have a tag prefix of solidity/
.
solidity/v1.1.0
is the second mainnet release of all of tBTC's contracts.
At a high level, v1.1.0 represents 3 months of work done since the v1 release of tBTC. v1.1.0 is considered to be at RELEASE CANDIDATE stability for its first 2 months on mainnet. During this time the supply of TBTC will be constrained by the TBTC vending machine contract, progressing from 2 BTC to 100, 250, 500, 750, 1000, 1500, 2000, 2500, 3000, and finally 21M BTC, increasing weekly. Below are the primary tBTC contracts with Etherscan links and some quick notes on their function and changes. For additional details on tBTC security, see the v1.1.0 README. For the full technical specification of tBTC, see https://docs.keep.network/tbtc/.
TBTCSystem
is the tBTC system contract. It captures the current governable parameters, like collateralization thresholds, available lot sizes, and Keep configurations, and mediates access to Maker's ETHBTC Medianizer for the remainder of the system. All events related to tBTC areVendingMachine
is the tBTC contract responsible for taking ownership of deposits and minting the TBTC token in exchange, as well as making those deposits available for withdrawal by anyone who can pay back the requisite TBTC. Deposits owned by the vending machine (indicated by the vending machine's ownership of their associated tBTC Deposit Token)DepositFactory
is the factory contract that creates new deposits. ItscreateDeposit
function is the only way to create new deposits.Deposit
is the base contract for new deposit contracts.DepositFactory
clones this contract for each new deposit, pulling the current parameters fromTBTCSystem
. Once a deposit is created, all of its parameters except for ETHBTC price are fixed forever.TBTCDepositToken
is an ERC721 non-fungible token, each instance of which is uniquely associated with a deposit. Ownership of this token indicates ownership of the associated deposit, which provides an exclusive right to redeem the underlying deposit's Bitcoin UTXO until the deposit reaches its 6-month term.FeeRebateToken
is an ERC721 non-fungible token that represents a claim to a rebate on the signing fee for depositors who exchange their deposit to mint fungible TBTC tokens. These depositors have the signing fee for their deposit escrowed at minting time, but if the deposit is redeemed before the end of its 6 month term, they are reimbursed that escrowed amount.TBTCToken
is the ERC20 TBTC token. 18 decimals of precision packed into a beautiful 1-to-1 BTC backed token.
In addition to the primary contracts for tBTC, we're providing the release commit hash and associated signatures from the deployment team.
Commit hash for clean builds is f94110d676d939139572ef06e7eca300ce8f435f
.
Signatures of commit hash from the deployment team (verify these in the Keybase app):
-
@pdyraga:
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkKUP1mo cBOwsMO2Zoy9oS4 RuaO1bwgSUG4cNZ RnlK7jKb7jLCBWs KXcKwIcjl513izz 0f1e32CNmkk0MuB onz7Ldma4rH5wgm HReTBz1bcl2e64Y 9ggDx3u4DBr1Pyp 0OkvKlt5udb12oE Cww921Vbj9ej463 zzuCVuMOorP8fOV k5lJsLNxEvEB4rV nPu3a0P12CMFttx 5metZ9vFwBkyek2 . END KEYBASE SALTPACK SIGNED MESSAGE. -
@Shadowfiend:
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkAA9fdX h3PR4kiSBsxaoE3 9WyxA9pNLCah0b4 uFaShwCkPQzarJ9 FCLOS8M1iuRxIuv rPMCmF9pUYu8q8t o3ZgnGtSSFqft64 i4zjI57MY1cBbQm airT0q8oJohPqd8 FAagxG7p3DeNefq ON45TPoPLLv32IK v9bvKFkMFDd4tnP 4J38TixFlMMwM3W siI5e0P12CMFttx 5metZ9vFwBkyek2 . END KEYBASE SALTPACK SIGNED MESSAGE. -
@nkuba:
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zk8hhCXT Sf055wYPEWKoA0h hWO1cVG1nHRWTRd G9SDhAonQkf6R9p Vxi7Y6abS8OLsDC LiOoXooX9vwJEcN KMHlGWZPFeabHr2 XgBH4rTmrg3fOBw efA1oOn4ZnfQzrE tE4PQKtHbwzWDpA ayRAEWeKKJbdRln fDl16XByQd8zb6G Spye5XmpLMNsKNW 70llO0P12CMFttx 5metZ9vFwBkyek2 . END KEYBASE SALTPACK SIGNED MESSAGE.
Finally, note that the full set of work that went into the 1.1.0 milestone can be found in the corresponding 1.1.0 milestone.