Assets on Tezos

A proposed interface standard for fungible assets

TQ Tezos
TQ Tezos
3 min readJun 21, 2019

--

This post is a joint work between the Tocqueville Group, Serokell, and Nomadic Labs. Here we propose a standard interface for creating and managing fungible assets using smart-contracts on Tezos, highlight an upcoming reference implementation by Serokell, and provide a preview of our ongoing work.

We are still working on a more formal “TZIP” process, but we felt it important to start with this proposal to get the ball rolling.

A physical ledger. Source: Canva

Our proposed asset interface standard

For pragmatic reasons, our first proposed asset interface standard essentially follows the interface proposed in ERC-20. This standard is well known, widely used by third parties (wallets, exchanges, etc), and developers know how to integrate it. This initial interface standard is compatible with an upcoming amendment proposal that adds multiple entrypoints to Michelson. Engineers at Nomadic Labs and Serokell are also developing alternatives inspired by other emerging standards, such as ERC-777 and ERC-1155.

The proposed interface is as follows:

…where X represents any potential additional entry point.

Note that in order to enhance readability, the snippet above takes some liberty and departs from the indentation prescribed by Michelson. (A less readable, but correctly indented snippet can be found here.)

While, in the current version of Michelson, annotations inside parameters (e.g. %transfer, :value) are not semantically meaningful, all of the annotations above are nonetheless part of the proposed standard. This serves two purposes: it offers compatibility with a proposed extension of Michelson enabling multiple entrypoints and it standardizes the content of automatically generated interfaces.

An upcoming reference implementation

Building under this proposed interface standard, Nomadic Labs is also helping finalize a reference implementation of an asset contract written by Serokell using the Morley framework.

Concretely, this reference implementation maps identities to balances on a ledger. It also provides Mint, Burn, and Pause operations, offering the contract deployer flexibility in specifying how the asset contract is administered. This provides customizable options to users: an asset contract can be managed by a trusted third party (e.g. a Security Token or a Stablecoin), a multisig, a DAO, or remain unpermissioned with no administrator at all.

Future work

Formal verification

Efforts are currently underway at Nomadic Labs to specify a reference implementation and use the Mi-Cho-Coq framework to formally prove that the specification is respected by the Michelson contract.

New asset interface standards (and reference implementations)

To reduce the risk of path dependency around this initial interface standard, we intend to propose additional asset interfaces inspired by newer standards or other designs proposed from the Tezos community.

Inclusion with the Tezos node/client

Following the lead of the recently incorporated multi-signature contract, Nomadic Labs intends to include a formally verified asset contract in the Tezos client/node. This also complements other recent efforts to update the native Tezos multi-sig with the ability to make arbitrary function calls (e.g. managing an asset contract).

Stay tuned

Expect updates on these efforts throughout the summer.

--

--

TQ Tezos
TQ Tezos

TQ Tezos works to advance the Tezos ecosystem by helping companies build on Tezos, creating open source software, and connecting the community.