FA2 (TZIP-12)

Smart Contract Standard

Financial Application 2 (TZIP-12): Tezos' unified multi-asset token interface standard supporting fungible tokens, NFTs, and semi-fungible tokens within a single contract. Defines a flexible, permission-configurable token interface with configurable transfer policies (monolith, transfer hook, or wrapper patterns). Equivalent in scope to ERC-20 + ERC-721 + ERC-1155 combined. The dominant token standard for the Tezos ecosystem.

Foundation

Details

License https://gitlab.com/tezos/tzip/-/blob/master/proposals/tzip-12/tzip-12.md
Dev Status 🏁 Final
Dev Status Detail Final (active production standard)
Owner Tezos ecosystem / TQ Tezos (original proposal); maintained by Tezos Foundation and community
Governing Body Tezos Foundation (TZIP process; original proposal by TQ Tezos)
Country Switzerland (Tezos Foundation)
Start Year 2020
Stack Michelson (Tezos native VM); high-level implementations in SmartPy (Python DSL) and LIGO (Pascal/CameLIGO/ReasonLIGO); compiles to Michelson bytecode
Funding Tezos Foundation grants; TQ Tezos (commercial ecosystem development); community contributions
Last Investigated Mar 9, 2026

Affordances

Transparent stewardship Interoperable formats

Smart Contract Standard Attributes

Origins Developed by TQ Tezos (now Tezos Foundation ecosystem arm) in 2020, following FA1.2 (TZIP-7, fungible-only) and building on ERC-1155 inspiration. Motivated by the need for a single unified interface handling all token types, replacing the fragmented ERC-20/ERC-721 split. Initial interface specification written in CameLIGO; reference implementations subsequently provided in SmartPy and LIGO. FA2.1 (TZIP-26) is an active draft extending FA2 with events, on-chain views, and tickets.
Data Formats transfer batch: list of {from_, list of {to_, token_id, amount}}; balance_of query/response; update_operators; token metadata: key-value big_map (TZIP-16 compliant); token_id: nat; Michelson pair/list encoding
Terms MIT
Funds Unknown
Based On FA1.2 / TZIP-7 (predecessor fungible standard); ERC-1155 (multi-token design inspiration); TZIP-16 (Tezos contract metadata standard)
Permissions Configurable permission policies: self-transfer, operator-approved transfer, no-transfer; operator model for delegated transfers; mint/burn entry points not standardized (implementer discretion)
Development Tools SmartPy IDE (https://smartpy.io); LIGO (https://ligolang.org); Taquito (JavaScript client library); Tezos CLI (octez-client); Temple Wallet; Better Call Dev (contract explorer)
Protocol Maturity / Standardization Final TZIP; dominant Tezos token standard adopted by all major wallets, DEXes, and NFT platforms on Tezos (objkt.com, fx(hash), Versum); FA2.1 draft extends the standard
Trust Framework Trustless: Michelson contract logic enforces transfer permissions; on-chain operator registry; no admin key in base standard; trust model governed by Tezos liquid proof-of-stake consensus and Michelson formal verification tools
Target Application Domain Fungible tokens; NFTs and digital art (major Tezos NFT ecosystem); semi-fungible tokens; regulated asset tokenization (DAR-1 standard built on FA2); civic and social tokens; DAO governance tokens
Deployment Model Per-project contract origination on Tezos; single contract supports all token types and multiple token IDs; optional multi-asset architecture
Standard Type Token Standard
Ecosystem Tezos