Reach is a specialized language for building decentralized applications (DApps). You can find everything you need to know about Reach here.

Official website text link

First of all, welcome to follow the wechat official account

(At present, the overview part, the tutorial part and the southern part have been translated into Chinese. It is suggested to learn from the original text by referring to each other. For other parts, you can click the link to visit the original web page.)

  • The overview part briefly introduces the basic idea of Reach. We recommend that you read the overview before delving into it. If you already have experience in blockchain development, we recommend you read the overview and comparison of Reach to other development platforms.
  • The tutorial section will guide you through creating a DApp from scratch. This section is designed for beginners to get you started on Reach quickly.
  • This paper discusses a series of key ideas and concepts about Reach, and explains the logic and principle of Reach language.
  • The workshop is a continuation of the tutorial, offering self-study projects that will enable you to master Dapp design through Reach practice. Each project will contain a complete solution, so it will also serve as a template for building various DApps in Reach, demonstrating how to use Reach and the design thinking of Reach programmers.
  • Finally, the Resources section provides detailed technical references on all aspects of Reach.

If you are trying to find some information, in addition to the list at the bottom of this page, you can also refer to the following ways:

  • Consult the index and table of contents.
  • Start a discussion on the Discord community.
  • Report questions using the GitHub Question tracker.

The source code for the site is available on GitHub; Improvements and problem reports are welcome!

The content list
1 overview
 1.1 Decentralized application
 1.2 A minimum REACH program
 1.3 build
 1.4 validation
 1.5 interface
 1.6 perform
 1.7 web application
 1.8 Follow-up Procedure
2 tutorial
 2.1 Installation and Initialization
 2.2 Scaffolding creation and related Settings
 2.3 Rock paper scissors
 2.4 Bet and wager
 2.5 Trust and Convention
 2.6 Troubleshooting the Timeout Problem
 2.7 If the match is tied, the match will continue until the winner is determined
 2.8 Interactive and autonomous operation
 2.9 Web Interaction
 2.10 Future outlook
