[Alpha version]

Introduction to Rainlang

The primary goal of Rainlang is to make smart contract development accessible for as many people as possible.

This is fundamentally grounded in our belief that accessibility is the difference between theoretical and practical decentralisation. There are many people who would like to participate in authoring and auditing crypto code but currently cannot. When someone wants/needs to do something but cannot, then they delegate to someone who can, this is by definition centralisation.

Rainlang is easy to read

In Rainlang, the focus is on making the language easily comprehensible by humans. This means that the words used in Rainlang expressions are designed to be easily understood and remembered, and the syntax is designed to be simple and intuitive. This makes it easier for people to read and understand Rainlang expressions, even if they have no previous experience with programming or smart contract development.

Because of its focus on human comprehension, Rainlang does not rely on verification for comprehension. This means that users do not need to have the exact same copy of the source code and compiler options as the author in order to understand an expression. Instead, they can simply read the expression and understand its meaning based on the words and syntax used. An onchain interpreter allows users to read and understand the logic of a smart contract directly from the blockchain, without the need for specialized tooling or a deep understanding of the underlying code. This makes it easier for users to determine the potential risks and benefits of interacting with a contract, and to make informed decisions about whether or not to proceed.

By providing a clear and intuitive representation of a contract’s logic, an onchain interpreter can help to build trust and transparency in the blockchain ecosystem. Additionally, by allowing users to directly read and understand the logic of a contract, an onchain interpreter can help to reduce the reliance on centralized parties to validate and explain the workings of a contract. This can help to foster a more decentralized and open blockchain ecosystem.

Rainlang is easy to write

Rainlang is designed to be easy to write, making it a powerful tool for bringing web3 ideas to life. With its simple and intuitive syntax, Rainlang allows even those with little to no programming experience to write smart contract expressions and deploy them on the blockchain. Rainlang also offers a high level of expressiveness, allowing users to create complex expressions that are still readable and understandable. This makes it possible to write complex smart contracts without sacrificing readability and transparency.

The simplicity of Rainlang allows users to quickly and easily bring their ideas to life on the blockchain. Whether you are a seasoned developer or just starting out, Rainlang makes it easy to create smart contracts and other blockchain-based applications. With Rainlang, anyone can turn their web3 ideas into reality.

Rainlang is interpreted on-chain

Rain expressions are instructions written in Rainlang that can be executed by an interpreter called the Rain Interpreter. The interpreter is implemented in a smart contract on the blockchain, which allows users to perform computations on-chain and use the results to accomplish tasks such as minting, burning, or transferring tokens. Rain expressions are similar to excel formulas and allow users who may not be familiar with programming languages like Solidity to create their own smart contracts.

For example, an expression in a smart contract could be used to define the conditions under which a contract will accept an incoming transaction, and the actions that the contract will take in response to that transaction. This could include checking the sender’s address, the amount of tokens being sent, and any other relevant data, and then executing the appropriate actions based on that information.

Rainlang is extensible

Rainlang is designed to be easily customizable and adaptable. This means that different implementations of Rainlang can be easily swapped out and replaced with new versions. This is useful because it allows users to choose the version of Rainlang that best suits their needs. For example, a user who is interested in security may choose to use a version of Rainlang that has been specifically designed to prioritize security.

In Rainlang, the interpreter is the contract that takes the expressions that are written in Rainlang and translates them into actions that can be executed by a smart contract. The Interpreter is an important part of Rainlang because it is what allows users to interact with smart contracts using Rainlang expressions.

Rainlang is extensible because it allows users to customize and modify the interpreter in order to add new features or make changes to the language. This makes Rainlang a very powerful tool because it allows users to create new and innovative expressions that can be used to interact with smart contracts in new and interesting ways.