Bird
Raised Fist0
Blockchain / Solidityprogramming~5 mins

ERC-1155 multi-token standard in Blockchain / Solidity - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the ERC-1155 standard in blockchain?
ERC-1155 is a multi-token standard on Ethereum that allows a single smart contract to manage multiple token types, including both fungible and non-fungible tokens.
Click to reveal answer
intermediate
How does ERC-1155 improve efficiency compared to ERC-20 and ERC-721?
ERC-1155 reduces transaction costs and complexity by allowing batch transfers of multiple token types in one call, unlike ERC-20 and ERC-721 which handle tokens individually.
Click to reveal answer
beginner
What is a key feature of ERC-1155 regarding token types?
ERC-1155 supports both fungible tokens (like currencies) and non-fungible tokens (unique items) within the same contract.
Click to reveal answer
intermediate
Explain the purpose of the safeTransferFrom function in ERC-1155.
safeTransferFrom securely transfers a specific amount of a token type from one address to another, checking that the receiver can handle the tokens to prevent loss.
Click to reveal answer
intermediate
What event does ERC-1155 emit when tokens are transferred?
ERC-1155 emits TransferSingle or TransferBatch events to notify off-chain applications about token transfers, supporting single or multiple token types respectively.
Click to reveal answer
Which of the following best describes ERC-1155?
AA standard for managing multiple token types in one contract
BA standard only for fungible tokens
CA standard only for non-fungible tokens
DA standard for creating smart contracts unrelated to tokens
What is a main advantage of batch transfers in ERC-1155?
AThey increase gas fees
BThey require multiple smart contracts
CThey reduce transaction costs by sending multiple tokens at once
DThey only work for fungible tokens
Which function in ERC-1155 checks if the receiver can handle tokens safely?
AtransferFrom
Bmint
Capprove
DsafeTransferFrom
What types of tokens can ERC-1155 manage?
AOnly non-fungible tokens
BBoth fungible and non-fungible tokens
COnly fungible tokens
DOnly stablecoins
Which event is emitted when multiple token types are transferred in ERC-1155?
ATransferBatch
BApproval
CTransferSingle
DMint
Describe the main benefits of using the ERC-1155 multi-token standard over ERC-20 and ERC-721.
Think about efficiency and token variety.
You got /3 concepts.
    Explain how safeTransferFrom works in ERC-1155 and why it is important.
    Consider safety in token transfers.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main advantage of the ERC-1155 token standard compared to ERC-20 and ERC-721?
      easy
      A. It only supports fungible tokens.
      B. It allows managing multiple token types in a single contract.
      C. It is designed exclusively for non-fungible tokens.
      D. It requires a separate contract for each token type.

      Solution

      1. Step 1: Understand ERC-20 and ERC-721 limitations

        ERC-20 supports fungible tokens only, and ERC-721 supports non-fungible tokens but each token type needs its own contract.
      2. Step 2: Identify ERC-1155 feature

        ERC-1155 allows multiple token types (fungible and non-fungible) to be managed within a single contract efficiently.
      3. Final Answer:

        It allows managing multiple token types in a single contract. -> Option B
      4. Quick Check:

        ERC-1155 = multi-token single contract [OK]
      Hint: ERC-1155 = many tokens, one contract [OK]
      Common Mistakes:
      • Thinking ERC-1155 supports only one token type
      • Confusing ERC-1155 with ERC-20 or ERC-721
      • Believing ERC-1155 requires multiple contracts
      2. Which of the following is the correct Solidity function signature to mint multiple tokens in ERC-1155?
      easy
      A. function mintBatch(address to, uint256[] ids, uint256[] amounts, bytes data) external;
      B. function mintToken(address to, uint256 id) external;
      C. function mint(address to, uint256 id, uint256 amount, bytes data) external;
      D. function mintSingle(address to, uint256 id, uint256 amount) external;

      Solution

      1. Step 1: Recall ERC-1155 minting functions

        ERC-1155 defines mintBatch to mint multiple token types at once, taking arrays of ids and amounts.
      2. Step 2: Match function signature

        function mintBatch(address to, uint256[] ids, uint256[] amounts, bytes data) external; matches the standard signature: mintBatch(address to, uint256[] ids, uint256[] amounts, bytes data).
      3. Final Answer:

        function mintBatch(address to, uint256[] ids, uint256[] amounts, bytes data) external; -> Option A
      4. Quick Check:

        mintBatch = batch minting function [OK]
      Hint: Batch mint uses arrays of ids and amounts [OK]
      Common Mistakes:
      • Using single id and amount for batch mint
      • Confusing mintBatch with mintSingle
      • Missing bytes data parameter
      3. Given the following Solidity snippet, what will be the balance of token ID 5 for address 0xABC after execution?
      _mint(0xABC, 5, 10, "");
      _mintBatch(0xABC, [5, 7], [5, 3], "");
      
      medium
      A. 10
      B. 5
      C. 15
      D. 3

      Solution

      1. Step 1: Analyze first mint call

        The first call mints 10 tokens of ID 5 to address 0xABC.
      2. Step 2: Analyze mintBatch call

        The batch mint adds 5 tokens of ID 5 and 3 tokens of ID 7 to the same address.
      3. Step 3: Calculate total balance for token ID 5

        Total = 10 (first mint) + 5 (batch mint) = 15 tokens.
      4. Final Answer:

        15 -> Option C
      5. Quick Check:

        10 + 5 = 15 tokens [OK]
      Hint: Add amounts from all mints for same token ID [OK]
      Common Mistakes:
      • Ignoring batch mint amounts
      • Confusing token IDs in batch mint
      • Assuming batch mint overwrites balance
      4. Identify the error in this ERC-1155 transfer function snippet:
      function safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes data) public {
          require(balanceOf(from, id) >= amount, "Insufficient balance");
          balances[from][id] -= amount;
          balances[to][id] += amount;
      }
      medium
      A. Missing event emission after transfer.
      B. Incorrect parameter types for safeTransferFrom.
      C. Using 'public' instead of 'external' visibility.
      D. No check if 'to' is a smart contract supporting ERC-1155.

      Solution

      1. Step 1: Review ERC-1155 transfer requirements

        ERC-1155 requires checking if the recipient is a contract and supports the interface to avoid tokens being locked.
      2. Step 2: Identify missing safety check

        The snippet lacks the call to onERC1155Received for smart contract recipients.
      3. Final Answer:

        No check if 'to' is a smart contract supporting ERC-1155. -> Option D
      4. Quick Check:

        Check recipient contract support to prevent token loss [OK]
      Hint: Always check recipient contract supports ERC-1155 [OK]
      Common Mistakes:
      • Forgetting safe transfer acceptance check
      • Assuming event emission is enough
      • Ignoring contract recipient handling
      5. You want to create a game inventory using ERC-1155 where players can hold multiple types of items. Which approach best uses ERC-1155 features to efficiently track and transfer items?
      hard
      A. Deploy one ERC-1155 contract with unique IDs for each item type and use batch transfers for multiple items.
      B. Deploy separate ERC-721 contracts for each item type and transfer items individually.
      C. Use ERC-20 tokens for each item type and transfer amounts representing item counts.
      D. Create one ERC-1155 contract but mint only one token type for all items.

      Solution

      1. Step 1: Understand game inventory needs

        Players hold many item types, needing efficient tracking and transfers.
      2. Step 2: Evaluate ERC-1155 advantages

        ERC-1155 supports multiple token IDs in one contract and batch transfers, reducing gas and complexity.
      3. Step 3: Compare options

        Deploy one ERC-1155 contract with unique IDs for each item type and use batch transfers for multiple items. uses one contract with unique IDs and batch transfers, matching ERC-1155 strengths. Others use less efficient or wrong standards.
      4. Final Answer:

        Deploy one ERC-1155 contract with unique IDs for each item type and use batch transfers for multiple items. -> Option A
      5. Quick Check:

        One contract + batch transfers = efficient multi-item management [OK]
      Hint: Use one ERC-1155 contract with batch transfers for many items [OK]
      Common Mistakes:
      • Using multiple contracts unnecessarily
      • Choosing ERC-20 or ERC-721 for multi-item inventory
      • Minting only one token type for all items
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard