Skip to content

LibraryMarkets2018Design paperCorpus record

Multi Token Standard

ERC-1155. Witek Radomski, Andrew Cooke, Philippe Castonguay, James Therien, Eric Binet and Ronan Sandford.

One contract holds many ids. Each id can be fungible or not, by how many copies exist. A batch transfer moves several ids in one call. A receiver hook tries to stop tokens being sent to contracts that cannot hold them.

A reading of the public document. Not a copy of it, and not a claim about a later network that reused the name.

An inventory system that deploys a new contract per item has not used this, and should have a reason.

The five-minute read

The defect

A game or a marketplace that issues hundreds of ERC-20 or ERC-721 contracts pays deployment and approval costs on every one.

The rule

One contract holds many ids. Each id can be fungible or not, by how many copies exist. A batch transfer moves several ids in one call. A receiver hook tries to stop tokens being sent to contracts that cannot hold them.

How it is put together

Ids share a contract. Batching is the point. The receiver must accept, or the send reverts, when the receiver is a contract.

Where the claim stops

The standard does not define rarity, rights, or reserves.

One action, walked through

  1. Mint balances against ids.
  2. safeBatchTransferFrom moves many.
  3. The receiver's hook returns a selector or the transfer fails.
  4. Does the recipient implement the receiver hook?

The argument, unpacked

Why it is still on the desk

An inventory system that deploys a new contract per item has not used this, and should have a reason.

After the text

Games and some exchanges adopted it. The hook is the part integrators forget.

What has to be true

  • The standard does not define rarity, rights, or reserves.
  • A hook that always accepts can still be a bad wallet.
  • Semi-fungible is a usage, not a third legal category the EIP creates.

What happened after the paper

Games and some exchanges adopted it. The hook is the part integrators forget.

What to check before you use the idea

  • Does the recipient implement the receiver hook?
  • Which ids are meant to be fungible?
  • What does a balance of an id mean outside the contract?

Terms

Batch transfer
One call that moves several ids.
Receiver hook
A callback that lets a contract refuse tokens it cannot handle.

The problem the paper names

A game or a marketplace that issues hundreds of ERC-20 or ERC-721 contracts pays deployment and approval costs on every one.

What the design proposes

  • Ids share a contract.
  • Batching is the point.
  • The receiver must accept, or the send reverts, when the receiver is a contract.

How the mechanism is specified

  • Mint balances against ids.
  • safeBatchTransferFrom moves many.
  • The receiver's hook returns a selector or the transfer fails.

What this page does not treat as proven

  • The standard does not define rarity, rights, or reserves.
  • A hook that always accepts can still be a bad wallet.
  • Semi-fungible is a usage, not a third legal category the EIP creates.

Why a venture studio still reads it

An inventory system that deploys a new contract per item has not used this, and should have a reason.

This is Blockchain Lab's reading of a public design paper. It is not the paper, not a copy of it, and not an offer of tokens, equity, custody or a partnership. Later network behaviour can diverge from the text. Nothing here is investment, legal or technical advice.

Research status: Design paper. Last reviewed: 1 October 2026. This is a reading of a public paper, not investment, legal or security advice.