Skip to content

Conversation

@poolpitako
Copy link

tl;dr;

ReservedDeposit is a smart contract that enables tax-efficient Bitcoin custody within the tBTC v2 ecosystem. It allows users to reserve specific Bitcoin UTXOs (Unspent Transaction Outputs) for a predetermined period while still being able to mint and use tBTC tokens.

Goal

This feature positions tBTC as the most sophisticated and compliant Bitcoin bridge in DeFi by:

  1. Solving a real problem that costs users millions in unnecessary taxes
  2. Creating a moat through a unique feature competitors don't offer
  3. Generating revenue for the DAO in tbtc
  4. Expanding the market to institutional and tax-conscious users
  5. Maintaining decentralization while adding enterprise features

Fee structure

Base Fee (0.1% annual): Compensates for locking specific UTXOs
Minimum Fee (0.01 BTC annual): Ensures meaningful revenue even for short reservations

Fee Examples

  | BTC Amount | Duration       | Days | Year Steps | Base Fee (0.1% annual) | Minimum Fee | Final Fee      |
  |------------|----------------|------|------------|------------------------|-------------|----------------|
  | 0.1 BTC    | 30 days        | 30   | 1          | 0.00000822 BTC         | 0.01 BTC    | 0.01 BTC       |
  | 0.1 BTC    | 1 year         | 365  | 1          | 0.00010000 BTC         | 0.01 BTC    | 0.01 BTC       |
  | 0.1 BTC    | 1 year + 1 day | 366  | 2          | 0.00010027 BTC         | 0.02 BTC    | 0.02 BTC       |
  | 0.1 BTC    | 2 years        | 730  | 2          | 0.00020000 BTC         | 0.02 BTC    | 0.02 BTC       |
  | 0.1 BTC    | 4 years        | 1460 | 4          | 0.00040000 BTC         | 0.04 BTC    | 0.04 BTC       |
  | 0.5 BTC    | 30 days        | 30   | 1          | 0.00004110 BTC         | 0.01 BTC    | 0.01 BTC       |
  | 0.5 BTC    | 6 months       | 183  | 1          | 0.00025068 BTC         | 0.01 BTC    | 0.01 BTC       |
  | 0.5 BTC    | 1 year         | 365  | 1          | 0.00050000 BTC         | 0.01 BTC    | 0.01 BTC       |
  | 0.5 BTC    | 2 years        | 730  | 2          | 0.00100000 BTC         | 0.02 BTC    | 0.02 BTC       |
  | 0.5 BTC    | 3 years        | 1095 | 3          | 0.00150000 BTC         | 0.03 BTC    | 0.03 BTC       |
  | 0.5 BTC    | 4 years        | 1460 | 4          | 0.00200000 BTC         | 0.04 BTC    | 0.04 BTC       |
  | 1 BTC      | 30 days        | 30   | 1          | 0.00008219 BTC         | 0.01 BTC    | 0.01 BTC       |
  | 1 BTC      | 6 months       | 183  | 1          | 0.00050137 BTC         | 0.01 BTC    | 0.01 BTC       |
  | 1 BTC      | 1 year         | 365  | 1          | 0.00100000 BTC         | 0.01 BTC    | 0.01 BTC       |
  | 1 BTC      | 2 years        | 730  | 2          | 0.00200000 BTC         | 0.02 BTC    | 0.02 BTC       |
  | 1 BTC      | 3 years        | 1095 | 3          | 0.00300000 BTC         | 0.03 BTC    | 0.03 BTC       |
  | 1 BTC      | 4 years        | 1460 | 4          | 0.00400000 BTC         | 0.04 BTC    | 0.04 BTC       |
  | 5 BTC      | 30 days        | 30   | 1          | 0.00041096 BTC         | 0.01 BTC    | 0.01 BTC       |
  | 5 BTC      | 6 months       | 183  | 1          | 0.00250685 BTC         | 0.01 BTC    | 0.01 BTC       |
  | 5 BTC      | 1 year         | 365  | 1          | 0.00500000 BTC         | 0.01 BTC    | 0.01 BTC       |
  | 5 BTC      | 2 years        | 730  | 2          | 0.01000000 BTC         | 0.02 BTC    | 0.02 BTC       |
  | 5 BTC      | 3 years        | 1095 | 3          | 0.01500000 BTC         | 0.03 BTC    | 0.03 BTC       |
  | 5 BTC      | 4 years        | 1460 | 4          | 0.02000000 BTC         | 0.04 BTC    | 0.04 BTC       |
  | 10 BTC     | 30 days        | 30   | 1          | 0.00082192 BTC         | 0.01 BTC    | 0.01 BTC       |
  | 10 BTC     | 6 months       | 183  | 1          | 0.00501370 BTC         | 0.01 BTC    | 0.01 BTC       |
  | 10 BTC     | 1 year         | 365  | 1          | 0.01000000 BTC         | 0.01 BTC    | 0.01 BTC       |
  | 10 BTC     | 2 years        | 730  | 2          | 0.02000000 BTC         | 0.02 BTC    | 0.02 BTC       |
  | 10 BTC     | 3 years        | 1095 | 3          | 0.03000000 BTC         | 0.03 BTC    | 0.03 BTC       |
  | 10 BTC     | 4 years        | 1460 | 4          | 0.04000000 BTC         | 0.04 BTC    | 0.04 BTC       |
  | 50 BTC     | 30 days        | 30   | 1          | 0.00410959 BTC         | 0.01 BTC    | 0.01 BTC       |
  | 50 BTC     | 6 months       | 183  | 1          | 0.02506849 BTC         | 0.01 BTC    | 0.02506849 BTC |
  | 50 BTC     | 1 year         | 365  | 1          | 0.05000000 BTC         | 0.01 BTC    | 0.05 BTC       |
  | 50 BTC     | 2 years        | 730  | 2          | 0.10000000 BTC         | 0.02 BTC    | 0.10 BTC       |
  | 50 BTC     | 3 years        | 1095 | 3          | 0.15000000 BTC         | 0.03 BTC    | 0.15 BTC       |
  | 50 BTC     | 4 years        | 1460 | 4          | 0.20000000 BTC         | 0.04 BTC    | 0.20 BTC       |
  | 100 BTC    | 1 year         | 365  | 1          | 0.10000000 BTC         | 0.01 BTC    | 0.10 BTC       |
  | 100 BTC    | 2 years        | 730  | 2          | 0.20000000 BTC         | 0.02 BTC    | 0.20 BTC       |
  | 100 BTC    | 3 years        | 1095 | 3          | 0.30000000 BTC         | 0.03 BTC    | 0.30 BTC       |
  | 100 BTC    | 4 years        | 1460 | 4          | 0.40000000 BTC         | 0.04 BTC    | 0.40 BTC       |

