Tbtc Versions Save

Trustlessly tokenized Bitcoin on Ethereum ;)

solidity/v1.1.0

3 years ago

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 are
  • VendingMachine 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. Its createDeposit 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 from TBTCSystem. 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.

v1.0.3-rc

3 years ago

Realize we've jumped a few here. This is the third Ropsten release post v1.0.0 to mainnet.

v0.15.0-rc

3 years ago

v0.14.0-rc

3 years ago

This Ropsten release of tBTC pulls in the corresponding keep-ecdsa release and carries a variety of bug fixes and improvements:

  • Fix: Clear dirty bits in FundingScript and RedemptionScript (#585).
  • Improvement: Liquidation-entry refactor (#573).
  • Improvement: Intermediary authorized medianizer access contract for Ropsten (#576).
  • Improvement: Parameter finalization, clear TODOs (#581).
  • Improvement: Impose certain additional limits on governance actions (#582).
  • Improvement: Add a way for owners of a funding-failed deposit to ask nicely for their UTXO(s) back (#583).
  • Improvement: Expose collateralization functions and Keep address (#590).
  • Improvement: Throw nested revert messages (#593).
  • Improvement: Deploy Funding/Redemption scripts (#594).
  • Improvement: Test refinements (#584).
  • Deployment: Various deployment and monitoring fixes and adjustements (#575, #578, #589).

v0.13.0-rc

3 years ago

This Ropsten release of tBTC pulls in the corresponding keep-ecdsa release and carries a variety of bug fixes and improvements:

  • Improvement: Use a pull model to withdraw deposit ETH balances (#570).
  • Improvement: Pass stake lock duration to BondedECDSAKeepFactory (#566).
  • Improvement: Cleanup and clarification of documentation and TODOs in the code (#564, #561).
  • Deployment: Various deployment and monitoring fixes and adjustments (#574, #571, #568, #567).

v0.12.0-rc

3 years ago

This Ropsten release of tBTC pulls in the corresponding keep-ecdsa release and carries a variety of bug fixes and improvements:

  • Fix: Fixes to approveAndCall return values (#527).
  • Fix: Let BondedECDSAKeep manage all bond-related keep closing (#532).
  • Fix: Use contract types as type annotations rather than casts where possible (#542).
  • Improvement: Refactor funding fraud paths to drop SPV proofs and always send the funder the full bond value of the signers if ECDSA fraud is proven (#534).
  • Improvement: Refund keep creation cost if signer setup fails (#520).
  • Improvement: Various resiliency improvements to DepositLog (#537).
  • Improvement: Adjust some unit256 values down a few sizes to leverage compiler bit packing (#541).
  • Improvement: Adjust starting point of liquidation auctions to assume the deposit is well-collateralized (#539).
  • Nit: The solidity contracts for tBTC now live in the solidity/ subdirectory; this aligns tBTC with other Keep repositories for consistency (#538).
  • Deployment: Various deployment and monitoring fixes and adjustments (#533, #536, #544).

v0.10.1

4 years ago

Use latest keep-tecdsa package

Correct Circle workflow errors.

v0.10.0

4 years ago

v1-audit

4 years ago

This tag is the code that will be audited for tBTC v1.

v0.6.0

4 years ago

Tag for the first release of tBTC to Ropsten. Aligns with v0.6.0 of keep-tecdsa and tbtc-dapp.

This version does not yet include final ACL work, nor does it include integration with the final audit-ready keep-tecdsa interface.