Skip to main content

Introduction

note

This is a quick introduction to the main concepts of Taqueria. If you are looking to get started with Taqueria right away with a hands on approach, you can jump to the quickstart guide

Taqueria is here to help make developing on Tezos easier. Taqueria supercharges your projects with a powerful and centralized configuration and access to top Tezos development tools through tasks that you run from the command line

Some of the things Taqueria can do for you include:

  • Compiling smart contracts using the LIGO, SmartPy, or Archetype plugins
  • Running a local sandbox with the Flextesa plugin
  • Originating a smart contract to a sandbox and testnet with the Taquito plugin
  • Generating TypeScript types from a Michelson contract with the Contract Types plugin
  • Typechecking Michelson contracts and simulating contract calls with the Octez Client plugin
  • Testing dapps and smart contracts with the Jest plugin
  • Publishing metadata and media files to IPFS with the IPFS Pinata plugin

What is Taqueria?

Taqueria is an extensible, open source plugin based framework and task runner for Tezos development

In more practical terms, Taqueria is a task runner that you can use from the command line or via VS Code to quickly accomplish things like starting a sandbox or originating a contract. Taqueria comes with a few basic tasks, but relies on plugins to add tasks that provide complex and domain specific functionality

Taqueria has a few major components:

  • A command line interface (CLI) you use in your terminal through a command named taq
  • A library of plugins that add tasks to Taqueria to do cool and useful things like compiling and originating smart contracts, and type generation
  • A VS Code Extension which provides the ability to run Taqueria tasks from the command palette or the UI
  • A GitHub action so Taqueria can be used in your CI/CD workflows

Basic Components

Taqueria CLI

The CLI is the main user interface for Taqueria which provides a command taq through which you can initialize a project, install/uninstall plugins, and run tasks

Basic usage of the Taqueria CLI involves running a command following the pattern

taq [taskName] [options]
note

Taqueria uses the following conventions for displaying command structure:

  • Square brackets [value] are used to indicate optional arguments
  • Angle brackets <value> are used to indicate required arguments

You can see what tasks are available to run in any given context by running taq from the command line

Taqueria Project

A Taqueria project is one that has been initialized by Taqueria using the taq init command. It will have the following directory structure created:

  • artifacts: This is where Taqueria will store artifacts that it creates during the course of its execution
  • contracts: This is where Taqueria will store smart contracts that it compiles
  • .taq: This is where Taqueria will store its configuration
note

Configuration for Taqueria projects including accounts, networks, and sandboxes is done in .taq/config.json

Taqueria Plugins

Taqueria plugins add functionality to Taqueria by adding tasks to Taqueria. Plugins are managed right in Taqueria using the taq install [pluginName] and taq uninstall [pluginName] commands

Taqueria plugins are installed on a per-project basis which allows you to customize the combination of technologies used and tasks available on a project. This means that the tasks available to run in each project will differ based on the plugins installed

Currently available plugins include:

  • LIGO Compiler
  • SmartPy Compiler
  • Archetype Compiler
  • Flextesa Sandbox
  • Taquito
  • Contract Types Generator
  • Octez Client
  • Jest Test Runner
  • Metadata
  • IPFS Pinata

Taqueria SDK

Taqueria has a Node.js SDK which is used by plugins to interact with the Taqueria protocol

note

Most developers won't ever interact with the SDK directly unless they are developing a plugin