Introduction

Factori — the key Tezos dApps development framework

Welcome to Factori, a tool designed around the needs of Tezos smart contract & dApp developers based on our long experience in this domain. Factori's mantra is low code. Its primary goal is to automate, as much as possible, boilerplate code generation so that you can focus on writing, testing, and deploying your smart contracts.

The figure below summarizes Factori's main features: given Michelson smart contracts (whether you wrote them yourself or found them on a Tezos network), it automates the following tasks:

  • SDKs generation in various languages, like OCaml, Typescript, Python, and C#;
  • Basic Web dApp generation to graphically interact with the contracts;
  • Plugins generation for Crawlori and Dip dup crawlers to easily index the calls to the smart contracts into a relational database;
  • A powerful scenario language to write tests;
  • Factori will also provide a light static analysis module for Michelson contracts (e.g., detection of entrypoints permissions and unused storage fields, use of sets/maps instead of big maps).

Factori features

Factori's long-term goal is to provide an equivalent of Truffle and Ganache tools for Tezos' native smart contracts language, with an additional focus on meta-programming and automatic code generation.

Next step: quick start!

When you use Factori, you will have a working directory, which we will sometimes call the Factori project directory. Whenever we give relative paths (.e.g src/python_sdk), the will implicitly always be given relative to this working directory.

Let's move to the installation process. For that, we highly advise the Docker approach.