Tree++
Tree++ is a language for smarter Bitcoin contracts. The following summarizes the vision.
Advanced Scripting
At the core of Tree++ there is a templating language which can express complex Bitcoin Scripts.
  - Evaluate constant expressions
 
  - Parametrized templates
 
  - Unroll loops
 
  - Compose opcodes
 
  - Library of composed opcodes
    
      - E.g., multiplication, bitwise XOR, bitwise shifts, Blake3, …
 
    
   
  - Hints
    
      - E.g. reduce: division to a multiplication, square root to a multiplication, modulo to a multiplication., …
 
    
   
  - Lookup tables
 
  - Statefulness
    
      - Lamport signatures (message sizes: u8, u32, u160, …)
 
      - Also Winternitz signatures
 
      - In the future maybe OP_CHECKSIGFROMSTACK
 
    
   
Graphs of Transactions
  - Compose Tree++ scripts into potentially large Taptrees
 
  - Model contract logic in form of sequences and graphs of transactions
 
  - Statefulness
    
      - Presigned transactions (also sighashes!)
 
      - Connector outputs
 
      - Trigger transactions
 
      - Timeouts
 
    
   
  - Library of parametrizable sub-graphs
    
      - E.g. BitVM, zkp verifier, bridge
 
    
   
  - Documentation and Tutorials
 
  - Online editor with examples (like https://ide.scriptwiz.app)
 
  - Package manager (Cargo)