3 guide
3.1 Using Reach on Windows
3.2 How to use the Version number of Reach?
3.3 How does Reach development compare to Solidity development?
3.3.1 Solidity development
3.3.2 rainfall distribution on 10-12 Reach development
Conclusion 3.3.3
3.4 Authentication Mode and Content
3.5 Find and use loop invariants
3.6 Selecting a Deployment Mode
3.7 Non-participation: What is non-participation and how to prevent it
3.8 Determinism, simultaneity, and selectivity in decentralized applications
3.9 Racing uncertainty in decentralized applications
3.10 Establish the abstract concept of decentralization
3.11 Test the Reach program in a Browser
3.11.1 Algorand
3.11.1.1 Algorand: Mnemonic
3.11.1.2 Algorithm: Algorithm signature
3.12 Limitations of Reach and future development path?
3.13 How does Reach work?
3.14 IDE/ text editor support
4 workshop
4.1 Workshop: Hash lock
4.1.1 Problem analysis
4.1.2 Data Definition
4.1.3 Communication construction
4.1.4 Assertion insertion
4.1.5 Interactive introduction
4.1.6 Deployment Decisions
4.1.7 discussion
4.2 Workshop: Relay account
4.2.1 Problem analysis
4.2.2 Data Definition
4.2.3 Communication construction
4.2.4 Assert insertion
4.2.5 Interactive introduction
4.2.6 Deployment Decisions
4.2.7 Discussion and next steps
4.3 Workshop: Trust Fund
4.3.1 Problem analysis
4.3.2 Data Definition
4.3.3 Communication construction
4.3.4 Assert insertion
4.3.5 Interactive introduction
4.3.6 Deployment Decisions
4.3.7 Discussion and next action
4.4 Workshop: Fear of Missing out (FOMO)
4.4.1 Problem analysis
4.4.2 Data Definition
4.4.3 Communication construction
4.4.4 Assert insert
4.4.5 Interactive introduction
4.4.6 Deployment Decisions
4.4.7 Discussion and next steps
4.5 Workshop: Fear of missing out
4.5.1 Problem analysis
4.5.2 Data Definition
4.5.3 Communication construction
4.5.4 Assertion insertion
4.5.5 Interactive introduction
4.5.6 Deployment Decisions
4.5.7 Discussion and next steps
4.6 Workshop: Fair rock-paper-scissors
4.7 Workshop: Efficient rock-paper-scissors
4.8 Workshop: Lease Agreement
4.9 Workshop: Synchronous play
4.10 Workshop: Guardian account
4.11 Workshop: Regular payment
4.12 Workshop: Nim
4.13 Workshop: Tic-TAC-TOE
4.14 Workshop: Guarantee loan
4.15 Workshop: Competition
4.16 Workshop: Timid
4.17 Workshop: Popularity Contest
4.18 Workshop: Simple NFT
Workshop: Lucky draw
4.20 Workshop: Rent Seeking
4.21 Workshop: Prophecy machine
4.22 Workshop: Timed English auction
4.23 Workshop: Crowdfunding
4.24 Workshop: Crowdfunding
5 Reference Materials
5.1 installation
5.2 usage
5.2.1 reach the compile
5.2.2 reach init
5.2.3 requires Reach run
5.2.4 Reach down
5.2.5 Reach scaffold
5.2.6 Reach the react
5.2.7 Reach devnet
5.2.8 Reach the upgrade
5.2.9 Reach update
5.2.10 Reach version
5.2.11 Reach hash
5.3 Language Model
5.3.1 Evaluation model
5.3.2 Compiling the model
5.3.3 Syntax model
5.4 the program
5.4.1 the period of validity
5.4.1.1 Security level and scope
5.4.2 module
5.4.2.1 statement
5.4.2.1.1 export
5.4.2.1.2 import
5.4.2.2 expression
5.4.2.2.1 Reach app
5.4.2.2.2 Participants in the construction
5.4.3 steps
5.4.3.1 statement
5.4.3.1.1 only and each
5.4.3.1.2 Publish, Pay, When and timeout
5.4.3.1.3 fork
5.4.3.1.4 wait
5.4.3.1.5 exit
5.4.3.2 express
5.4.3.2.1 race
5.4.3.2.2 unknownable
5.4.3.2.3 closeto
5.4.4 Local Procedure
5.4.4.1 statement
5.4.4.2 Expression
5.4.4.2.1 this
5.4.4.2.2 interact
5.4.4.2.3 assume
5.4.4.2.4 fail
5.4.4.2.5 declassify
5.4.4.2.6 makeCommitment
5.4.5 Consensus Procedure
5.4.5.1 statement
5.4.5.1.1 commit
5.4.5.1.2 only with each
5.4.5.1.3 Partivipant. Set and set
5.4.5.1.4 while
5.4.5.1.5 continue
5.4.5.1.6 parallelReduce
5.4.5.2 Expression
5.4.5.2.1 this
5.4.5.2.2 transfer
5.4.5.2.3 the require
5.4.5.2.4 checkCommitment
5.4.5.2.5 Remote Objects
5.4.5.2.6 Mapping: Create and modify a Mapping
5.4.5.2.7 Tool set: Setting and modifying
5.4.6 calculation
5.4.6.1 comments
5.4.6.2 block
5.4.6.3 statement
5.4.6.3.1 const and function
5.4.6.3.2 return
5.4.6.3.3 if
5.4.6.3.4 switch
5.4.6.3.5 Block Declaration
5.4.6.3.6 Expression description
5.4.6.4 Expression mode
5.4.6.4.1 Identifier Reference
5.4.6.4.2 Function Application
5.4.6.4.3 type
5.4.6.4.4 literal values
5.4.6.4.5 Operator expressions
5.4.6.4.6 xor
5.4.6.4.7 Expressions in brackets
5.4.6.4.8 tuples
5.4.6.4.9 array
5.4.6.4.10 Element Reference
5.4.6.4.11 Lengths of arrays and tuples: tupl. length, array. length, and.length
5.4.6.4.12 Arrays and tuples updated: tupl. set, array. set, and. Set
5.4.6.4.13 Folding operation
5.4.6.4.14 Array Operations
5.4.6.4.15 Mapping a Group
5.4.6.4.16 object
5.4.6.4.17 structure
5.4.6.4.17 References
5.4.6.4.19 Object. The set
5.4.6.4.20 Object. SetIfUnset
5.4.6.4.21 Object. From the
5.4.6.4.22 data
5.4.6.4.23 Maybe
5.4.6.4.24 Either
5.4.6.4.25 Match
5.4.6.4.26 Conditional expressions
5.4.6.4.27 Arrow expressions
5.4.6.4.28 makeEnum
5.4.6.4.29 assert
5.4.6.4.30 forall
5.4.6.4.31 possible
5.4.6.4.32 digest
5.4.6.4.33 balance
5.4.6.4.34 lastConsensusTime
5.4.6.4.35 makeDeadline
5.4.6.4.36 the implies
5.4.6.4.37 ensure
5.4.6.4.38 hasRandom
5.4.6.4.39 compose
5.4.6.4.40 SQRT
5.4.6.4.41 pow
5.4.6.4.42 Integer symbol
5.4.6.4.43 Fixed points
5.4.6.4.44 anyone
5.4.6.4.45 Strict Mode
5.5 Common Network Connectors
5.5.1 the etheric fang
5.5.2 Algorand
5.6 Participant Backend
5.6.1 Java script
5.6.1.1 guarantee
5.6.1.2 loader
5.6.1.3 Standard Libraries
5.6.1.3.1 Ethereum-specific functions
5.6.1.3.2 appliance
5.6.1.4 asked