← Protocols
Tezos (Taquito)
Other Chain·Multi-chain

Tezos (Taquito)

01Description

Tezos is a self-amending PoS L1 with formal-verification-friendly Michelson smart contracts (and high-level languages SmartPy, LIGO, Archetype). Taquito is the canonical TypeScript SDK: a `TezosToolkit` for chain access plus pluggable signers (Beacon wallet, in-memory keys, Ledger) and contract abstractions.

02Best for
  • 01Tezos dapps and FA1.2 / FA2 token apps
  • 02Beacon wallet (Temple, Kukai, Umami) auth
  • 03formally-verified smart contracts
  • 04tz1/tz2/tz3 account interactions
  • 05DAL / Etherlink interop
03Install
  • pnpm add @taquito/taquito @taquito/beacon-wallet @airgap/beacon-sdk
04Environment variables
VariableScopeDescription
NEXT_PUBLIC_TEZOS_RPC_URLClientTezos RPC node, e.g. https://mainnet.api.tez.ie or https://ghostnet.tezos.ecadinfra.com.
NEXT_PUBLIC_TEZOS_NETWORKClientNetwork identifier (e.g. `mainnet`, `ghostnet`) passed to BeaconWallet.
TZKT_API_URLClientOptional TzKT indexer base URL (https://api.tzkt.io) for richer contract / operation queries.
05Prompt snippet
Use Taquito for Tezos. Initialize `const Tezos = new TezosToolkit(NEXT_PUBLIC_TEZOS_RPC_URL)` and attach a wallet: `const wallet = new BeaconWallet({ name: 'MyDapp', preferredNetwork: NetworkType.MAINNET }); await wallet.requestPermissions(); Tezos.setWalletProvider(wallet);`. Read contract storage with `const c = await Tezos.wallet.at(KT1...); const s = await c.storage();`. Send a transfer via `Tezos.wallet.transfer({ to: 'tz1...', amount: 1 }).send()`, or call an entrypoint with `c.methodsObject.transfer({ from_, to_, value }).send()` and `op.confirmation(2)` to wait for two-block finality. For FA2 tokens use `@taquito/tzip12` to fetch token metadata. Reads at scale should hit the TzKT indexer rather than the RPC.
06Gotchas
  • Tezos has three implicit account prefixes — `tz1` (Ed25519), `tz2` (Secp256k1), `tz3` (P-256) — and originated contracts (`KT1`); signature verification differs by curve and a wallet may only support a subset.
  • Operations are batched into a single `manager operation` and consume gas + storage limits separately. Storage burn (`burn-cap`) is a hard cost paid in tez at 0.000250 ꜩ/byte and is not refundable; missing `burn-cap` makes the op fail.
  • Finality on Tenderbake is probabilistic per round — `op.confirmation(1)` is fast (~30s) but `op.confirmation(2)` (~60s) is the convention for safe finality before settling fiat or cross-chain payouts.
  • Smart contract storage is Michelson-typed (pairs/maps/big_maps) — Taquito tries to auto-decode but big_maps return lazy IDs; use `c.storage().then(s => s.bigmap.get(key))` rather than treating big_map as a JS Map.
  • Beacon's pairing modal stores connection state in `localStorage`; calling `requestPermissions` again on a fresh tab without `client.getActiveAccount()` triggers a duplicate session and confuses the wallet.
  • Tezos goes through periodic protocol upgrades (every ~3 months) that can change opcode gas costs and even add new entrypoint encoding rules — pin Taquito to a version that supports the active and next protocol.
07Alternatives