The fee structure is designed to:

  • Make the service economical for legitimate long-term holders
  • Prevent abuse through minimum fees
  • Generate sustainable revenue for the DAO in tbtc
  • Discourage UTXO fragmentation that could bloat the system

Please consider the fees as an example, I expect someone smarter than me to come up with a better idea.
I also made the max hold for 4 years. There might need to be a min as well.

Here are some mermaid graphs on how the integration would work:

sequenceDiagram
      participant User
      participant Bitcoin as Bitcoin Network
      participant Bridge as Bridge Contract
      participant RD as ReservedDeposit Library
      participant Bank as Bank Contract
      participant Wallet as tBTC Wallet

      Note over User,Wallet: PHASE 1: BITCOIN DEPOSIT
      User->>Bitcoin: Send 1 BTC to P2(W)SH address
      Bitcoin-->>User: Transaction confirmed

      Note over User,Wallet: PHASE 2: REVEAL & RESERVE
      User->>Bridge: revealReservedDeposit(fundingTx, reveal, 365 days, btcAddress)
      Bridge->>RD: Process reservation
      RD->>RD: Calculate storage fee (0.01 BTC)
      RD->>RD: Create reservation record
      RD->>Bank: increaseBalance(user, 0.99 tBTC)
      Bank-->>User: Receive 0.99 tBTC

      Note over User,Wallet: PHASE 3: HOLDING PERIOD (1 Year)
      User->>User: Hold tBTC, use in DeFi

      Note over User,Wallet: PHASE 4A: REDEMPTION (Before Expiry)
      User->>Bridge: redeemReservedDeposit(utxoHash)
      Bridge->>RD: Process redemption
      RD->>Bank: decreaseBalance(0.99 tBTC)
      RD->>RD: Create priority redemption
      Wallet->>Bitcoin: Send exact UTXO back
      Bitcoin-->>User: Receive same 1 BTC

      Note over User,Wallet: PHASE 4B: LIQUIDATION (After Expiry)
      User->>Bridge: liquidateExpiredReservation(utxoHash)
      Bridge->>RD: Process liquidation
      RD->>RD: Move UTXO to general pool
      RD->>Bank: increaseBalance(liquidator, 0.001 tBTC bonus)

Loading

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant