Welcome, Web3 developer!
Taquito is a fast and lightweight TypeScript library to accelerate DApp development on the Tezos blockchain. With it, you can easily interact with Smart Contracts deployed to Tezos. It is distributed as a suite of individual npm packages, reducing bloat and improving application startup times.
Taquito is primarily targeted at Front-End Web3 developers, so it comes with batteries included, such as a React Template Project, an extensible framework, and many helpful utilities. It can be used in many environments, including Serverless, Node.js, Deno, and Electron, and has minimal dependencies.
Taquito is used by over 80% of DApps in the Tezos ecosystem. It is easy to use, proven secure, and tested continuously against current versions of Tezos (both Mainnet and Testnets).
Taquito provides convenient abstractions for a multitude of common operations, including wallet interactions (with WalletConnect/Reown in the works), batching operations, calling into contracts, querying the blockchain, and more. Taquito will shield your code from subtle - and not-so-subtle - changes to the underlying Tezos protocol.
...Not to mention our thriving, helpful, and welcoming community!
To get started with Taquito quickly, visit the Taquito QuickStart.
If you prefer a skeleton project, check out our Taquito React Template.
Do you wish to contribute to Taquito? See Contributors Getting Started below.
Taquito currently supports the following versions of Node.js®:
| Version | Supported? |
|---|---|
| v24 LTS | ✅ |
| v22 LTS | ✅ |
| < v22 | ❌ |
The repository currently targets Node.js >=22, and CI runs on Node.js 22 and 24.
On some GNU/Linux systems, native dependencies used by Ledger-related packages may require additional system libraries. If npm ci or npm install fails with errors such as libusb.h: No such file or directory, install the relevant packages first, for example on Debian or Ubuntu:
sudo apt install -y libusb-1.0-0-dev libudev-dev pkg-configWe are active and enthusiastic participants of the following community channels:
Taquito is a monorepo, composed of npm packages published under the @taquito scope. The package catalog below is generated from package metadata so the npm links and descriptions stay in sync with the codebase. To refresh it after package changes, run npm run sync:package-catalog.
| Package | npm | Source | Description |
|---|---|---|---|
@taquito/beacon-wallet |
npm | source | TZIP-10 Beacon wallet integration for Taquito dapps built on the Beacon SDK DAppClient. |
@taquito/contracts-library |
npm | source | Static Michelson scripts and entrypoints library for Taquito contract interactions. |
@taquito/core |
npm | source | Shared types, interfaces, and primitives for Taquito packages. |
@taquito/http-utils |
npm | source | HTTP transport utilities for Taquito RPC clients with retry, timeout, and error classification. |
@taquito/ledger-signer |
npm | source | Ledger hardware wallet signer integration for Taquito. |
@taquito/local-forging |
npm | source | Local Tezos operation forging for Taquito. |
@taquito/michel-codec |
npm | source | Michelson parser, validator, and formatter for Taquito. |
@taquito/michelson-encoder |
npm | source | Michelson encoding and decoding utilities for Taquito. |
@taquito/remote-signer |
npm | source | Remote signer client for Taquito, designed to work with services such as Signatory. |
@taquito/rpc |
npm | source | TypeScript client and types for the Tezos RPC used by Taquito. |
@taquito/sapling |
npm | source | Sapling transaction building and viewing support for Taquito. |
@taquito/signer |
npm | source | Software signer implementations and signing utilities for Taquito. |
@taquito/taquito |
npm | source | TypeScript SDK for building wallets, dapps, and tooling on Tezos. |
@taquito/timelock |
npm | source | Timelock cryptography support for Taquito and Tezos applications. |
@taquito/tzip12 |
npm | source | TZIP-12 token metadata support for Taquito. |
@taquito/tzip16 |
npm | source | TZIP-16 contract metadata support for Taquito. |
@taquito/utils |
npm | source | Encoding, crypto, and utility helpers for Taquito. |
@taquito/wallet-connect |
npm | source | WalletConnect integration for Taquito applications. |
| Package | npm | Source | Description | Notes |
|---|---|---|---|---|
@taquito/sapling-wasm |
npm | source | Sapling Wasm bindings for Taquito and compatible consumers. | Official Taquito package, published from the separate ecadlabs/sapling-wasm repository. |
TypeDoc API documentation for Taquito is available here.
Taquito supports the current and next (beta) protocol versions of Tezos.
We use Semantic Versioning with a twist: the Major version typically tracks the latest version of Tezos, while Minor and Patch follow standard SemVer rules.
For example, a stable Taquito release line might be v24.x, while the next protocol release is prepared as v25.0.0-beta.1.
When the next protocol proposal is likely to be promoted, and Taquito has been updated and tested against it, we release the next version (e.g., v25.0.0-beta.1) before the chain switches. This gives DApp developers time to update and test their projects.
During these “Major” version updates, the Taquito public API may undergo breaking changes. We do our best to document these in release notes.
All prior Taquito releases remain backwards compatible with historical chain data, though older node RPC endpoints may eventually lose official support. We encourage you to update older versions of Taquito, and welcome any technical questions that arise during upgrades.
Releases are published to npmjs.org and appear on the GitHub Releases page.
Official npm packages are published from the repository's GitHub Actions release workflow with npm provenance enabled. npm records signed provenance attestations for those publishes, which gives consumers a verifiable link between the published package, the source commit, and the build workflow used to produce it.
Interested in contributing to Taquito? Wonderful! Read on to set up your environment.
Perform these steps in order.
-
Install libudev-dev (if on GNU/Linux):
- Ubuntu / Debian-based:
sudo apt-get install libudev-dev - Fedora / RedHat-based:
sudo dnf install libudev-devel
- Ubuntu / Debian-based:
-
Install or use a compatible version of Node.js (see Supported Versions), for example:
nvm install nvm use
Once prerequisites are installed, run:
npm ci
npm run buildIf everything goes well, run the unit tests:
npm run testAll tests should pass successfully.
- Do not delete
node_modules/manually – this confuses the build system. Usenpm run cleaninstead. - Prefer
npm cirather thannpm installto ensure a deterministic installation that respectspackage-lock.json.
Refer to the top-level package.json for available scripts. Common ones:
npm run clean: Recursively deletes build artifactsnpm run test: Runs the unit testsnpm run build: Generates bundles, type definitions, and TypeDocs for all packagesnpm run lint: Runs ESLintnpm run example: Runs an example Node.js app demonstrating Taquito functionality
See the integration-tests/ directory for details. The README in that folder explains how to configure and run integration tests.
After making your changes:
npm run lint
npm run test
git commitUse a conventional commit message for your final commit.
The Taquito website is built with Astro. To run it locally:
npm cinpm -w @taquito/website dev
Do not report security issues in public GitHub issues, discussions, or pull requests.
Use GitHub private vulnerability reporting on the repository Security page, or email security@ecadlabs.com if needed.
See SECURITY.md for the current policy.
Use our GitHub Issue Tracker to report bugs or request features.
Before submitting a pull request, please ensure there’s an open issue describing your changes. Contributions require appropriate documentation and tests. Feel free to open a “work in progress” pull request for early feedback!
This repository contains materials under two separate licenses:
The Taquito source code (all directories and files in this repository except the website/ directory) is licensed under the Apache License, Version 2.0. You are free to use, modify, and distribute the source code in accordance with the terms of that license.
The contents of the website/ directory — including all documentation, written content, tutorials, guides, images, graphics, logos, design assets, and website source code — are the exclusive property of ECAD Labs Inc. and are NOT licensed under Apache 2.0 or any other open-source license. All rights are reserved. See website/LICENSE for details.
For permissions or licensing inquiries regarding the website and documentation, please contact info@ecadlabs.com.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT OR FITNESS FOR A PARTICULAR PURPOSE, ARE ENTIRELY DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNERS, CONTRIBUTORS, OR ANY AFFILIATED ENTITIES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION). THIS LIMITATION APPLIES UNDER ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE), EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PERSONS USING THIS SOFTWARE DO SO ENTIRELY AT THEIR OWN RISK.
Special thanks to these libraries, which have been excellent references for Taquito’s development:
