Ola Developer Documents
  • Introduction
    • What is Ola
    • Advanced Features
    • Roadmap & Release Notes
  • Quick Start
    • Setup Environment
    • Setting up an Account
    • Deploying a Smart Contract
    • Interacting with a Smart Contract
    • Running smart contract locally
  • Ola Language
  • OlaVM
    • Concepts
      • Accounts
      • Contracts
      • Notes
      • Transaction
      • Transition
      • Blocks
    • OlaVM Architecture
      • VM
      • Circuits
    • GPU acceleration
  • OlaOS
    • Installation Guide
    • Run an OlaOS Node
    • Command Line Interface
    • OlaOS Architecture
    • System Contracts
  • API/SDK
    • APIs
    • Javascript SDK
  • Developer Tools and Resources
Powered by GitBook
On this page
  1. OlaVM
  2. Concepts

Contracts

A contract is a fundamental data structure for representing application logic and application state.

Ola introduces a new programming language called Ola instructions that enables developers to write private web applications. Ola instructions is a statically-typed programming language for writing privacy-preserving, secure programs on Ola. By leveraging zero-knowledge proofs, Ola instructions offers computational integrity for real-world applications.

In Ola, a "smart contract" is defined as a collection of public and private functions written in Ola-Lang program. These functions operate on both public and private state stored within the contract. Since OlaVM is a ZK-STARK based zkVM, it is not needed each function as a verification key, one contract is just as a public input for the zkVM.

Ola-Lang is a programming language crafted for the conversion of high-level programs into ZK circuits. Built on the Rust language, its aim is to provide a familiar and idiomatic way for Ethereum developers to create private smart contracts. Ola-Lang is continuously evolving, with ongoing development efforts that include the addition of contracts, functions, and storage variables.

The ultimate objective is to offer a developer-friendly language that can be easily used by those without cryptographic expertise, enabling them to create programmable private smart contracts.

PreviousAccountsNextNotes

Last updated 1 year ago