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 avalable 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